説明トレーニング

略してせつとれ!!


今日はテスト駆動に於ける要求のwhatと要求のhowの話。
たとえば顧客からこんな要件があったとする。
・商品をtwitterでツイートしてほしい
・商品をtwitterAPIを使ってツイートしてほしい
この違いがわかるだろうか?
どちらもtwitterを使う、ということには変わりはない。
だから受け入れテストとして最低限必要なことは、ツイッターの画面に商品情報が投稿されていること、である。
じゃあ他のテストはどうだろうか。
前者についてはAPIから投稿してもいいし、ログイン画面からログインして投稿、という選択肢がいくつもあるし、どれも要求に含まれていないからテストは書かなくてもいいかもいsれない。
しかし、後者に関しては要求といてAPIを使うこと、とあるので指定の通りの方法でコードを書かなければならない。
つまり要件定義の如何によってwhatにもなりhowにもなるということである。
得られる結果は同じなのに、である。

だからどのようなテストを書くか、というのは実はエンジニア層で決められなかったりするのである。