テストデザインファーストという言葉を聞いたことがあるでしょうか。
私の会社ではこの言葉を
◆要件定義の時にシステムテストケースを
◆外部設計の時に結合テストケースを
◆内部設計の時に単体テストケースを
(外部設計→基本設計、内部設計→詳細設計)
つくること、を意味しています
検証のレベルに合わせて、適当な設計段階でテストケースの作成を実施すると、より詳細な設計や実装に移る前に、設計上の不備や、考慮漏れが検出しやすくなります。
また、テストケースを作成することで、想定結果(システムの想定上の振る舞い)をあらかじめ検証できます。
つまり、手戻りが非常に少なくなるということです。
これは見積り上の問題(より上流の工程に多くの要員、作業量を投入する必要がある)のため、簡単にはできないと思います。
が、私の担当プロジェクトでは、幸いなことにそのすすめ方が定着しています。
なぜ「テストデザインファースト」の話を出したかと言うと、いま進行中の案件でこれがうまくできていないものがあるからです。
この案件ではテストでの確認観点や想定結果を記載した「テストケース」と、そのテストケースを実現するためにどのようなデータを投入するかを記載した「データ設定表」を設計段階で作成しています。
しかし、データ設定表が空っぽのまま先に進んでいたのです。
曰く、「どのようにデータを設定するか実際のデータ作成をしないとわからない」とのこと。
で、実際にテストをする段階になって、データ設定表を作成してもらったところ、
そのデータ設定表がめちゃくちゃ。
原因を聞いてみたところ、仕様の理解が不十分とのこと。
結局、どういうことかというと、データの流れなどをまったく理解してないまま、
設計~製造まで実施していたということです。
つまり、どのようにデータが導出されるか分からないため、データ設定表を
つくることができなかったということです
このような設計はとても信頼することができません。
(新規開発でなく、保守開発で他の設計を真似をできるから
なんとかそれなりの設計ができていた)
仕様を理解できていないため、テストデータ設定表の棚上げして、
結局、仕様を理解していない設計を続けてしまった。
「テストデザインファースト」について、もう一度考え直した瞬間でした。
それでは本日のコケコッコはこれまでです。おやすみなさい。