アジャイル開発やCI/CD導入がトレンドになる中で、テストプロセスの自動化が求められるようになっています。テスト自動化を導入することで、システムやプロダクトの品質を向上させ、最終的には顧客との信頼性向上につながります。しかし、既存のワークフローの中にテスト自動化を導入する際には、さまざまな課題があります。
本記事では、テスト自動化を導入するにあたっての一般的な課題を取り上げ、それらを解決するためのアプローチについて考察します。
テスト自動化のハードルが高いと感じる要因
テスト自動化の導入ハードルを感じる要因として、主に以下のようなものが挙げられます。
– 初期コストとリソースの確保
– ツール選定の難しさ
– スキル不足と学習曲線の急峻さ
– 効果測定の難しさ
このようなテスト自動化の導入ハードルの要因を詳しく解説していきます。
初期コストとリソースの確保
テスト自動化を導入する際には、一定の初期投資が必要になります。それはテスト自動化ツールといったソフトウェア面もありますが、実は、それ以上にヒューマンリソース・教育面でのコストがかかります。
初期コストとしては、テストを行うサーバー環境の整備が必要です。これは自社でくみ上げることもできますし、クラウドサービスを利用することもできます。もちろん、CI/CDのようなワークフローに対する組み込みも欠かせません。
教育面においては、ツール導入時の学習コストを考える必要があります。多くのテストツールは独自の実装になっていますので、なるべく学習コストの低いものを選定することも検討が求められます。学習コストが低いツールであれば、新規メンバーをアサインした際のオンボーディングコストも抑えられます。
また、より本格的にテスト自動化を推し進める際には、専門の人材の雇用や、外部リソース活用も検討すべきでしょう。パイロット的に一部で導入し、一定の効果が期待できると判断できれば、追加投資する価値があります。
ツール選定の難しさ
テスト自動化のためのツールは多数存在します。クラウドサービスやオープンソース・ソフトウェア、商用ツールなどさまざまです。テストスクリプトを多数作ってしまうと、ツールの変更が難しくなるため、ツール選定は慎重に行う必要があります。
テストスクリプトは一度作ったら終わりではなく、定期的にメンテナンスが発生します。そのため、ツールのサポート体制や、メンテナンス工数も低いものを選びましょう。属人的になった結果、担当者の退職に伴ってテストのメンテナンスができなくなるといった事態を避けるためにも、誰でもすぐに使いこなせるツールを選びましょう。
スキル不足と学習曲線の急峻さ
テスト自動化の導入に際して、スキル不足がハードルとなるケースがあります。多くのテストツールでは、テストスクリプトを書くためにプログラミングスキルが必要になります。また、テスト自動化のためのツールを使いこなすためには、それぞれのツールの知識が必要です。
そうした特定のスキルを必要としないツールを選定しましょう。特に開発チームではないメンバーでもツールを使いこなせると、テスト自動化の普及が進みます。開発チームに追加の負担を強いることなく、テスト自動化を進められます。
一般的にツールは利用する中で学習し、その特性を学びます。テスト工程になってから学ぶのではなく、プロジェクトの初期段階でツールを選定し、その特性を理解すると導入がスムーズに進みます。また、ツールの使い方を学ぶための教育プログラムを用意するのも有効です。
効果測定の難しさ
テスト自動化を導入したものの、効果を把握できていないという話はよく聞かれます。その要因としては、テスト自動化の効果測定が難しいという点が挙げられます。
テスト自動化の導入目的は、最終成果物であるプロダクトの品質向上にあります。そのため、プロダクトにおける品質とは何かを定義し、現状を把握しなければなりません。
現状の把握として注目したいのがフィジビリティスタディです。フィジビリティスタディとは、実行可能性調査や投資調査とも呼ばれます。現状を調査、可視化し、テスト自動化の導入効果を事前に予測するというものです。
たとえば現状の手戻り工数や、不具合の発生数、顧客からのクレームや問い合わせなどを可視化し、そこにかかっているコストを概算します。テスト自動化の導入によって、これらのコストが削減されると予測できれば、導入効果を事前に把握できます。
ハードルを下げるためのアプローチ
ここからは、テスト自動化の導入ハードルを下げるためのアプローチについて考察します。
段階的な導入計画の策定
テスト自動化を闇雲に導入しても、効果を上げるのは難しいでしょう。また、初期コストが膨らんでしまい、結果的に導入が失敗する可能性もあります。導入計画を立て、段階的に導入していくことが重要です。
すでにワークフローが存在するならば、テスト自動化の仕組みを導入してもワークフローが阻害されない状態にしましょう。突然デリバリーができない状態になると、開発チームのモチベーションが下がり、テスト自動化の導入が進まなくなる可能性があります。
そして、テスト自動化はプロダクトの根本的価値に関わる部分から導入します。たとえば認証や決済処理など、不具合があると大きな影響を及ぼす部分からテスト自動化を導入すると、効果を実感しやすくなります。
その後、効果を感じながら徐々に範囲を広げていきます。大事なのは、すべてに対してテスト自動化を適用しないことです。前述の通り、テストスクリプトのメンテナンス工数がかかるため、テスト自動化の効果を維持できる範囲の見極めが大事です。
適切なツールの選定と評価
テスト自動化をサポートするツールは多数あります。プロダクトの種類や行いたいテスト、チームのスキルなどに合わせて、適切なツールを選定しましょう。
そして、テストツールは実際に使ってみて評価しましょう。周囲の評価が良かったとしても、自分たちのプロダクトにマッチしているとは限りません。ツールの使い勝手や、メンテナンスのしやすさ、サポート体制などを確認し、自分たちの状況に合ったツールを選びましょう。
社内教育とスキルアップの推進
テスト自動化ツールは何らかのテストスクリプトや、ツール操作を伴います。これは開発チームやテストチーム、SREチームなどが主に使うものになります。しかし、品質向上についての活動を特定のチームだけに任せるのは危険です。
役割を分担して開発を行うこと自体は問題ありませんが、一部のチームにテストを完全に任せてしまうと、他のチームは品質に対してあまり気を配らなくなります。そうならないように、ツールの使い方を含め、テストの意義やプロダクト品質に対して社内教育を行いましょう。
検証しやすい設計やテストは、個人やチームのスキルアップにもつながります。逆に検証しづらい設計やコードは不具合を内包しやすく、テスト自動化の効果を下げる要因になるでしょう。
テスト自動化を導入しやすくするための具体的な対策
では、テスト自動化の導入アプローチを具体的にどのように実行していくかを考えてみましょう。
1. 初期投資を抑えたツール活用
初期投資が大きくなると、経営層としても導入に対して及び腰になってしまうでしょう。そのため、初期投資を抑えたツールを使って、テスト自動化の効果を実感しやすい部分から導入してみましょう。
この時点では本格導入という訳ではなく、あくまでもテスト導入として考えるべきです。テスト自動化の効果を実感しやすい部分から導入することで、経営層にも導入の効果をアピールしやすくなります。
2. 小規模プロジェクトでのパイロット導入
テスト自動化を導入しやすくするために、小規模なプロジェクトでパイロット導入を行いましょう。できることならば既存のプロジェクトよりも、新規プロジェクトが良いでしょう。新規プロジェクトであれば、テスト自動化の導入がスムーズに進みます。
パイロット導入では、テスト自動化の効果を測定できるような仕組みが必要です。対比できる既存プロジェクトの品質を測定しておくなど、テスト自動化の導入前後での品質変化を可視化する仕組みを用意しましょう。
3. 外部リソースや専門家の活用
テスト自動化を導入するにあたって、外部リソースの協力を仰ぐのも一つの選択肢になります。外部リソースを使うことで、導入スピードの向上と、一定の正解の型を提供してもらえます。試行錯誤しながらの導入も良いですが、時間の短縮になるでしょう。
また、外部リソースを導入することで、さまざまな課題に対する回答も得やすくなります。テスト自動化導入に対する課題は多くの企業が抱えており、それらを解決した知見は自分たちのプロジェクトに対しても有効でしょう。
まとめ
本記事では、テスト自動化の導入障壁を下げるためのアプローチと題しまして、テスト自動化のハードルが高いと感じる要因やそのハードルを下げるためのアプローチ、テスト自動化を導入しやすくするための具体的な対策について解説いたしました。。
テスト自動化の導入に対して壁を感じている、二の足を踏んでしまっているという方はぜひ、我々にご相談ください。
当サイトでは、テスト技法を学びたい方、アジャイル開発やマイグレーションのテスト手法について知りたい方、テストアウトソーシングサービスに興味のある方へ、ダウンロード資料を多数ご用意しております。ぜひダウンロードいただき、資料をご活用ください。

