" />
本ページはプロモーションが含まれています。

スポンサーリンク

開発

自動テスト(JUnit)の必要性

 自動テストのテストコードを書こう!というのは、10年くらい前から叫ばれています。

しかし、実際にテストコードを書くかどうかは案件によって半々です。

自動テストのメリット

 自動テストのメリットは、何回も繰り返せることにあります。
手動テストは、繰り返しに向いておらず、その都度エンジニアが手を動かす必要があります。

上記の自動テストのメリットは、仕様変更が入った場合にとても役に立ちます。
仕様変更が入った場合、その影響範囲が大きければ大きいほど、本来、テストをやり直す必要も大きくなるはずです。

この時、自動テストであればテストコードのちょっとした修正だけでテスト完了できます。

しかし、手動テストの場合は、修正箇所に係るテストケースをやり直すことになります。

ウォーターフォール VS アジャイル開発

 自動テストは繰り返しやった分だけ、利用価値が上がります。

繰り返しが不要、もしくはあまり発生しないワークフロー、例えばウォーターフォールでしっかり設計書レビューもしている場合、仕様変更発生の可能性は低いかもしれません。

そのため、自動テストは新規開発時に1度作って実行したら終わりになるかもしれません。エンジニアとしては価値を感じにくいでしょう。

 一方、アジャイル開発ではウォーターフォールの時ほど最初から仕様を固めず進んでいくでしょう。

そうすると、開発を進めていく中で仕様変更は発生しやすくなります。進めているうちに、やっぱりこうだよね、もうちょっと進めてからあれも必要だよねと、仕様は変わっていきます。

そうすると、その都度手動テストをするのは時間がかかりますし、エンジニアのモチベーションも下がってしまいます。

自動テストが導入されていれば、手動テストの時ほどテストに要する時間はかからないでしょう。

自動テスト導入の是非

自動テストはチームで話あって、戦略的に取り入れる必要があります。

自動テストのコーディングとメンテナンスには時間というコストがかかるため、導入するならば品質担保という視点から、「どこからどこまでは自動テストにする、そのため手動テストは省く。手動テストでやる部分はここ。」という具合に、全体戦略を考えてからやりたいものです。

自動テストは「繰り返しテストが発生するシーンで価値がある」ということを押さえてもらって、ウォーターフォール以外の開発では導入するメリットが大きくなります。

もちろん、ウォーターフォールでもテストコードのメンテナンスコストが許容されるなら、是非導入するべきです。

スポンサーリンク

-開発