自動テスト設計における戦略
無作為にテストコードを実装していくと、実行時間やメンテナンスのコストが肥大化して問題になる。そうすると変更に対して躊躇するので、本来の目的であった「素早く変化する」が満たせなくなってしまう。
そこで、いくつかの戦略が採れる。
- テストピラミッド
- SMURF
テストピラミッド
Section titled “テストピラミッド”早く確実なユニットテストを多く持つ。単体テストだけでは全体を通して正しく動いているかを保証できないので、単体テストを補う形でインテグレーションテストとE2Eテストを置く戦略。
- ユニットテスト … 早く確実で低コストなので多く実装する
- インテグレーションテスト
- E2Eテスト … 遅く高コストなので最小限にする
自動テストを設計するとき考慮すべき以下の頭文字を繋げたもの。原典のSMURF: Beyond the Test Pyramidではレーダーチャートで評価している。
- Speed … 動作スピード
- Maintainability … 保守性
- Utilization … リソース使用率
- Reliability … 信頼性(決定性、安定性)
- Fidelity .. 忠実性(本番との類似度)
ここからは感想だけど、E2Eや単体テストのSMURFを評価したところで、どう使えば効果的なのか情報がないので使いづらいと思った。