わざと不具合を1つだけ入れた実装を用意して、「どの技法がどれを見つけて、どれを見逃すか」を毎回実際に走らせます。同値分割・境界値分析・デシジョンテーブル・状態遷移・ペアワイズ・MC/DC まで。全20レッスンで「勘で確認する」を「落ちる根拠を説明できる」に変えます。
全20レッスンを5つの章に分けています。第1章から順に進めるのがおすすめですが、 いま使いたい技法だけを拾い読みしてもかまいません。 ※ 実行結果は Python 3.14 + pytest 9 で実際に走らせたものです。手元で試すときは pytest を入れてください。
「全部試す」が現実には終わらないことを数字で見てから、テストレベルとテストタイプで置き場所を決め、読めるテストケースの形を作ります。ここが以降17回の共通言語になります。
10万通りを22グループに畳む同値分割から始めて、境界値・デシジョンテーブル・状態遷移・ペアワイズへ。毎回、前の技法では見つからないバグが1つ落ちます。
CFD法と原因結果グラフで条件の組み合わせを整理し、ユースケースで流れとしてのテストを作り、最後は探索的テストへ。ここで見つかるのはバグより「決まっていないこと」です。
命令網羅・分岐網羅・条件網羅・MC/DC。カバレッジは何を数えていて、100% でもバグが残るのはなぜか。数字の意味と限界を同時に扱います。
テストダブルの呼び分け、フィクスチャの置き方、性能テストの読み方、直る報告の書き方、そしてリスクで優先順位を決める話。最後に20回全体を1枚に畳みます。
全20レッスンを終えたら、テストを書く言語の側を固めましょう。Python 入門、あるいはチームで回す仕組みとして アジャイル・スクラムへ。メンバーシップで全コースが解放されます。