Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
FY22 新卒研修 Quality Assurance 〜「QA」「品質」「テスト」とは?〜
Search
Medley Inc.
August 31, 2022
Technology
1
2.5k
FY22 新卒研修 Quality Assurance 〜「QA」「品質」「テスト」とは?〜
株式会社メドレーで、2022年度新卒研修内のQA講座で使用したものを、外部公開用に修正したスライドになります。
QAエンジニア: 上村真季
Medley Inc.
August 31, 2022
Tweet
Share
More Decks by Medley Inc.
See All by Medley Inc.
「最強のデザイナー」とは?最強になるためのキャリア像とマインドセットを考えよう / Designer_mindset
medley
0
380
パシフィックメディカル会社説明資料/ PMed Company Guide
medley
0
210
医療アプリ開発の最前線 - 安全性と生産性の両立への挑戦 -
medley
0
1.1k
ヘルススコア100に到達した理由 / MagicPod Meetup Health score Night
medley
0
2.9k
TypeScriptコードの漸進的改善 / Progressive Improvement of TypeScript Code
medley
2
1.1k
メドレーという会社と デザインチームのひみつ/About Medley design team
medley
0
980
プロダクトデザインは子育て/Product design is parenting
medley
0
660
メドレー エンジニア採用資料/ Medley Engineer Guide
medley
3
21k
メドレー 会社説明資料/ Medley Company Guide
medley
13
61k
Other Decks in Technology
See All in Technology
ガバメントクラウド単独利用方式におけるIaC活用
techniczna
3
210
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
5
49k
生成AI×マルチテナントSaaSな新規事業を立ち上げる上でテックリードとして気を使った点の紹介
lunastera
0
540
Mobbing Practices
kawaguti
PRO
3
350
Emacs x Nostr
hakkadaikon
1
130
リファクタリングへの耐性が高いモデルベースの統合テストの紹介 / Model-Base Integration Test for Refactoring
yuitosato
5
1.5k
サーバーサイドのデータプレーンプログラミング 〜 NVIDIA Blue Field / DOCA 〜
ebiken
PRO
1
240
Java x Spring Boot Warm up
kazu_kichi_67
2
440
わたしとトラックポイント / TrackPoint tips
masahirokawahara
1
210
品質の高い機能を”早く”提供するために技術的な面でチームでやったこと、やりたいこと
sansantech
PRO
2
270
Railway Oriented Programming を オニオンアーキテクチャに適用する by kotlin-result / Railway Oriented Programming in Onion Architecture by kotlin-result
yuitosato
2
230
30万人が利用するチャットをFirebase Realtime DatabaseからActionCableへ移行する方法
ryosk7
2
300
Featured
See All Featured
RailsConf 2023
tenderlove
29
870
Documentation Writing (for coders)
carmenintech
65
4.4k
Keith and Marios Guide to Fast Websites
keithpitt
408
22k
How to Ace a Technical Interview
jacobian
275
23k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5k
Automating Front-end Workflow
addyosmani
1365
200k
Fashionably flexible responsive web design (full day workshop)
malarkey
404
65k
Visualization
eitanlees
143
15k
Git: the NoSQL Database
bkeepers
PRO
425
64k
10 Git Anti Patterns You Should be Aware of
lemiorhan
653
59k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
Transcript
FY22 新卒研修 Quality Assurance 〜「QA」「品質」「テスト」とは?〜
アジェンダ 1. 自己紹介 2. QA研修の目的 a. 「QA」「品質」「テスト」とは?(前半60分) ※これ b. メドレーのQAプロセス、事例紹介(後半30分) ※14時〜 3.
障害の影響 4. 開発工程における「テスト」 5. テスト技法演習 a. 同値分割 b. 境界値分析 c. デシジョンテーブル 2
自己紹介 医療PF 第一開発Gr QAエンジニア 上村 真季 @maki.kamimura • 主に医療機関向けプロダクトのQAを担当 •
CLINICSカルテ • CLINICSオンライン診療 • QA歴 :20年+くらい、メドレーは2020年4月入社 • 資格 :JSTQB Advanced Level テストアナリスト 、IT検証技術者レベル5 • 社外活動 :JaSST Online実行委員、ISTQB翻訳WG、TOCfE Bootcampスタッフ • 家族構成 :長男20歳、長女中2 • 趣味 :バレーボール、俳句、読書 3
この研修の目的 • 品質を意識することの重要性や、 組織にとっての品質の意義を理解する • 自分自身で「品質を意識した開発」ができ るエンジニアになる 4
5 CHAPTER.3 障害の影響
障害事例① チャレンジャー号爆発事故 https://en.wikipedia.org/wiki/Space_Shuttle_Challenger_disaster 6 • 1986年、スペースシャトル・チャレンジャー号が打ち上げ直後に爆発 し、乗組員7名全員が亡くなった事故 • 原因はシャトルの密閉用ゴムリングが低温のため脆くなっていたこ とがきっかけ
• その日は発射台に氷柱が降りるほど外気温が低く、エンジニアチー ムから発射は危険だと報告があったが、意思決定プロセスにおいて 発射は決行された • 本事故を巡る論考はさまざまあるが、近年は「議論のためのデータ が欠けていたため」とされている 参考: 『The Challenger Launch Decision: Risky Technology, Culture, and Deviance at NASA』 Univ of Chicago Pr; Enlarged edition | Diane Vaughan (著)
障害事例② ANA 旅客システム障害 https://www.anahd.co.jp/group/pr/201606/20160622.html 7 • 2016年に起こったANA国内線旅客システムの大規模障害 • 全国49の空港で搭乗手続きができなくなり、合計719便、7万2100人以上に影響が及んだ
• スイッチの「世界初のバグ」を踏み抜いたことや復旧までのスピードから、好意的・同情的な反応も多 かった 引用元記事:日経クロステック 『判明、ANAシステム障害の真相』 https://xtech.nikkei.com/it/atcl/watcher/14/334361/041100532/
障害が発生すると • 製品リリース後に障害が発生した場合 ◦ 誰に迷惑がかかる? ◦ どこにどんなコストがかかる? 8
障害が発生すると • 製品リリース後に障害が発生した場合 ◦ 誰に迷惑がかかる? ▪ ユーザー ▪ カスタマーサポート ▪
エンジニア ▪ 経営陣 ▪ 株主 ◦ どこにどんなコストがかかる? 9
障害が発生すると • 製品リリース後に障害が発生した場合 ◦ 誰に迷惑がかかる? ▪ ユーザー ▪ カスタマーサポート ▪
エンジニア ▪ 経営陣 ▪ 株主 ◦ どこにどんなコストがかかる? ▪ 原因究明 ▪ コードの改修、テスト ▪ 顧客への説明、賠償 ▪ 株主への説明 ▪ 逸失利益 10 信用を失う
障害の重さ(まとめ) 11 障害の規模はドメインによって重さが異なる 事例 ドメイン 影響の大きさ 障害の原因 チャレンジャー号爆発 宇宙開発
乗組員7名が死亡 意思決定プロセスの不備 ANA国内線旅客システムの大 規模障害 航空(搭乗手続きシステム) 合計719便、7万2100人以上 の乗客が欠航・遅延 スイッチのバグ ここでは重い事例ばかり挙げましたが、ビジネス要件とのバランスも重要です。(イベント連動サービスがそのイベン ト当日に間に合わなかったら意味がない) また単なる誤字脱字であっても「eコマースで金額の桁が1桁違った場合」はたいへんなことになります。
12 CHAPTER.4 開発工程における「テスト」
そもそも「QA」ってなに? 「QA」=「品質をあげるためのすべての活動」 「テスト」は品質をあげるための活動の1つ。
13
開発工程の4〜5割は「テスト」が占める • 左側の工程と右側の工程が対応している • アジャイル開発も基本的な考え方は同じ • コーディング中に行うテストは「デバッグ」と呼ぶ 14 (c)Wikipedia 『Vモデル』
個々のコードレベルの確認 システム間の相互作用に焦点を当てる • 内部結合:コンポーネント間相互処理 • 外部結合:対向システム間処理 特定要件を満たしているか 受入要件を満たしているか
動的テスト(ソフトを実行して行う) • ホワイトボックステスト(構造ベース) ◦ ステートメントテスト ▪ 命令をどれだけ実行したか(ステートメン トカバレッジを上げる) ◦
デシジョンテスト ▪ 分岐(ブランチ)をどれだけ実行したか (デシジョンカバレッジを上げる) • ブラックボックステスト(仕様ベース) ◦ 同値分割 ◦ 境界値分析 ◦ デシジョンテーブルテスト テストの種類とテスト技法 15 静的テスト(ソフトを実行させずに行う) • レビュー:すべてのソフトウェア成果物が対象 ◦ パスアラウンド ◦ ピアレビュー ◦ ウォークスルー ◦ インスペクション • 静的解析ツール ◦ コンパイラ ◦ コードチェッカー ※それぞれ代表的なもののみ
テスト技法① 同値分割 16 同じグループに属する値を分類し、テストパターンを少なくできる技法。
テスト技法② 境界値分析 同値分割したグループの境界に属する値を導き、テストパターンを少なくできる技法。 ※境界にはバグが潜みやすい さきほどと同じ仕様の場合: 17
テスト技法③ デシジョンテーブル 18 入力と出力の組み合わせを表にして、 どの条件の組み合わせがどの処理や動作に影響するか明確にする。 複雑な条件や制約のある仕様を整理して、効率よくテストすることができる。 ① ② ③
④ ①条件記述部…考慮すべき条件を列挙する ②動作記述部…考慮すべき動作(出力結果)を列挙する ③条件指定部…①の条件記述を満たすかどうかを示す ④動作指定部…各列で指定されている条件指定の組み合 わせによって決まる出力結果(動作)を示す
19 CHAPTER.5 テスト技法演習
演習① 同値分割と境界値分析 とある動物園の入場チケットをWebシステムで購入できるようにしました。 チケット購入画面のUIは以下の通りです。(整数を入力できる) 入園料金は年齢によって右図のように決められています。
「同値分割法」と「境界値分析」を用いて入園料金のテストケースを作成してください。 20 年齢 入園料金 6歳未満 無料 6歳以上〜13歳未満 500円 13歳以上〜18歳未満 1,000円 18歳以上 1,500円
解答例① 同値分割と境界値分析(穴埋め) 21 No テストデータ 期待結果 (入園料金) テストデータを選んだ理由
1 -10 - 無効クラスの代表値 2 -1 - 無効クラスの境界値 3 0 無料 無料の境界値(下限) 4 3 無料 無料の代表値 5 5 無料 無料の境界値(上限) 6 6 500円 500円の境界値(下限) 7 10 500円 500円の代表値 8 12 500円 500円の境界値(上限) 9 13 1,000円 1,000円の境界値(下限) 10 15 1,000円 1,000円の代表値 No テストデータ 期待結果 (入園料金) テストデータを選んだ理由 11 17 1,000円 1,000円の境界値(上限) 12 18 1,500円 1,500円の境界値(下限) 13 50 1,500円 1,500円の代表値 14 120 1,500円 1,500円の境界値(上限) 15 121 - 無効クラスの境界値 16 140 - 無効クラスの代表値
解答例① 同値分割と境界値分析(穴埋め) 22 No テストデータ 期待結果 (入園料金) テストデータを選んだ理由
1 -10 - 無効クラスの代表値 2 -1 - 無効クラスの境界値 3 0 無料 無料の境界値(下限) 4 3 無料 無料の代表値 5 5 無料 無料の境界値(上限) 6 6 500円 500円の境界値(下限) 7 10 500円 500円の代表値 8 12 500円 500円の境界値(上限) 9 13 1,000円 1,000円の境界値(下限) 10 15 1,000円 1,000円の代表値 No テストデータ 期待結果 (入園料金) テストデータを選んだ理由 11 17 1,000円 1,000円の境界値(上限) 12 18 1,500円 1,500円の境界値(下限) 13 50 1,500円 1,500円の代表値 14 120 1,500円 1,500円の境界値(上限) 15 121 - 無効クラスの境界値 16 140 - 無効クラスの代表値
演習② デシジョンテーブル とある居酒屋『ろっぽんぎ』では改装後、営業開始直後の一定時間を「ハッピーアワー」としてビールをお得なお値段で飲めるように しました。また、クーポン券も配布します。 以下は営業時間とビール1杯の関係を説明しています。 • 通常、1杯500円 • ハッピーアワー(16時〜18時)は1杯280円 • クーポンを使うと利用時間に関わらずはじめの1杯のみ100円となる
• ハッピーアワーでもクーポンを利用できる • その時点で最も安い価格で提供される 「1杯目のビールの価格」を表すデシジョンテーブルを作成してください。 23
解答例② デシジョンテーブル X…eXecution(実行) 24 TestCase 1 2 3 4 条 件
クーポン利用 Y Y N N ハッピーアワー Y N Y N 結 果 100円 X X - - 280円 - - X - 500円 - - - X 【考え方】 先にデシジョンツリーを作成してみる クーポン 利用? ハッピー アワー? ハッピー アワー? Y Y N Y N N 100円 100円 280円 500円 【1杯目のビールの価格】
おまけ テスト技法の演習、いかがでしたか? テスト技法を知るだけでなく、 • いつ使うのか • どのように使うのか • どのテスト技法を組み合わせるのか 等を考えていくことが次のステップです。
Confluence「Quality Assurance」に体系的にまとめてありますので、目を通し てみてください。 「開発プロセス全体の質をあげる」ことが重要です! さらに勉強したいと思ったら… 会社のキャビネットに私物のテスト本を何冊か置いてあるので、 ご興味あれば貸し出します!! お気軽にお声がけください。 25
Reference 26 本編の内容は以下資料、書籍より引用 / 加工し使用させていただきました。感謝申し上げます。 『ASTERセミナー標準テキスト 』 特定非営利活動法人
ソフトウェアテスト技術振興協会 『知識ゼロから学ぶ ソフトウェアテスト 』 翔泳社 高橋 寿一 (著) 『JSTQB教科書 JSTQB認定テスト技術者 Foundation Level試験 』 翔泳社 湯本 剛, 大西 建児, 勝亦 匡秀, 加藤 大受, 佐々木 方規, 鈴木 三紀夫, 町田 欣史, 吉澤 智美 (著) 『はじめて学ぶソフトウェアのテスト技法 』 日経BP リー・コープランド (著), 宗 雅彦 (翻訳) 『ソフトウェアテスト技法ドリル 』 日科技連出版社 秋山 浩一 (著) 『ソフトウェアテスト技法練習帳 』 技術評論社 梅津 正洋, 竹内 亜未, 伊藤 由貴, 浦山 さつき, 佐々木 千絵美, 高橋 理, 武田 春恵, 根本 紀之, 藤沢 耕助, 真鍋 俊之, 山岡 悠, 吉田 直史 (著)