「成功する自動化導入」の連載では、ソフトウェアテストの自動化を導入するためのポイントを紹介してきました。
第1回では、自動化導入の基盤となる「導入前にやっておきたいチェックポイント」と題して、テストを自動化する前に事前にやっておくべき4つのポイントを解説しました。
第2回では、自動化には欠かせない「ツールの選び方」を解説しました。
- 第1回:「成功する自動化導入」のコツ 導入前にやっておきたいチェックポイント
- 第2回:テスト自動化には欠かせない、選ぶべきツールのチェックポイントとは?
- 第3回:テスト自動化の成功とは? 効果を測る「フィージビリティスタディ」実施のススメ
- 第4回:費用対効果を上げるための戦略(作成中)
今回、第3回では、ソフトウェアテスト自動化のフィジビリティスタディ(実現可能性の調査)について解説します。
もくじ
- テスト自動化の成功とは?
- フィージビリティスタディとは?
- 手順1. 既存のテストプロセスに対して、自動化が適しているかを量的数値で採点する
- 手順2.「自動化が適していそうなテストケース」を選定する
- 手順3.「自動化が適していそうなテストケース」を実際に実装してみる
- 手順4. 自動化の効果を評価する
- まとめ
テスト自動化の成功とは?
すでにこれまでの記事を読まれた皆さんは、自動化導入のノウハウを理解いただいたと同時に、初期に費用も工数も大幅にかかりそうと感じられた方が多いのではと思っています。実際、テストの自動化導入における失敗事例は確実に存在しますが、どのような結果が成功と言えるでしょうか。
私は、満足できる費用対効果を得られたら、 " 成功 " だと考えています。ただし、結果が出るまでには、多少のまとまった期間が必要です。つまり、自動化が成功するか失敗するか、ある程度の時間とコストをかけないと分からないことがあるのです。
仮に、近い未来に費用対効果が向上するとの確証を得られていれば、確固たる信念のもとで継続できるでしょう。しかし、見切り発車で自動化導入をすすめ、本当に実現できるのかわからず、途中で挫折してしまい、費用だけでなく時間も無駄にしてしまったというような、とても残念な経験をお聞きすることがあります。
そこで今回は、遠回りをしないための策として、費用対効果を最大限に得られるか否かの実現可能性を調査する際のポイントをご紹介いたします。
フィージビリティスタディとは?
皆さんは、 フィージビリティ という言葉をご存じでしょうか? フィージビリティ とは、いわゆる「実行・実現の可能性」を指します。
また、フィージビリティスタディ とは、「プロジェクトの実現可能性がどの程度かを事前に調査すること」を指します。
テストの自動化を成功させるためには、前項で解説したとおり、多少なりともコストがかかります。たとえば、有償の自動化ツールを購入する場合には、初期投資として購入料、次年度より年度別に更新料がかかります。
また、ツールの有償/無償に限らず、開発工数等の別途コストが必ずかかります。自動化実装は、手動テストに比べて3~4倍の工数がかかると言われており、メンテナンス工数もかかります。
時間とコストをかけたのに、結果的に費用対効果が得られなくてせっかくの投資が無駄になってしまうこともあり得ます。また、ソフトウェアテストの自動化によって効果が得られる可能性があるのに、失敗した時のことを考えて導入になかなか踏み切れず、機会損失してしまうことも考えられます。
そこで、対象のシステム製品が自動化にどの程度向いているか、テスト自動化の効果がどの程度得られるか、フィージビリティスタディにより定量的数値で把握してから、テスト自動化を本式に推進することをお勧めしています。
フィージビリティスタディの主な手順
- 手順1. 既存のテストプロセスに対して、自動化が適しているかを量的数値で採点する
- 手順2.「自動化が適していそうなテストケース」を選定する
- 手順3.「自動化が適していそうなテストケース」を実際に実装してみる
- 手順4. 自動化の効果を評価する
ぜひ、皆さんもテスト自動化を成功へと導く近道として、 「テストの自動化に対するフィージビリティスタディ」を実施してみてください。
テスト自動化環境を1ヵ月で構築し、効果検証する「フィージビリティスタディ」
テスト自動化に踏み切りたいが、導入コストに対して成果が出るのか確信を持てない。自動化したスクリプトをメンテナンスできないなど、テストの自動化プロジェクトの懸念はありませんか。「フィージビリティスタディ」では、実際に自動テスト環境を構築し、効果・プロジェクトに対する自動化適正を評価・検証するフィージビリティスタディ(効果検証)で、自動化の効果を見える化します。
手順1. 既存のテストプロセスに対して、自動化が適しているかを量的数値で採点する
「テストの自動化に対するフィージビリティスタディ」として、主なチェック項目をご紹介いたします。
第1回「導入前にやっておきたいチェックポイント」、第2回「ツールの選び方」 の記事も参考になるはずです。
仕様の明確さ ( 資料の有無・更新の必要性 )
自動テストに限らず、手動テストでも必要ですが・・・。機能仕様書は作成されていますか?その仕様書は、リアルタイムにその都度更新されていますか?
当たり前ですが、テストの自動化は定義したことしかできません。仕様が不明確のテストケースは作成できません。あくまで把握できた仕様しかテスト対象にできないのです。
だからと言って、仕様理解した一人だけでテスト自動化を進めるのは、とても困難です。大きなシステムともなれば、数名または数十人で自動化にあたる場合があります。その際、複数人で仕様を理解するためには、仕様レビューを行うための資料が必要不可欠であり、認識のズレを最小限にとどめるための必須アイテムは機能仕様書といえます。
代わりのものとして、手動テストのテストケースから拾うことも可能ですが、テストケースが膨大過ぎるため、簡潔にまとめられた資料を別途準備する方が更新しやすく管理しやすいです。
ドキュメント作成そしてその更新作業は、地味な作業だと思いますがとても重要視しています。そのため、開発者と検証者が異なる場合には、機能仕様書を作成されることをお勧めいたします。
もし、ドキュメントに組織基盤に問題がある場合には、どのような資料なら作成できそうか、どのような組織体制にしたら資料の更新がスムーズになるかを検討してみてください。
仕様書にはざっくりしたものから詳細にまとめられているものまで、さまざまなレベルがありますが、数か月前、数年前から更新されていない資料では使えない場合が多いです。資料は生ものであり、更新しなければ腐ってしまうということを理解してください。作成したら終わりといった代物ではなく、日々更新し、育て上げ、そして最新であることを維持していくものです。
ですから、このチェック項目では、資料の有無だけではなく、その資料が更新されているか確認してみましょう。
このチェック項目で問題を感じた場合には、自動化導入をよい機会とし、自社の体制にとって可能な資料作成とはどういった手段か、どこまでなら仕様の整理ができるかを前向きに検討してみてはいかがでしょうか。
仕様の複雑度( テストケースの有効性 )
GUI上の操作だけで完結できるテストケースと、DBやファイルなどの外部的要因が関与する割合を比較してみましょう。
GUI上の操作だけで完結できるテストケースとは、GUI上のオブジェクトから実行結果としてOKかNGかを判別できるテストケースを指します。このようなテストケースであれば、GUI上の操作を容易に記録することできる他、操作の再現性も高いです。そのため、高い開発スキルを必要とせず、比較的容易に自動化の実装が可能で、費用対効果を向上させやすいです。システムの特性やツールの機能にも依存しますが、目安として7割以上がGUI操作で完結できる場合、自動化に向いていると判断できます。
このチェック項目では、スクリプトを使用せずに自動化できるテストケース割合を算出しましょう。
オブジェクト識別可能なIDの有無( メンテナンスコスト軽減率 )
オブジェクトとは、ラベル・テキストボックス・チェックボックス・ボタンなどを指します。これらオブジェクトを正確に識別できない場合、同じ操作をしても同じ結果とならず、メンテナンス工数も嵩みます。有償ツールは認識できる確率が高いですが、機能の追加や修正によってオブジェクトの順序が変わってしまった場合には、識別エラーが生じる場合があります。正しく識別できなくなってしまうというリスクは、回避しておくべきでしょう。
このチェック項目では、すべてのオブジェクトに対して、識別可能な唯一無二の他と被らないIDが付与されていることを確認しましょう。
識別可能な唯一無二の他と被らないIDが付与されていることで、オブジェクトの識別レベルが格段に向上します。
この指標はメンテナンスコストの低減率にもつながるため、もしオブジェクトIDが被っている場合にはオブジェクトIDの振り直しをご検討ください。
製品のリリース頻度 / テストの実行頻度( コスト削減率 )
よい費用対効果を得るためには、実装した同じスクリプトを何度も何度も繰り返し実行できるかが、大きなポイントの1つです。
例えば、数年に1回しかリリースしないような製品は自動化による費用対効果は得にくいため、自動化に適さない製品と言えます。
年に数回のリリースがあり、何度もテストを実行する可能性がある製品を大前提として選定してみましょう。
手順2. 「自動化が適していそうなテストケース」を選定する
手順1.を実施し、自動化に適しているという評価が得られたら、次は自動化に適したテストケースを選びましょう。
仕様変更の少ないテストケースを選ぶ( 改修リスクの削減 )
まず、選定対象としたいのは基本機能です。操作マニュアルに記載されているような主に使われる機能です。その中で、仕様変更が少ないであろう機能を選択します。
簡単に実装できそうなテストケースを選ぶ( 実装工数の削減 )
手順1の「仕様の複雑度( テストケースの有効性 )」の結果を考慮して、GUI操作のみで完結できそうなテストケースを優先的に自動化対象とされることをお勧めします。例えば、データ登録に時間を要する場合、条件によって結果が多々異なる場合等は自動化に向いていないため、自動化すべきではないです。
初期は工数が嵩みます。初期段階から躓くことがないように、実装が困難であろうテストケースは後回しにしましょう。
手順3. 「自動化が適していそうなテストケース」を実際に実装してみる
手順1~2.を実施したら、次は実際に自動化に適したテストケースを実装してみましょう。実装範囲を絞り、実装してみてください。
実際にいくつかのスクリプトを実装してみる( ツールの有効性 )
時間を要する作業だとは思いますが、とても重要視しています。第2回の「ツール選定の基準」でもお伝えしたとおり、実際に使ってみないことには実装のしやすさ、大変さ、チューニングの必要度、再実行の確実性を判別できないからです。
特に基本的機能は必ず実装してみることを推奨します。
実装しやすいテストケースを見極める( 工数見積もりの指針 )
「簡単に実装できそうなテストケース」が本当に簡単に実装できるのか、根拠を得てください。実際に実装してみると、案外実装できなかったりするからです。
実装してみることで初めて、「簡単に実装できそうなテストケース」の選定基準が明らかになる場合があります。
実装した結果(使用した工数、苦戦度合など)を定量的に比較していきましょう。
画像比較はできる限り使わない( 改修工数の削減 )
過去にWindowsアップデートによりフォントが微妙に変わったことがありました。
OSが変わると、OSのバージョンが変わると、日々の些細なOSのアップデートによっても、GUIが変わる場合があります。また、機種により、画像解像度によっても、GUIが変わる場合があります。GUIに差異が生じる要因は数多く存在するため、些細な変化によるNGの多発につながる可能性があります。これら要因ごとにすべてのキャプチャー画像を用意しておくことはとても困難であり、現実的ではありません。
自動化ツールの中にはピクセル単位または%の指定により合致度合を微調整できるツールもありますが、合致度合を低くした場合にはNGの見落としにつながる可能性があります。安易な画像比較の使用は画像の取り直し作業を増やし、後々メンテナンスに苦しむ可能性がありますので、画像比較を使用する場合にはリスクを十分に考慮した上での使用をご検討ください。
以上を踏まえ、画像比較でしか実装できない場合を除き、極力使用しないことをお勧めしています。
手順4. 自動化の効果を評価する
実際に自動化に適したテストケースを実装してみた結果、正誤の判定が可能であること、数回実行しても結果が正確であること等、自動化による効果を念入りに評価します。
エラー箇所の特定( 改修しやすさ )
実装直後、エラーは必ず起きます。エラーログを参照して、エラー箇所の特定がしやすいか否か、修正しやすいか否かも判断基準にしてください。実際にこの作業のしやすさが工数削減に大きく影響します。
実際にいくつかの環境で実行してみる( 対象システムの自動化適合性 )
実装した環境と実行する環境が異なる場合、想定した通りに動作せず、想定した結果が得られないことがあります。有償ツールであれば、微調整の機能が備わっていることが多いですがチューニングしても解決しない場合があるためです。
何度も実行してみる(ツールの正確性 )
毎回同じ結果になることを確認してください。条件が足らない場合、定義が甘かった場合等、時に同じ結果とならない場合があります。数回実行しても結果が正確であることはとても重要です。
以上が、テストの自動化導入を成功へ導くための「テストの自動化に対するフィージビリティスタディ」の秘訣です。
おわりに
テストの自動化を導入して、すぐに効果を得られる部分もあるでしょう。しかしながら、満足できる費用対効果をえるためには時間を要します。
そのため、根拠を得るためにも、「フィージビリティスタディ」をお勧めします。導入前に「フィージビリティスタディ」を行うことで 「自動化導入に対する課題」 と 「自動化導入で得られる効果」 を十分に理解し、正しい導入目的を定め、自動化に適した導入基盤を整えてください。
フィージビリティスタディを実施すれば、テストの自動化にどの程度向いているのか、課題・問題点にどう対応したらよいのか、明確になり、導入の判断を的確に下すことができます。
「導入前に、もっと調査しておけば良かった・・」と後悔しないために、「テストの自動化に対するフィージビリティスタディ」を実施して、テストの自動化を成功へと導きましょう。
今回は、失敗できない人のための「フィージビリティスタディ」について解説しました。
次回は、テストの自動化導入に対する「戦略の必要性」について解説したいと思います。
テスト自動化環境を1ヵ月で構築し、効果検証する「フィージビリティスタディ」
テスト自動化に踏み切りたいが、導入コストに対して成果が出るのか確信を持てない。自動化したスクリプトをメンテナンスできないなど、テストの自動化プロジェクトの懸念はありませんか。「フィージビリティスタディ」では、実際に自動テスト環境を構築し、効果・プロジェクトに対する自動化適正を評価・検証するフィージビリティスタディ(効果検証)で、自動化の効果を見える化します。