Slide 1

Slide 1 text

FY22 新卒研修 Quality Assurance 〜「QA」「品質」「テスト」とは?〜

Slide 2

Slide 2 text

アジェンダ
 1. 自己紹介
 2. QA研修の目的
 a. 「QA」「品質」「テスト」とは?(前半60分) ※これ
 b. メドレーのQAプロセス、事例紹介(後半30分) ※14時〜
 3. 障害の影響
 4. 開発工程における「テスト」
 5. テスト技法演習
 a. 同値分割
 b. 境界値分析
 c. デシジョンテーブル
 2

Slide 3

Slide 3 text

自己紹介
 医療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

Slide 4

Slide 4 text

この研修の目的
 ● 品質を意識することの重要性や、
 組織にとっての品質の意義を理解する
 ● 自分自身で「品質を意識した開発」ができ るエンジニアになる
 
 4

Slide 5

Slide 5 text

5 CHAPTER.3 障害の影響


Slide 6

Slide 6 text

障害事例①
 チャレンジャー号爆発事故 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 (著) 


Slide 7

Slide 7 text

障害事例②
 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/ 


Slide 8

Slide 8 text

障害が発生すると
 ● 製品リリース後に障害が発生した場合
 ○ 誰に迷惑がかかる?
 
 
 ○ どこにどんなコストがかかる?
 8

Slide 9

Slide 9 text

障害が発生すると
 ● 製品リリース後に障害が発生した場合
 ○ 誰に迷惑がかかる?
 ■ ユーザー
 ■ カスタマーサポート
 ■ エンジニア
 ■ 経営陣
 ■ 株主
 ○ どこにどんなコストがかかる?
 
 
 
 9

Slide 10

Slide 10 text

障害が発生すると
 ● 製品リリース後に障害が発生した場合
 ○ 誰に迷惑がかかる?
 ■ ユーザー
 ■ カスタマーサポート
 ■ エンジニア
 ■ 経営陣
 ■ 株主
 ○ どこにどんなコストがかかる?
 ■ 原因究明
 ■ コードの改修、テスト
 ■ 顧客への説明、賠償
 ■ 株主への説明
 ■ 逸失利益
 10 信用を失う


Slide 11

Slide 11 text

障害の重さ(まとめ)
 11 障害の規模はドメインによって重さが異なる 
 事例
 ドメイン
 影響の大きさ
 障害の原因
 チャレンジャー号爆発
 宇宙開発
 乗組員7名が死亡
 意思決定プロセスの不備
 ANA国内線旅客システムの大 規模障害
 航空(搭乗手続きシステム)
 合計719便、7万2100人以上 の乗客が欠航・遅延
 スイッチのバグ
 ここでは重い事例ばかり挙げましたが、ビジネス要件とのバランスも重要です。(イベント連動サービスがそのイベン ト当日に間に合わなかったら意味がない)
 また単なる誤字脱字であっても「eコマースで金額の桁が1桁違った場合」はたいへんなことになります。


Slide 12

Slide 12 text

12 CHAPTER.4 開発工程における「テスト」


Slide 13

Slide 13 text

そもそも「QA」ってなに?
 「QA」=「品質をあげるためのすべての活動」
 「テスト」は品質をあげるための活動の1つ。 
 
 
 
 
 
 
 13

Slide 14

Slide 14 text

開発工程の4〜5割は「テスト」が占める
 ● 左側の工程と右側の工程が対応している
 ● アジャイル開発も基本的な考え方は同じ
 ● コーディング中に行うテストは「デバッグ」と呼ぶ
 14 (c)Wikipedia 『Vモデル』 
 個々のコードレベルの確認 
 システム間の相互作用に焦点を当てる 
 ● 内部結合:コンポーネント間相互処理 
 ● 外部結合:対向システム間処理 
 特定要件を満たしているか 
 受入要件を満たしているか 


Slide 15

Slide 15 text

動的テスト(ソフトを実行して行う)
 ● ホワイトボックステスト(構造ベース) 
 ○ ステートメントテスト
 ■ 命令をどれだけ実行したか(ステートメン トカバレッジを上げる)
 ○ デシジョンテスト
 ■ 分岐(ブランチ)をどれだけ実行したか (デシジョンカバレッジを上げる)
 ● ブラックボックステスト(仕様ベース) 
 ○ 同値分割
 ○ 境界値分析
 ○ デシジョンテーブルテスト
 テストの種類とテスト技法
 15 静的テスト(ソフトを実行させずに行う)
 ● レビュー:すべてのソフトウェア成果物が対象
 ○ パスアラウンド
 ○ ピアレビュー
 ○ ウォークスルー
 ○ インスペクション
 ● 静的解析ツール
 ○ コンパイラ
 ○ コードチェッカー
 ※それぞれ代表的なもののみ


Slide 16

Slide 16 text

テスト技法① 同値分割
 16 同じグループに属する値を分類し、テストパターンを少なくできる技法。 


Slide 17

Slide 17 text

テスト技法② 境界値分析
 同値分割したグループの境界に属する値を導き、テストパターンを少なくできる技法。 
  ※境界にはバグが潜みやすい 
 さきほどと同じ仕様の場合:
 17

Slide 18

Slide 18 text

テスト技法③ デシジョンテーブル
 18 入力と出力の組み合わせを表にして、 どの条件の組み合わせがどの処理や動作に影響するか明確にする。 
 複雑な条件や制約のある仕様を整理して、効率よくテストすることができる。 
 ① ② ③ ④ ①条件記述部…考慮すべき条件を列挙する 
 ②動作記述部…考慮すべき動作(出力結果)を列挙する 
 ③条件指定部…①の条件記述を満たすかどうかを示す 
 ④動作指定部…各列で指定されている条件指定の組み合 わせによって決まる出力結果(動作)を示す 


Slide 19

Slide 19 text

19 CHAPTER.5 テスト技法演習


Slide 20

Slide 20 text

演習① 同値分割と境界値分析
 とある動物園の入場チケットをWebシステムで購入できるようにしました。
 チケット購入画面のUIは以下の通りです。(整数を入力できる)
 
 
 
 入園料金は年齢によって右図のように決められています。
 
 
 
 「同値分割法」と「境界値分析」を用いて入園料金のテストケースを作成してください。 
 20 年齢
 入園料金
 6歳未満
 無料
 6歳以上〜13歳未満
 500円
 13歳以上〜18歳未満
 1,000円
 18歳以上
 1,500円


Slide 21

Slide 21 text

解答例① 同値分割と境界値分析(穴埋め) 
 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
 -
 無効クラスの代表値 


Slide 22

Slide 22 text

解答例① 同値分割と境界値分析(穴埋め) 
 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
 -
 無効クラスの代表値 


Slide 23

Slide 23 text

演習② デシジョンテーブル
 とある居酒屋『ろっぽんぎ』では改装後、営業開始直後の一定時間を「ハッピーアワー」としてビールをお得なお値段で飲めるように しました。また、クーポン券も配布します。
 以下は営業時間とビール1杯の関係を説明しています。
 ● 通常、1杯500円
 ● ハッピーアワー(16時〜18時)は1杯280円
 ● クーポンを使うと利用時間に関わらずはじめの1杯のみ100円となる 
 ● ハッピーアワーでもクーポンを利用できる
 ● その時点で最も安い価格で提供される
 
 「1杯目のビールの価格」を表すデシジョンテーブルを作成してください。 
 23

Slide 24

Slide 24 text

解答例② デシジョンテーブル
 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杯目のビールの価格】


Slide 25

Slide 25 text

おまけ
 テスト技法の演習、いかがでしたか?
 テスト技法を知るだけでなく、
 ● いつ使うのか
 ● どのように使うのか
 ● どのテスト技法を組み合わせるのか
 等を考えていくことが次のステップです。
 Confluence「Quality Assurance」に体系的にまとめてありますので、目を通し てみてください。
 「開発プロセス全体の質をあげる」ことが重要です!
 
 さらに勉強したいと思ったら…
 会社のキャビネットに私物のテスト本を何冊か置いてあるので、 
 ご興味あれば貸し出します!! お気軽にお声がけください。 
 25

Slide 26

Slide 26 text

Reference 26 本編の内容は以下資料、書籍より引用 / 加工し使用させていただきました。感謝申し上げます。
 
 
 『ASTERセミナー標準テキスト 』
 特定非営利活動法人 ソフトウェアテスト技術振興協会 
 
 『知識ゼロから学ぶ ソフトウェアテスト 』
 翔泳社 高橋 寿一 (著) 
 
 『JSTQB教科書 JSTQB認定テスト技術者 Foundation Level試験 』
 翔泳社 湯本 剛, 大西 建児, 勝亦 匡秀, 加藤 大受, 佐々木 方規, 鈴木 三紀夫, 町田 欣史, 吉澤 智美 (著) 
 
 『はじめて学ぶソフトウェアのテスト技法 』
 日経BP リー・コープランド (著), 宗 雅彦 (翻訳) 
 
 『ソフトウェアテスト技法ドリル 』
 日科技連出版社 秋山 浩一 (著) 
 
 『ソフトウェアテスト技法練習帳 』
 技術評論社 梅津 正洋, 竹内 亜未, 伊藤 由貴, 浦山 さつき, 佐々木 千絵美, 高橋 理, 
 武田 春恵, 根本 紀之, 藤沢 耕助, 真鍋 俊之, 山岡 悠, 吉田 直史 (著)