in WACATE 2019 Winter https://wacate.jp/workshops/2019winter/
業務でも活用できるソフトウェアテストの7原則
View Slide
自己紹介● 社会人6年目● WACATEの参加歴○ WACATE 2015 夏 〜 WACATE 2018 冬○ WACATE 2018 夏 でBPP賞○ WACATE 2019 夏からWACATE実行委員● その他、社外活動○ JaSST Review 実行委員長○ ASTER正会員● ネコ派 というより ブロッコリー派風間 裕也↓Twitterアイコン
● JSTQB(ソフトウェアテスト技術者資格)を取得している人?● ソフトウェアテストの7原則を言える人?アンケート
ゴールソフトウェアテストの7原則を普段の業務中にも意識できるようになるソフトウェアテストの7原則を知っているソフトウェアテストの7原則を事例を踏まえて理解できる
アジェンダソフトウェアテストの7原則の紹介ソフトウェアテストの7原則を実際の業務に当てはめてみよう
ソフトウェアテストの7原則とは何か?https://jp.freeimages.com/photo/sevens-luckily-1222955
ソフトウェアテストの7原則とは
ソフトウェアテストの7原則とは● ISTQB(JSTQB)に記載されている、あらゆるテストで共通に使える一般的なガイドライン。○ ISTQBテスト技術者資格制度 Foundation Level シラバス 日本語版 Version 2018.J03■ http://jstqb.jp/dl/JSTQB-SyllabusFoundation_Version2018.J03.pdf※以下、JSTQBシラバスと表記● JSTQBシラバスでは、全部で1ページ弱しか載っていない。● テストエンジニアのみならず、開発者・マネージャなどあらゆるロールの人に知ってほしい原則
ソフトウェアテストの7原則1. テストは欠陥があることは示せるが、欠陥がないことは示せない2. 全数テストは不可能3. 早期テストで時間とコストを節約4. 欠陥の偏在5. 殺虫剤のパラドックスにご用心6. テストは状況次第7. 「バグゼロ」の落とし穴
テストは欠陥があることは示せるが、欠陥がないことは示せないソフトウェアテストの7原則①
1.テストは欠陥があることは示せるが、 欠陥がないことは示せないJSTQBシラバスでは… テストにより、欠陥があることは示せるが、 欠陥がないことは証明できない。ダメな例「これだけのテストをやったから、もう欠陥は一切ないです!」
1.テストは欠陥があることは示せるが、 欠陥がないことは示せない テストにより、ソフトウェアに残る未検出欠陥の数を減らせるが、 欠陥が見つからないとしても、正しさの証明とはならない。良い例「今回示した状態遷移に関するテストの部分では、 欠陥が出ませんでした。」JSTQBシラバスでは…
全数テストは不可能https://jp.freeimages.com/photo/code-1-1526538ソフトウェアテストの7原則②
2.全数テストは不可能 すべてをテストすること(入力と事前条件の全組み合わせ)は、 ごく単純なソフトウェア以外では非現実的である。例名字の入力欄のテストJSTQBシラバスでは…
2.全数テストは不可能 すべてをテストすること(入力と事前条件の全組み合わせ)は、 ごく単純なソフトウェア以外では非現実的である。例名字の入力欄のテスト● 日本に存在する漢字を5文字(日本の名字の最長文字数)入れる全ての組み合わせ→(2136種類)の5乗 = 約4000兆種類JSTQBシラバスでは…
2.全数テストは不可能 すべてをテストすること(入力と事前条件の全組み合わせ)は、 ごく単純なソフトウェア以外では非現実的である。例名字の入力欄のテスト● 日本に存在する名字のパターン全て→約13万種類JSTQBシラバスでは…
2.全数テストは不可能 すべてをテストすること(入力と事前条件の全組み合わせ)は、 ごく単純なソフトウェア以外では非現実的である。例名字の入力欄のテスト● 日本に存在する名字のパターン全て→約13万種類さらに、「名字と名前の組み合わせ」まで考えると大変なことに!JSTQBシラバスでは…
2.全数テストは不可能 全数テストの代わりに、リスク分析、テスト技法、および優先度により テストにかける労力を集中すべきである。例名字の入力欄のテスト● 文字数 … 0,1,5,6文字(境界値分析)● 文字種 … ひらがな、カタカナ、 漢字、絵文字など(同値分割)JSTQBシラバスでは…
早期テストで時間とコストを節約https://jp.freeimages.com/photo/watch-1417234ソフトウェアテストの7原則③
3.早期テストで時間とコストを節約 早い段階で欠陥を見つけるために、静的テスト活動と動的テスト活動の 両方をソフトウェア開発ライフサイクルのなるべく早い時期に開始 すべきである。早期テストは、シフトレフトとも呼ばれる。静的テストソフトウェア開発の成果物(要件、設計、又は、コードなど)の実行をせずに実施する成果物のテスト。たとえば、レビュー、静的解析など。動的テストコンポーネントやシステムのソフトウェアを実行させて確認するテスト。JSTQBシラバスでは…出典:ソフトウェアテスト標準用語集(日本語版) Version 2.3.J02http://jstqb.jp/dl/JSTQB-glossary.V2.3.J02.pdf
V字モデルユーザ要求システム要件基本設計詳細設計受け入れテストシステムテスト統合テストコンポーネントテスト実装3.早期テストで時間とコストを節約 早い段階で欠陥を見つけるために、静的テスト活動と動的テスト活動の 両方をソフトウェア開発ライフサイクルのなるべく早い時期に開始 すべきである。早期テストは、シフトレフトとも呼ばれる。JSTQBシラバスでは…
シフトレフトユーザ要求システム要件基本設計詳細設計受け入れテストシステムテスト統合テストコンポーネントテスト実装3.早期テストで時間とコストを節約 早い段階で欠陥を見つけるために、静的テスト活動と動的テスト活動の 両方をソフトウェア開発ライフサイクルのなるべく早い時期に開始 すべきである。早期テストは、シフトレフトとも呼ばれる。JSTQBシラバスでは…
シフトレフトの例ユーザ要求システム要件基本設計詳細設計受け入れテストシステムテスト統合テストコンポーネントテスト実装3.早期テストで時間とコストを節約 早い段階で欠陥を見つけるために、静的テスト活動と動的テスト活動の 両方をソフトウェア開発ライフサイクルのなるべく早い時期に開始 すべきである。早期テストは、シフトレフトとも呼ばれる。テスト設計JSTQBシラバスでは…
シフトレフトの例ユーザ要求システム要件基本設計詳細設計受け入れテストシステムテスト統合テストコンポーネントテスト実装3.早期テストで時間とコストを節約 早い段階で欠陥を見つけるために、静的テスト活動と動的テスト活動の 両方をソフトウェア開発ライフサイクルのなるべく早い時期に開始 すべきである。早期テストは、シフトレフトとも呼ばれる。レビュー指摘事項JSTQBシラバスでは…
ソフトウェア開発ライフサイクルの早い時期に テストを行うことにより、コストを低減または削減できる。仕様誤りの修正コスト要求仕様 設計 実装 テスト リリース後1倍5倍10倍20倍200倍!3.早期テストで時間とコストを節約JSTQBシラバスでは…出典: Alan M. Davis. ソフトウェア開発 201の鉄則. 日経BP社
欠陥の偏在https://jp.freeimages.com/photo/ancient-stone-wall-1180286ソフトウェアテストの7原則④
こんな経験ありませんか?「機能Aの部分は不具合がたくさん見つかるなぁ…」4.欠陥の偏在 リリース前のテストで見つかる欠陥や運用時の故障の大部分は、 特定の少数モジュールに集中する。JSTQBシラバスでは…
4.欠陥の偏在 テストの労力を集中させるために欠陥の偏在を予測し、テストや 運用での実際の観察結果に基づいてリスク分析を行う。リスク分析の例「20歳未満の場合『未成年』と判定する」をテストする。→「19歳」と「20歳」の2パターンをテスト (境界値分析)JSTQBシラバスでは…
4.欠陥の偏在 テストの労力を集中させるために欠陥の偏在を予測し、テストや 運用での実際の観察結果に基づいてリスク分析を行う。「20歳未満の場合『未成年』と判定する」をテストする。→「19歳」と「20歳」の2パターンをテスト (境界値分析) if ( x <= 20 ) {return “未成年”;}リスク分析の例JSTQBシラバスでは…
4.欠陥の偏在 テストの労力を集中させるために欠陥の偏在を予測し、テストや 運用での実際の観察結果に基づいてリスク分析を行う。「20歳未満の場合『未成年』と判定する」をテストする。→「19歳」と「20歳」の2パターンをテスト (境界値分析) 理由…不等号のミスが発生しやすいからif ( x <= 20 ) {return “未成年”;}リスク分析の例JSTQBシラバスでは…
殺虫剤のパラドックスhttps://jp.freeimages.com/photo/spray-1-1492322ソフトウェアテストの7原則⑤
殺虫剤のパラドックスの元ネタ5.殺虫剤のパラドックス
5.殺虫剤のパラドックス殺虫剤耐性あり殺虫剤のパラドックスの元ネタ
5.殺虫剤のパラドックス殺虫剤のパラドックスの元ネタ
5.殺虫剤のパラドックス殺虫剤殺虫剤のパラドックスの元ネタ
5.殺虫剤のパラドックス改良した殺虫剤耐性あり殺虫剤のパラドックスの元ネタ
5.殺虫剤のパラドックス少しでもすり抜けて生き残る害虫がいる限り、完全には駆除できないし、残っている害虫には現在の殺虫剤が効かない。殺虫剤のパラドックスの元ネタ
5.殺虫剤のパラドックス少しでもすり抜けて生き残る害虫がいる限り、完全には駆除できないし、残っている害虫には現在の殺虫剤が効かない。テストは欠陥があることは示せるが、欠陥がないことは示せない殺虫剤のパラドックスの元ネタ
5.殺虫剤のパラドックス 同じテストを何度も繰り返すと、 最終的にはそのテストでは新しい欠陥を見つけられなくなる。こんな経験ありませんか?「このテストを毎回のリリース前にやれば大丈夫!」JSTQBシラバスでは…
5.殺虫剤のパラドックス「このテストを毎回のリリース前にやれば大丈夫!」→テストをすり抜けた不具合は残り続けている 可能性があるので、行うべきテストを見直しましょうこんな経験ありませんか? この「殺虫剤のパラドックス」を回避するため、 テストとテストデータを定期的に見直して、 改定したり新規にテストを作成したりする必要があるJSTQBシラバスでは…
5.殺虫剤のパラドックス ただし、自動化されたリグレッションテストの場合は、 同じテストを繰り返すことでリグレッションが低減している という有益な結果を示すことができる。自動化されたリグレッションテストの目的● 不具合を新しく見つける(すり抜けた不具合を見つける)ことが目的ではない● 既に見つけた不具合が再発していないか確認することが目的JSTQBシラバスでは…
テストは状況次第https://jp.freeimages.com/photo/chart-1238452ソフトウェアテストの7原則⑥
6.テストは状況次第 状況が異なれば、テストの方法も変わる。テスト工数を多くかける必要があるのはどっち?● 正式に売っているわけではないお試し版● 不具合が発生すると死亡事故になるような医療系の製品JSTQBシラバスでは…
6.テストは状況次第 アジャイルプロジェクトとシーケンシャルライフサイクルプロジェクト では、テストの実行方法が異なる。自動化がより効果的なのはどっち?● 1回だけ実行するテスト● 何回も同じことを繰り返し実行するテストJSTQBシラバスでは…
バグゼロの落とし穴https://jp.freeimages.com/photo/the-big-hole-1508554ソフトウェアテストの7原則⑦
7.バグゼロの落とし穴 テスト担当者は可能なテストすべてを実行でき、 可能性のある欠陥すべてを検出できると期待する組織があるが、 原則2と原則1により、これは不可能である。なぜ不可能なのか?「全数テストは不可能(原則2)」ですし、「テストは欠陥があることは示せるが、欠陥がないことは示せない(原則1)」ので、全テストがOKだとしても、「バグゼロ」はあり得ません。JSTQBシラバスでは…
7.バグゼロの落とし穴 大量の欠陥を検出して修正するだけでシステムを正しく構築できると 期待することも誤った思い込みである。「バグゼロ」に向かうために、直す方が良い?不具合が1つも見つかっていない状態でリリース前日まで来たが、このタイミングで新たなバグを発見した。JSTQBシラバスでは…
7.バグゼロの落とし穴 大量の欠陥を検出して修正するだけでシステムを正しく構築できると 期待することも誤った思い込みである。「バグゼロ」に向かうために、直す方が良い?不具合が1つも見つかっていない状態でリリース前日まで来たが、このタイミングで新たなバグを発見した。→直すことで、プログラムの変更が発生し、 新たなバグを引き起こす可能性があるJSTQBシラバスでは…
7.バグゼロの落とし穴 例えば、指定された要件すべてを徹底的にテストし、検出した欠陥 すべてを修正しても、使いにくいシステム、ユーザーのニーズや期待を 満たさないシステム、またはその他の競合システムに比べて 劣るシステムが構築されることがある。住基ネットカードの例● トラブルがほぼゼロ。● 全国民への普及が目的だったが、普及率は約5%程度● 政府はマイナンバーカードを開発・普及させる方針に変更JSTQBシラバスでは…
ソフトウェアテストの7原則を実際の業務に当てはめてみよう(※ワーク題材は非公開)
個人ワーク10分https://jp.freeimages.com/photo/student-1528001
ワーク内容意識すべき原則を探そう
ワーク内容意識すべき原則を探そう原則以外でモヤるところを探そう
ワーク内容意識すべき原則を探そう原則以外でモヤるところを探そうどのように伝えれば良いか考えよう
グループワーク10分https://jp.freeimages.com/photo/workshop-4-1455028
グループワーク時に意識してほしいこと● 意識すべきと考えた原則が人によって違うかも● モヤるところが人によって違うかも→皆の意見をしっかり聞こう複数の意見から違いを見つける絶対的な答えがあるわけではない● 「こうすれば良い」といった絶対解はありません● 自分なりの考えを言葉にしてみましょう
回答例(※非公開)https://jp.freeimages.com/photo/feedback-form-excellent-1238383
注意点正しさがすべてではない● 「ソフトウェアテストの7原則に反している」という正義を振りかざすべきタイミングを見極める○ 原則が毒薬になり「うざったいだけの人」にならないように!● 何らかの事情で原則に反している場合もあり得る○ 事情に寄り添い、障壁を排除しよう
ソフトウェアテストの7原則を意識してより良いテスト・開発を!
参考資料ISTQBテスト技術者資格制度 Foundation Level シラバス 日本語版 Version 2018.J03 http://jstqb.jp/dl/JSTQB-SyllabusFoundation_Version2018.J03.pdfKouichi Akiyamaさんによるnote記事 https://note.com/akiyama924/n/ne92b6ece48a1 https://note.com/akiyama924/n/n01bedac15083 https://note.com/akiyama924/n/n7c464a00c3b4 https://note.com/akiyama924/n/n79b902f69ddf https://note.com/akiyama924/n/nc006015de2d2 https://note.com/akiyama924/n/n9ff13d639627 https://note.com/akiyama924/n/n59a30e23edc7Professional Google Slides Template(スライドデザイン) https://slidesmash.com/professional-google-slides-template/Free ICONS Library(アイコン画像) https://icon-library.net/icon/spray-icon-22.html https://icon-library.net/icon/bug-icon-1.html