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.9k
FY22 新卒研修 Quality Assurance 〜「QA」「品質」「テスト」とは?〜
株式会社メドレーで、2022年度新卒研修内のQA講座で使用したものを、外部公開用に修正したスライドになります。
QAエンジニア: 上村真季
MEDLEY, INC.
August 31, 2022
Tweet
Share
More Decks by MEDLEY, INC.
See All by MEDLEY, INC.
Polyfill奮闘記 / genba_ts2
medley
0
99
なぜConfluence Cloudだったのか?〜『運用効率と将来性』から見る最適解と、予期せぬ課題を乗り越えた移行のリアル~ / Why-we-choose-confluence-cloud
medley
0
150
別業種から医療業界に入ったPMの悩みと歩き方 / healthtech meetup-vol.1
medley
0
370
インプロセスQAにおいて大事にしていること / In-process QA Meetup
medley
0
260
Jira全社展開の裏側 - 多数の部門と協働して全社標準ツールとして確立させた、調整・工夫・合意形成のリアル / The story of the rollout of Jira
medley
2
500
徹底解剖! 医療業務システムのReactコンポーネント設計 / Deep Dive into React Component Design for Medical Systems
medley
19
7.9k
持続可能なE2E自動テストを目指して / Towards sustainable E2E automated testing
medley
6
2.8k
「最強のデザイナー」とは?最強になるためのキャリア像とマインドセットを考えよう / Designer_mindset
medley
0
880
パシフィックメディカル会社説明資料/ PMed Company Guide
medley
0
1.1k
Other Decks in Technology
See All in Technology
第9回情シス転職ミートアップ_テックタッチ株式会社
forester3003
0
120
Welcome to the LLM Club
koic
0
130
AIにどこまで任せる?実務で使える(かもしれない)AIエージェント設計の考え方
har1101
3
1.2k
IAMのマニアックな話 2025を執筆して、 見えてきたAWSアカウント管理の現在
nrinetcom
PRO
4
650
成立するElixirの再束縛(再代入)可という選択
kubell_hr
0
740
2025/6/21 日本学術会議公開シンポジウム発表資料
keisuke198619
2
470
kubellが挑むBPaaSにおける、人とAIエージェントによるサービス開発の最前線と技術展望
kubell_hr
1
390
Prox Industries株式会社 会社紹介資料
proxindustries
0
170
TechLION vol.41~MySQLユーザ会のほうから来ました / techlion41_mysql
sakaik
0
140
【TiDB GAME DAY 2025】Shadowverse: Worlds Beyond にみる TiDB 活用術
cygames
0
820
AIのAIによるAIのための出力評価と改善
chocoyama
0
470
Agentic Workflowという選択肢を考える
tkikuchi1002
1
340
Featured
See All Featured
Site-Speed That Sticks
csswizardry
10
650
Stop Working from a Prison Cell
hatefulcrawdad
270
20k
Producing Creativity
orderedlist
PRO
346
40k
KATA
mclloyd
29
14k
Building a Modern Day E-commerce SEO Strategy
aleyda
41
7.3k
GitHub's CSS Performance
jonrohan
1031
460k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
107
19k
Being A Developer After 40
akosma
90
590k
Faster Mobile Websites
deanohume
307
31k
Agile that works and the tools we love
rasmusluckow
329
21k
Large-scale JavaScript Application Architecture
addyosmani
512
110k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
2.8k
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 リー・コープランド (著), 宗 雅彦 (翻訳) 『ソフトウェアテスト技法ドリル 』 日科技連出版社 秋山 浩一 (著) 『ソフトウェアテスト技法練習帳 』 技術評論社 梅津 正洋, 竹内 亜未, 伊藤 由貴, 浦山 さつき, 佐々木 千絵美, 高橋 理, 武田 春恵, 根本 紀之, 藤沢 耕助, 真鍋 俊之, 山岡 悠, 吉田 直史 (著)