書籍
第5章 プログラムコードに基づくテスト技法
5-1. 制御フローテスト
用語集
- 構造型プログラム
- 順次・分岐・繰り返しによって書かれるプログラム
- 制御フローテスト
- 構造型プログラム内の命令や制御を、網羅できるような入力値を選んでテストを複数回実行すること
気付き / 学び
いつ使うのか?
プログラムコードをどれだけテストしたかを定量的に示すとき。
「どれくらいテストした?」と質問がある時、「ブランチカバレッジの網羅率が100%になるよう、テストを行なっています」と答えられると確かにカッコいい。
第6章 人が持つ情報に基づくテスト技法
6-1. エラー推測テスト
用語集
- エラー推測テスト
- 過去の経験や欠陥から、ありそうな故障を推測し、意図的に引き起こすようなテストケースを設計する
気付き / 学び
いつ使うのか?
テスト技法では見つけにくく、人が犯しやすいミスや、テスト対象で起こりそうな故障に基づいたテストを作成したい時
どうやってやるのか?
- 設計者や実装者が犯しそうなミスをリストアップする
- 埋め込まれそうな欠陥を連想し、テストケースを作成
ex) 仕様書のコピペに由来しそうな欠陥、疲れによるタイポ(0「ゼロ」をO「オー」にしたり)
ここまで小さいことを気にしていると、スピード感が落ちそう。
適用している企業はあるのだろうか?
6-2. リスクベーステスト
用語集
- リスク
- テスト対象で故障が生じた場合に起こりうる問題
- テスト対象の故障を引き起こしそうなリスク(エラー推測と同様)
- リスクベーステスト
- リスクをとらえ、問題の生じる可能性、影響度を評価し、テスト実施有無や優先度を決定する
気付き / 学び
リスクベーステストの使いどき
テストケースの優先度付けをしたい時
リスクベーステストのやり方
- リスク識別(リスクをリストアップする)
- リスク評価(リスクが発生する可能性 / 影響どを数段階で評価)
- リスクを軽減する(テストの実施内容・タイミングを決める)
6-3. 探索的テスト
用語集
- 探索的テスト
- テスト対象の学習をして、テスト設計、実行を行い、テスト結果を確認して、再度設計、実行を繰り返すテスト
気付き / 学び
探索的テストの使いどき
仕様書やプログラムコードのテスト技法では見つけにくい欠陥を見つけたいとき。
テストケース作成時間を、テスト対象の学習の探索行為に充てる。
第7章 テスト実装と実行のセオリー
7-1. テストの実装と実行
用語集
- テストスクリプト
- テストを実行するための一連の操作指示
- テストコード
- 自動で実行できるテストスクリプト
気付き / 学び
アジャイルテストの4象限
- 単体テスト(モジュール単位のテスト)
- 機能テスト(機能要件を満たすことのテスト)
- 探索的テスト(担当者が実施情報や経験値を生かし、実施方法を柔軟に調整するテスト)
- 性能テスト(非機能要件のテスト)
4象限は以下を参考
ref. https://www.knowledgewing.com/kw/blog/2024/11/agile09.html
ここの内容は学びが多い。
単体テストと機能テストに着目しがちだと感じた。
テストケースを作成しないことから、探索的テストを否定的に捉えていたこともあったが、ドメイン知識の高い人のテストは確かに大事。品質担保には繋がる。
しかし、時間コストが懸念に感じる。