テスト自動化は、ソフトウェアテストを行う工程において必要不可欠になっています。しかし、自動化をはかるうえで、どのようなタイミングで導入したら良いのか悩むこともあるでしょう。このページでは、テスト自動化を導入するうえで適したタイミングや整理したいポイント、流れなどを分かりやすく紹介します。
テスト自動化の導入を検討するタイミングとして、開発の後半時期にバグが発見されたときがあるでしょう。前半で発見されるバグであれば容易に修正できますが、後半であれば修正するための作業も複雑になり、より時間もかかってしまうでしょう。しかし、テスト自動化を導入していれば、早いタイミングでバグを検出しやすくなり、単体テスト・総合テストを実施することで、既存の機能に対する影響がないかどうかを確認することも可能です。
アプリが複雑になればなるほど、テストの作業負担は大きくなってしまうでしょう。IoTでは、接続している複数のデバイスの間でリアルタイムにデータが行き来しており、手動でアプリのテストを行えば多くの工数・時間がかかります。自動テストを導入することによって、工数を大幅に減らすことができ、テストにかかる時間短縮にもつながるでしょう。よりスムーズな作業となり、スタッフの業務負担軽減といったメリットも期待できます。
ユーザーが使っているデバイス・オペレーティングシステム・WEBプラウザはさまざまな種類があり、その環境の組み合わせをひとつひとつテストしなければなりません。すべて手動で行うことは莫大な時間を要し、現実的ではないでしょう。テストツールを活用すれば、複数のテストを同時に実行でき、アプリに関するスピーディなフィードバックも可能です。ROIは手動で実行するときよりも、テストツールを用いた方が高くなるでしょう。
自動化テストをCI/CDパイプラインとシームレスに統合する必要もあるでしょう。既存の機能に新しい機能が影響をきたしていないかチェックするために、すべてのコードテストを実行しなければなりません。さらに、アプリのエンドツーエンドフローが想定通りに機能するかどうかチェックするために、回帰テストを定期的なタイミングで行う必要もあります。そう言った点も踏まえれば、テスト自動化ツールを導入するタイミングと言えるでしょう。
テスト自動化を導入すれば、すぐに業務負担がはかられ、楽になるわけではありません。導入した時期であれば、手動テストよりも倍以上の工数がかかってしまい、環境要因によるエラーも多発する可能性があります。また、メンテナンスにかかる工数も発生するなど、リスクもあることを認識しておきましょう。
まずは自動化を図る目的を明確にし、目的に合っていない工数が生まれないように注意してください。また、自動化する範囲・機能・テストケースの目標も設定しましょう。関係者全員でリスクへの対策や目標設定などを行うことが大切です。
テスト自動化を導入するにあたって、関係者間で認識を共有させることも重要になってきます。もし目標などの共有ができておらず、スタッフ間で全く異なる認識を持っていれば、企業としての将来的なビジョンもあいまいになりかねません。目標は具体的に設定し、中間目標も設定しましょう。そうすることで目標を達成できる可能性も高まっていきます。目標を設定するためには、目的を明確にすることも大切。テスト自動化によって達成したい目的・効果を整理し、スタッフ間で共通認識を持つようにしてください。
上記のような認識を持つことが大切です。仕様変更は製品のリニューアルや不具合などの解消といった欠かせない作業のひとつと言えるでしょう。しかし、テスト自動化を担当するスタッフにとっては、工数がかかりやすい要因となる作業です。もし仕様変更が多くある機能を自動化の対象とすれば、メンテナンスのたびに倍以上の工数がかかってしまうでしょう。そのため、仕様変更が多くある製品に対しては、自動化することは難しいと言えます。
複数人で自動化ツールを用いる場合もあるでしょう。そんな時でも自動化ツールや開発言語を一つに絞ることが大切です。また、開発規則の統一化もはかってください。ツールが変更となれば開発言語も変わってしまい、共通のスクリプトも活用できなくなってしまいます。統一することにより、ノウハウをしっかりと蓄積しやすくなるといったメリットも。ただし、一つに絞ることによるリスクもあるので注意が必要です。たとえば使い勝手の悪いツールであるにもかかわらず、一つに絞ったことで、他のツールが試せないケースが考えられます。まずは、自社に合ったツールを選定するために、十分に検討したうえで導入をはかりましょう。
自動化ツールに関するノウハウを共有するためにナレッジベースにまとめる、勉強会を開催することなども大切になってきます。自動化ツールの使い方や設定方法などを実装に携わるメンバー同士で共有してください。
テスト自動化を導入するにあたって、まずは計画を立てることから始まります。誰がテスト自動化の推進役・変革の請負人・組織上層部の支援者になるのか検討しましょう。小さな規模の会社であれば、同一人物が複数の役割を担うケースもあります。つぎに道具やツールを選定していき、効果を試算してください。たとえばテスト自動化を導入するにあたって、一時的に生産性は下がりやすくなるため、どこで巻き返せるのかなどを事前に考えておくことが大切です。
テスト自動化を行うためには金銭的コストだけでなく、時間的コストも発生するでしょう。そのため、事前に試しておくことで既存のプロセスへの影響も判断しやすくなり、その結果も評価しやすくなります。費用対効果が高ければテスト自動化のメリットは大きいと言えますが、効果が感じにくい場合は、本当に適切なプロジェクトだったのかを再度評価しなおしてください。そのうえでテスト自動化を見送るかどうか検討しましょう。
テスト自動化を導入する際、つい技術面に着目しがちです。しかし、実際はスタッフの業務方法を変えるシステムなので、スタッフへの配慮・管理も重要になってきます。まずは、開発者やテスト担当のスタッフにテスト自動化導入を伝え、認めてもらわなければなりません。テスト自動化の意義・目的なども分かりやすく伝えることで、支持も得やすくなるでしょう。また支援する・見守る必要もあり、導入後もフィードバックを行いながら計画の変更を行ってください。
テスト自動化は非常に魅力的なシステムと思いがちです。もちろん導入することで、大きなメリットをもたらしてくれるでしょう。しかし、リスクやデメリットなども十分に把握しないまま、何も考えずに導入してしまえば後悔することも。しっかりとテスト自動化へのリスクを把握し、その対策を準備したうえで導入を検討してみてください。
商品名 | Ranorex (ラノレックス) |
Autify (オーティファイ) |
---|---|---|
商品タイプ | パッケージ型
膨大なテスト工数を |
SaaS型
初期費用を抑えて |
対応テスト |
|
|
実行回数 の制限 |
制限なし |
制限あり
400回/1000回/任意 ※プランにより異なる |
日本語サポート | 導入後のセミナーが充実! | ヘルプサイトが充実! |
体験版 | 14日間 | 14日間 |
※Googleで「テスト自動化ツール」と検索し上位表示されたパッケージ型、SaaS型のテスト自動化ツール21種類の中から、(1)クロスデバイス、マルチブラウザに対応し、(2)日本語のサポートがあり、(3)ノンプログラミングでシナリオ作成が可能なツールをピックアップ(2021年11月1日調査時点)。パッケージ型、SaaS型それぞれの代表商品を選出しました。
【代表商品の選出基準】
☆パッケージ型:上記の条件の通り。
☆SaaS型:上記の条件に加え、公式サイト上に導入事例がもっとも多かったツールを選出。