徹底攻略 JSTQB Foundation教科書&問題集 シラバス2018対応を勉強しているので、自分のメモとしてまとめています。
今回はコラムです。
テストファーストとは
先にテストコードを記述してからアプリケーションを記述するという方法論のことを、テストファーストという。
アプリケーションコードがイテレーティブ開発で複雑になった場合、かなり複雑な処理だったとしても、最後に最初に作っていたテストコードを毎回徹自動テストを行うことができる。
そのため、ミスやデグレをすぐに検知できる。
テスト駆動開発(TDD)
テストファーストという方法論を具体的な開発技法にしたもの。
まずレッド(テスト失敗)となるコードを書く
↓
グリーン(テスト成功)となるコードを書く
↓
リファクタリングする(コードをきれいにする)
というサイクルで記述する。
感想
個人的には、仕様がコロコロ変わってしまうようなフェーズにあるプロダクトの場合はあまり向いていないのかなーとは思いました。ちょっとなれるのも時間がかかりそう。
ただ、テストは「この機能は何を達成することを目的とするか」を考えながら作るものだと思うので、出力数値が変わったとしてもテストロジックがめちゃめちゃ変わることはないのかもしれないと考えると、TDDは有効な手段なのかもですね。