最近では短期間で開発するために、テスト作業を効率化する方策として自動化が注目されています。しかし「テスト自動化ツールを導入したが、作業が増えるばかりで効果が感じられない…」という声もよく聞かれます。テスト自動化の取り組みは、導入フェーズのハードルが高いためにコストがかさみ、期待した効果が得られないケースが多いのも事実です。そこで、テスト自動化を成功させるための重要なポイントである「向き」「不向き」について解説します。
グローバルなデジタル保証市場は、2022年は54.3億ドル、2030年は132.7億ドルまで成長し、中でもテスト自動化は最速で成長すると予測されています。
テスト自動化が導入される理由のひとつに、アジャイルのような高速開発の普及があります。ビジネスを取り巻く環境は不確実なものになっており、変化のスピードは10年前と比べものにならないほど速くなっています。1~2週間の短い期間で開発する高速開発は、変化に素早く対応しなければならないビジネスの要求に対応できるという期待から、採用する企業が増えています。短期間で開発をするため、テスト作業の効率化が求められています。
また、変化に対応するためにITによる革新を目指すDXの取り組みが加速しています。開発する案件が急激に増え、迅速なリリースを求められることから、テスト期間が長く取れない、人手が足りないといった問題が表面化しています。
かつて、テストは大量のテスト要員を投入して人海戦術で実施していました。しかし、開発期間も短く人手も不足している今、品質を損なうことなくテストを効率化するには、テスト自動化以外にないと言えます。
しかしテスト自動化の9割が失敗すると言われるほど、導入のハードルが高いのも事実です。テストの自動化は、手動テストと比較して導入コストが高いため、導入したものの期待した効果が得られないという声も多く聞かれます。失敗する原因としては、テスト自動化のノウハウが不足していることが挙げられます。
自動化の効果を高めるためには、自動化対象のテストケースを適切に選定する必要があります。ツールを導入したとしても、全てが自動化できるとは限らないからです。例えばWeb UIでない場合やハードウェアの操作が必要な場合は、自動化ツールの対象外となります。また全てのテストを一度にコーディングすると莫大な工数がかかり、費用対効果が低くなってしまいます。自動化の対象範囲を効果の高い部分に絞り込み、徐々に範囲を広げていく必要があります。
自動化対象を選定するためには、まずテストケースの導入可否を判断します。テストケースに対して「検討対象」「対象外」「現状不要」「一部可能だが効果低」に分類し、診断理由を記載します。
検討対象とした理由を記載するとともに、「グラフ表示項目は、値の妥当性確認は判断の基準となるリファレンスデータとの整合性確認が必要なため、不可能」「汎用出力については、出力有無の確認はハードウェアの目視確認」といった制約事項を記載します。
主に非機能系の例外処理、障害対応系のテストは対象外となります。通信断など障害状態を手動で発生させる必要がある場合や、SDカードの抜き挿し操作などハードウェア動作が必要な場合は、対象外となります。
放置して定期的に監視する長期運用テストのように、現状の操作・方式で作業の流れが完成されており、自動ツールの入り込む余地が少ないものは、自動化の必要性が低くなります。
部分的には自動ツールの適用が見込めるが、テスト全体のバランスを考慮すると得られる効果が低いものが対象です。前後の操作手順に手動操作・目視確認が必要なものなどが考えられます。
次に導入レベルを参考にして自動化の対象を決めていきますが、自動化に向いているものを中心に選定すると効果が高くなります。
テスト自動化に向いているもの、向いていないものは次の通りです。
リグレッションテストでは、リリース後に一部の機能を改修した場合に、他の機能が正常に動作するかを確認します。同じテストを繰り返し実行するため、自動化に向いています。
PC端末は、Windowsのバージョンやブラウザの種類・バージョンによって動作環境が異なります。またスマートフォンは各メーカーから毎年のように新製品が投入されており、機種によっては表示が崩れたりエラーになったりする場合もあります。多種多様な端末環境で同じテストが必要なものは自動化に向いています。
基本機能の動作確認テストのように、テストを開始するたびに毎回繰り返さなければならないテストは自動化に向いています。
要求に変更が入ると、そのたびにテストコードを修正しなければならないため、頻繁に変更される機能は、自動化に向きません。
問題なく動作している機能でも、仕様がブラックボックス化されている場合は、正しい結果がわからないため、自動化することができません。自動化するにはまずソースを解析して、仕様をドキュメントに記載する必要があります。
最初に1回だけ使うものや期間限定で使うものなど、使う頻度が少ない機能は自動化できても費用対効果が低くなります。
ヴェスでは、テスト自動化を自社で行う支援サービスを提供しています。システムに最適なツールの選定や、自動化対象の決定、スクリプト作成時の課題解決、定着化の取り組み、といった自動化の高いハードルとなっている要素について、豊富なノウハウを提供しています。
提供するサービスでは、「(1)事前技術調査」「(2)サンプル(スクリプト/プログラム)の作成」「(3)テスト自動化 導入プランの構築」「(4)テスト自動化の運用と効果測定」という4つのステップを通じて、実現性の高い目標をクリアしていくことで、スムーズなテスト自動化を実現します。
テスト自動化は導入こそコストがかかるものの、作成されたテストコードは資産となり、将来テストの実施コストを極小化することも夢ではありません。テスト自動化を検討している皆様、ぜひ一度ご相談ください。