どうもこの本は、まとめ方が若干惜しい。掲載されているテストのノウハウは、量も多く網羅的で、プログラマなら(特にプログラマのリーダ的な立場の人は)、知って置きたいテクニックが満載なんだけど、見せ方がいまいち。
自分は、特に「Test Smell」のパートがこの本の中でも重要な部分だと思っているけど、ここも違和感がある。一個の Test Smell のカタログ項目として、複数の Causes(原因)が列挙されているが、これら自体が Test Smell だったりして、何だかややこしい。
以下のような Test Smells が掲載されている。
- Project Smells
- Production Bugs:
公式なテストで(開発チームの手を離れてからのテスト)、または出荷した後に見つかるバグが多すぎる - Buggy Tests:
テスト自体にバグが多い - Developers Not Writing Tests:
テストコードが書かれていない - High Test Maintenance Cost:
メンテするのが大変すぎる
- Production Bugs:
- Behavior Smells
- Fragile Test:
テスト対象コードに含まれない、他所の部分の改修によって、テストが通らなくなる - Assertion Roulette:
テストメソッド中の、どのアサーションが失敗してるのか分かりにくい - Erratic Tests:
その時々で、あるテストが通ったり通らなかったりする - Frequent Debugging:
テストが通らない原因が、いちいち手動デバッグしないと分からない - Slow Tests:
テストの実行に時間かかりすぎる
- Fragile Test:
- Code Smells
- Obscure Test:
何がどうなる事を検証しているのかが不明瞭 - Conditional Test Logic:
テストロジックの中に条件分岐があって、場合によって実行パスが通ったり通らなかったりする - Hard-to-Test Code:
テスト対象コードのテスタビリティが低すぎて、テストが書けない - Mannual Intervention:
いちいち手作業で何らかの介入をしないと進まない - Test Code Duplication:
テストコードが重複している - Test Logic in Production:
製品コードにテストコードが含まれてしまっている
- Obscure Test:
xUnit に慣れているプログラマなら、上記のほとんどの Test Smells について、常識だと思うかもしれないけど、熟練者がいないチームで暗中模索しながら書かれたテストコードなんかだと、かなりの頻度で遭遇するアンチパターンだったりする。
0 件のコメント:
コメントを投稿