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
570
パシフィックメディカル会社説明資料/ 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
オプトインカメラ:UWB測位を応用したオプトイン型のカメラ計測
matthewlujp
0
170
成果を出しながら成長する、アウトプット駆動のキャッチアップ術 / Output-driven catch-up techniques to grow while producing results
aiandrox
0
180
LINE Developersプロダクト(LIFF/LINE Login)におけるフロントエンド開発
lycorptech_jp
PRO
0
120
PHPからGoへのマイグレーション for DMMアフィリエイト
yabakokobayashi
1
160
UI State設計とテスト方針
rmakiyama
2
320
Oracle Cloud Infrastructure:2024年12月度サービス・アップデート
oracle4engineer
PRO
0
160
How to be an AWS Community Builder | 君もAWS Community Builderになろう!〜2024 冬 CB募集直前対策編?!〜
coosuke
PRO
2
2.8k
[Ruby] Develop a Morse Code Learning Gem & Beep from Strings
oguressive
1
150
大幅アップデートされたRagas v0.2をキャッチアップ
os1ma
2
520
DevOps視点でAWS re:invent2024の新サービス・アプデを振り返ってみた
oshanqq
0
180
Amazon VPC Lattice 最新アップデート紹介 - PrivateLink も似たようなアップデートあったけど違いとは
bigmuramura
0
190
サーバレスアプリ開発者向けアップデートをキャッチアップしてきた #AWSreInvent #regrowth_fuk
drumnistnakano
0
190
Featured
See All Featured
A better future with KSS
kneath
238
17k
Building Adaptive Systems
keathley
38
2.3k
Bash Introduction
62gerente
608
210k
Producing Creativity
orderedlist
PRO
341
39k
Building a Scalable Design System with Sketch
lauravandoore
460
33k
How to Think Like a Performance Engineer
csswizardry
22
1.2k
Put a Button on it: Removing Barriers to Going Fast.
kastner
59
3.6k
Statistics for Hackers
jakevdp
796
220k
Code Reviewing Like a Champion
maltzj
520
39k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
0
94
The Language of Interfaces
destraynor
154
24k
Site-Speed That Sticks
csswizardry
2
190
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 リー・コープランド (著), 宗 雅彦 (翻訳) 『ソフトウェアテスト技法ドリル 』 日科技連出版社 秋山 浩一 (著) 『ソフトウェアテスト技法練習帳 』 技術評論社 梅津 正洋, 竹内 亜未, 伊藤 由貴, 浦山 さつき, 佐々木 千絵美, 高橋 理, 武田 春恵, 根本 紀之, 藤沢 耕助, 真鍋 俊之, 山岡 悠, 吉田 直史 (著)