自動化するべきテストケースの見分け方
システム開発の技術が目まぐるしく進化していく中、テスト自動化の需要は急増しています。
テストを自動化することで、リリースサイクルの短縮や品質の向上、テストコストの削減など、多くの利点を得られますが、その反面テスト自動化には初期費用や運用保守などの様々なコストがかかります。
かかるコストに対して最大限の効果を発揮し、テスト自動化を成功へと導くためには、「自動化するべきテストケース」を見分け、選択することがとても重要になってきます。
1.自動化の効果があるテストとは?
「効果のあるテスト」とは、分析・設計が適切に行われており、誰が実施しても同様の正確な結果を得ることが出来るよう記述されたテストケースの事を指しています。
大前提として、手動で実行してもバグを見つけられないテストケース、または実施者によって手順が変化するような曖昧なテストケースは、自動化しても効果がないといえるでしょう。
手動テストの場合、テストの実施者はテストケースに記述されている内容だけでなく、その周辺も暗黙的にチェックしています。この暗黙的なチェック範囲は実施者の経験や知識量によって大きく変化します。
比較して、自動テストは記述されたものに対して正確なチェックを行うものの、記述されたもの以外をチェックすることは出来ません。
確認項目が曖昧であればあるほど、テストを自動化した際に手動テストとの確認範囲の差が大きくなり、結果として「効果のない自動テスト」になってしまうのです。
よってまずは、そのテストケースの分析・設計が適切に行われているか、曖昧な記述によって実施者の知識や経験に頼るようなテストケースになってしまっていないかを確認することが 「自動化するべきテストケース」を見分ける際に重要な判断材料の1つになります。
2.自動化するべきテストケースとは?
では、沢山あるテストケースの中からどのテストを優先して自動化していけばよいのでしょうか?自動化による効果を発揮しやすいテストには幾つかの特徴があります。
今回はその中でも代表的なものを3つ取り上げていきます。
①頻繁に繰り返し実行されるテスト
1つ目は「繰り返し実行されるテスト」です。
せっかく時間と手間をかけて作成した自動テストも、実行するタイミングがなければ無駄になってしまいます。更に自動テストの場合は、いつでも実施できるようスクリプトをメンテナンスする必要があるため、
数か月に1回のようなペースでしか実施しないようなテストの場合、結果として毎回手動で行った方が少ないコストで早く実施できてしまうということもあります。
テストケース の内容やボリュームによっては、実施回数が少ないテストでも効果を得られる可能性はありますが、毎日のように頻繁に繰り返し実行されるテストを優先して自動化した方が、確実に効果を発揮すると言えるでしょう。
②変更や追加が少ない機能のテスト
2つ目は「変更・追加の少ない機能のテスト」です。
自動テストは、機能の変更や追加によるメンテナンスに大きなコストがかかるため、頻繁に変更や追加がされてしまう機能の場合、メンテナンスにかかったコストが自動化によって削減できるコストを上回ってしまうことがあります。
一方で、変更や追加が少ない機能のテスト自動化はメンテナンスにかかるコストを抑えることができ、自動化するべきテストと言えます。
③実行に時間がかかるテスト
3つ目は「実行に時間がかかるテスト」です。
実行に時間がかかり尚且つ頻繫に実施する必要のあるテストは、テストのリソースを圧迫する原因になります。また、実行に時間がかかるテストほど実施者の確認漏れ等の人為的ミスが多くなってしまいます。
こういったテストは夜中や早朝、昼休憩時間など、人が作業をしないタイミングに自動テストで確認することで、実行時間の削減や、人為的ミスの削減につながります。
更には自動化によって得たリソースは、品質をより良くするための新たな活動にあてられるようになり、効率よく品質が向上するでしょう。
3. まとめ
今回は、「自動化するべきテストケース」について、3つの特徴をご紹介しました。
テスト自動化を成功させるためには、「自動化するべきテストケース」を判断するだけでなく、テスト対象の特徴やテストの状況等を分析し、継続可能な計画を立てる必要があります。
弊社にはテスト自動化に関する知識が豊富なエンジニアが多数在籍しており、お客様のご要望に合わせて、テスト対象の分析・導入の計画から、運用保守まで完全なサポートをさせていただくことが可能です。是非、お気軽にお問い合わせください。