Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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

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

株式会社メドレーで、2022年度新卒研修内のQA講座で使用したものを、外部公開用に修正したスライドになります。

QAエンジニア: 上村真季

Medley Inc.

August 31, 2022
Tweet

More Decks by Medley Inc.

Other Decks in Technology

Transcript

  1. アジェンダ
 1. 自己紹介
 2. QA研修の目的
 a. 「QA」「品質」「テスト」とは?(前半60分) ※これ
 b. メドレーのQAプロセス、事例紹介(後半30分) ※14時〜
 3.

    障害の影響
 4. 開発工程における「テスト」
 5. テスト技法演習
 a. 同値分割
 b. 境界値分析
 c. デシジョンテーブル
 2
  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
  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 (著) 

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

  5. 障害が発生すると
 • 製品リリース後に障害が発生した場合
 ◦ 誰に迷惑がかかる?
 ▪ ユーザー
 ▪ カスタマーサポート
 ▪

    エンジニア
 ▪ 経営陣
 ▪ 株主
 ◦ どこにどんなコストがかかる?
 ▪ 原因究明
 ▪ コードの改修、テスト
 ▪ 顧客への説明、賠償
 ▪ 株主への説明
 ▪ 逸失利益
 10 信用を失う

  6. 障害の重さ(まとめ)
 11 障害の規模はドメインによって重さが異なる 
 事例
 ドメイン
 影響の大きさ
 障害の原因
 チャレンジャー号爆発
 宇宙開発


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

  7. 開発工程の4〜5割は「テスト」が占める
 • 左側の工程と右側の工程が対応している
 • アジャイル開発も基本的な考え方は同じ
 • コーディング中に行うテストは「デバッグ」と呼ぶ
 14 (c)Wikipedia 『Vモデル』

    
 個々のコードレベルの確認 
 システム間の相互作用に焦点を当てる 
 • 内部結合:コンポーネント間相互処理 
 • 外部結合:対向システム間処理 
 特定要件を満たしているか 
 受入要件を満たしているか 

  8. 動的テスト(ソフトを実行して行う)
 • ホワイトボックステスト(構造ベース) 
 ◦ ステートメントテスト
 ▪ 命令をどれだけ実行したか(ステートメン トカバレッジを上げる)
 ◦

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

  9. テスト技法③ デシジョンテーブル
 18 入力と出力の組み合わせを表にして、 どの条件の組み合わせがどの処理や動作に影響するか明確にする。 
 複雑な条件や制約のある仕様を整理して、効率よくテストすることができる。 
 ① ② ③

    ④ ①条件記述部…考慮すべき条件を列挙する 
 ②動作記述部…考慮すべき動作(出力結果)を列挙する 
 ③条件指定部…①の条件記述を満たすかどうかを示す 
 ④動作指定部…各列で指定されている条件指定の組み合 わせによって決まる出力結果(動作)を示す 

  10. 演習① 同値分割と境界値分析
 とある動物園の入場チケットをWebシステムで購入できるようにしました。
 チケット購入画面のUIは以下の通りです。(整数を入力できる)
 
 
 
 入園料金は年齢によって右図のように決められています。
 
 
 


    「同値分割法」と「境界値分析」を用いて入園料金のテストケースを作成してください。 
 20 年齢
 入園料金
 6歳未満
 無料
 6歳以上〜13歳未満
 500円
 13歳以上〜18歳未満
 1,000円
 18歳以上
 1,500円

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

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

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

  14. おまけ
 テスト技法の演習、いかがでしたか?
 テスト技法を知るだけでなく、
 • いつ使うのか
 • どのように使うのか
 • どのテスト技法を組み合わせるのか
 等を考えていくことが次のステップです。


    Confluence「Quality Assurance」に体系的にまとめてありますので、目を通し てみてください。
 「開発プロセス全体の質をあげる」ことが重要です!
 
 さらに勉強したいと思ったら…
 会社のキャビネットに私物のテスト本を何冊か置いてあるので、 
 ご興味あれば貸し出します!! お気軽にお声がけください。 
 25
  15. Reference 26 本編の内容は以下資料、書籍より引用 / 加工し使用させていただきました。感謝申し上げます。
 
 
 『ASTERセミナー標準テキスト 』
 特定非営利活動法人

    ソフトウェアテスト技術振興協会 
 
 『知識ゼロから学ぶ ソフトウェアテスト 』
 翔泳社 高橋 寿一 (著) 
 
 『JSTQB教科書 JSTQB認定テスト技術者 Foundation Level試験 』
 翔泳社 湯本 剛, 大西 建児, 勝亦 匡秀, 加藤 大受, 佐々木 方規, 鈴木 三紀夫, 町田 欣史, 吉澤 智美 (著) 
 
 『はじめて学ぶソフトウェアのテスト技法 』
 日経BP リー・コープランド (著), 宗 雅彦 (翻訳) 
 
 『ソフトウェアテスト技法ドリル 』
 日科技連出版社 秋山 浩一 (著) 
 
 『ソフトウェアテスト技法練習帳 』
 技術評論社 梅津 正洋, 竹内 亜未, 伊藤 由貴, 浦山 さつき, 佐々木 千絵美, 高橋 理, 
 武田 春恵, 根本 紀之, 藤沢 耕助, 真鍋 俊之, 山岡 悠, 吉田 直史 (著)