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.6k
FY22 新卒研修 Quality Assurance 〜「QA」「品質」「テスト」とは?〜
株式会社メドレーで、2022年度新卒研修内のQA講座で使用したものを、外部公開用に修正したスライドになります。
QAエンジニア: 上村真季
Medley Inc.
August 31, 2022
Tweet
Share
More Decks by Medley Inc.
See All by Medley Inc.
徹底解剖! 医療業務システムのReactコンポーネント設計 / Deep Dive into React Component Design for Medical Systems
medley
7
2.3k
持続可能なE2E自動テストを目指して / Towards sustainable E2E automated testing
medley
5
850
「最強のデザイナー」とは?最強になるためのキャリア像とマインドセットを考えよう / Designer_mindset
medley
0
580
パシフィックメディカル会社説明資料/ PMed Company Guide
medley
0
380
医療アプリ開発の最前線 - 安全性と生産性の両立への挑戦 -
medley
0
1.3k
ヘルススコア100に到達した理由 / MagicPod Meetup Health score Night
medley
0
3.2k
TypeScriptコードの漸進的改善 / Progressive Improvement of TypeScript Code
medley
2
1.2k
メドレーという会社と デザインチームのひみつ/About Medley design team
medley
0
1.1k
プロダクトデザインは子育て/Product design is parenting
medley
0
720
Other Decks in Technology
See All in Technology
マルチプロダクト開発の現場でAWS Security Hubを1年以上運用して得た教訓
muziyoshiz
3
2.3k
Amazon Kendra GenAI Index 登場でどう変わる? 評価から学ぶ最適なRAG構成
naoki_0531
0
110
権威ドキュメントで振り返る2024 #年忘れセキュリティ2024
hirotomotaguchi
2
740
KnowledgeBaseDocuments APIでベクトルインデックス管理を自動化する
iidaxs
1
260
Postman と API セキュリティ / Postman and API Security
yokawasa
0
200
Microsoft Azure全冠になってみた ~アレを使い倒した者が試験を制す!?~/Obtained all Microsoft Azure certifications Those who use "that" to the full will win the exam! ?
yuj1osm
2
110
AWS re:Invent 2024で発表された コードを書く開発者向け機能について
maruto
0
190
Snowflake女子会#3 Snowpipeの良さを5分で語るよ
lana2548
0
230
Amazon VPC Lattice 最新アップデート紹介 - PrivateLink も似たようなアップデートあったけど違いとは
bigmuramura
0
190
1等無人航空機操縦士一発試験 合格までの道のり ドローンミートアップ@大阪 2024/12/18
excdinc
0
160
フロントエンド設計にモブ設計を導入してみた / 20241212_cloudsign_TechFrontMeetup
bengo4com
0
1.9k
Snykで始めるセキュリティ担当者とSREと開発者が楽になる脆弱性対応 / Getting started with Snyk Vulnerability Response
yamaguchitk333
2
180
Featured
See All Featured
Measuring & Analyzing Core Web Vitals
bluesmoon
4
170
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
6.9k
A Philosophy of Restraint
colly
203
16k
Automating Front-end Workflow
addyosmani
1366
200k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
28
8.3k
Building Your Own Lightsaber
phodgson
103
6.1k
Building a Scalable Design System with Sketch
lauravandoore
460
33k
Statistics for Hackers
jakevdp
796
220k
Art, The Web, and Tiny UX
lynnandtonic
298
20k
Fashionably flexible responsive web design (full day workshop)
malarkey
405
66k
Building an army of robots
kneath
302
44k
Visualization
eitanlees
146
15k
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 リー・コープランド (著), 宗 雅彦 (翻訳) 『ソフトウェアテスト技法ドリル 』 日科技連出版社 秋山 浩一 (著) 『ソフトウェアテスト技法練習帳 』 技術評論社 梅津 正洋, 竹内 亜未, 伊藤 由貴, 浦山 さつき, 佐々木 千絵美, 高橋 理, 武田 春恵, 根本 紀之, 藤沢 耕助, 真鍋 俊之, 山岡 悠, 吉田 直史 (著)