Facebook x

ジャンル

第4回 「成功するテスト自動化導入」のコツ
「成功するテスト自動化導入」のコツ 2024.04.17
x hatenabookmark

「成功するテスト自動化導入」のコツ④ ~費用対効果を上げるための戦略~

執筆: 宮北 裕子

バルテス株式会社 Web・IoT品質サービス事業部 マネージャー

「成功するテスト自動化導入」のコツ④ ~費用対効果を上げるための戦略~

昨今、テストの自動化に着手される方は大いに増えています。しかし、導入したは良いものの、運用の費用や工数が想定以上に大幅にかかってしまい「こんなはずではなかった」と感じられている方が多いようです。

では、なぜ自動化により期待した費用対効果を得られず、また工数も大幅にかかる悪循環が生まれてしまうのでしょうか。

その理由として考えられるのが、「テストの自動化に対するメリットにのみ着目して自動化導入を押し進めてしまった」ということです。違うと否定される方もいらっしゃるかもしれませんが、自動化導入後の良いイメージが先行し、リスクへの対応策が十分に練られていなかったことが要因となっているのではないでしょうか。

本記事では、費用対効果を上げるための戦略について解説していきます。

連載一覧
もくじ
  1. テスト自動化のマイナス要素を理解した上で戦略を立てよう
  2. 期待以上の費用対効果を得るための5つの戦略
  3. まとめ

1.テスト自動化のマイナス要素を理解した上で戦略を立てよう

皆さんは、自動化の成功と失敗をどのように判断されますか?私が考える自動化導入の成功とは、結果的に満足できる費用対効果を得られることであり、逆に失敗とは、工数に見合う費用対効果が得られないことだと考えます。

テストの自動化にはさまざまなメリットがありますが、一方で、コストもある程度必要になります。このコストを想定しておかないと、せっかくテスト自動化を導入しても、思ったよりも効果が得られないという結果になってしまいます。

テスト自動化にかかるコストを理解し、予算を立て、どうやって費用対効果を得るのか具体的に計画することが大切です。

この章では、事前に準備しておくべき戦略・計画・目標について解説していきます。

初期コストがかかるので導入前に「十分な戦略を立てる」

自動化による費用対効果は実施回数に比例するため、初期段階では効果を感じられないことが多いです。そのため、戦略を立てないまま、自動化を押し進めることは無謀と言えるでしょう。テスト自動化を導入する際にかかる初期コストは想像以上に高額となることがあるため、自動化を適用することが本当に妥当か否かをきちんと判定すべきです。

まず、自動化にかかるコストについて整理してみましょう(図1)。大きく分けて、2種類に分類することができます。

220301-img1.png

図1 : テストの自動化を導入する際にかかる初期コスト

無償の自動化ツールを導入するという選択肢もありますが、有償ツールに比べると機能が少ないために、開発工数がかさむ傾向があります。いずれを選択されても初期費用はかかるわけですから、これら費用や開発工数の予算を立てることは必要不可欠であり、上層部に対しコストリスクを共有することは必要な工程です。

コストだけがかかり、メリットを得られないまま導入中断となってしまわないために、あとで後悔しないために、導入前に十分な協議を行い、費用対効果を得られるように綿密な戦略を立てましょう。

手動テストより手間がかかる作業が多いので「慎重に計画する」

自動化には夢があります。しかし、戦略を立てずに押し進めると失敗してしまいます。

自動テストは、手動テストよりも作業フェーズが多く、工数が嵩む傾向にあります(図2)。手動テストに比べ、導入コストがかかります。それにもかかわらず、一般的に、テストの自動化導入後の良いイメージばかりが先行して、テストの自動化導入に対する作業工程がイメージできていないケースが多いように感じます。

単純に工数が増えると言われてもイメージしにくいでしょうから、作業の差異を比較してみましょう。

220301-img2.png

図2 : 手動テストと自動テストの作業差異

図2にまとめた通り、作業フェーズは、手動テストよりも自動テストの方が多いことが分かります。

自動テストは細かな定義が必要です。一方で、定義したことしかできず、手動テストよりもより多くの手間がかかります。例えば、テスト設計を比較した場合、自動化用のテストケースの方がより詳細に手順や結果を記載する必要があります。手動テストであれば、「任意な値を入力」と曖昧な定義が許されますが、自動テストでは入力する値1つ1つを細かく定義する必要があります。

手動テストであれば、実施者が目視で確認しながら操作を行うことができ、一度で意図した操作を行えますが、自動テストではちょっとしたタイミングによって操作にズレが生じ、意図しない操作となりNGとなることがあります。

そのような場合、待機時間を追加したり、画面遷移やデータ表示を待つようにしたりするなどのチューニングが必要です。デバックやチューニングの効果が正しいことを確認するためには、何度も繰り返し実行して同じ操作となることを確認(再実行)する必要があります。

このように、一般的にテスト自動化の導入・そして運用には、手動テスト以上の工数がかかります。したがって、自動化することで費用対効果を十分に得られるようにするには、さまざまな事前検討や準備が重要になります。

テスト自動化が目的になってしまうと無謀な計画となってしまう可能性があります。

テスト自動化は目的ではなく、あくまで手段です。テスト自動化による効果が得られるように費用対効果を考えて、1つ1つ計画しましょう。

予算を確保し費用対効果を得るための「目標を設定する」

導入当初はコストがかかるため、十分な予算を確保されることをお勧めいたしますが、これはあくまで初期投資です。

初期投資をするわけですから、その効果を得なければなりません。漠然と 「効率化したい!」「自動化するぞ!」 と定性的なモチベーション的目標を掲げるのではなく、初期段階から定量的で現実的な短期目標と長期目標をそれぞれ定めましょう。

「初期コスト」と「手動テストと自動テストの作業差異」を十分に理解し、自動化のポイントを押さえて、自動化効果が得られる期日目標を定めてください。

もし、現実とのギャップで進捗が思うようにいかず、コストばかりがかかり、良い費用対効果が得られていない場合、戦略を見直しましょう。テストケースの選び方、実装の仕方等に対する問題点を洗い出しましょう。良い費用対効果が得られる前に衰退してしまっては勿体ないですから、問題点を見つけ出し、改善して、テストの自動化のやり方を見直しながら、目標達成を目指してください。

2.期待以上の費用対効果を得るための5つの戦略

テストの自動化導入を何も考えずに推し進めてしまった場合、費用も工数もかさんでしまうことは説明したとおりです。

戦略は必要不可欠であるため、実際に私が実践した5つの戦略をご紹介いたします。

戦略①. 費用対効果を得られるテストケースから自動化していく

費用対効果を得られるテストケースから自動化するようにしましょう。

先の図2に示したとおり、作業フェーズが手動テストに比べて多いこともあるため、費用対効果を得るためには自動化に向いているテストケースか否かを見極め、自動化に向いているテストケースのみを選択して、可能な限り工数を削減させることがとても重要です。

何の対策もなく端から順々に自動化を導入してしまった場合、自動化に全く向かないコストリスクの高いテストケースに直面します。さらに多大な工数をかけたにも関わらず、それでも実装できないといった結果に陥る可能性もあります。

費用や工数だけがかかって、何のメリットも得られないといった結果は本末転倒ですから、コストリスクを考慮する必然性を感じずにはいられません。全てのテストケースを対象とできる場合も実際にありますが、自動化に適さないテストケースは一旦除外しましょう。

まずは自動化しやすいテストケース、費用対効果を得やすいケースからの着手を推奨いたします。いかに開発工数を短縮できるかがとても重要です。例えば、今後仕様変更はないであろう機能、いわゆる基本機能の中でも複雑なスクリプトを書かなくてもよい単純なテストケースから自動化を導入されることをおすすめしています。

例. ツール機能のみで自動化可能なテストケース
...実装が容易なテストケースは工数がかからないので、費用対効果が高い。

例. ユーザーが良く使う機能のテストケース
...回避テスト等、テストを実行できる回数が多いテストケースは費用対効果が高い。逆に繰り返し実行しないであろうテストケースは自動化をおすすめできません。

例. データ駆動型のテストケース
...多少実装が困難でも、自動化による費用対効果が高い。

例. テストケースのデータ作成
...テストデータを大量に作成する場合におすすめ。

戦略②. 開発言語を1つに絞る

開発言語は1つに絞りましょう。

開発言語が増えると、開発スキルが複数必須となり、人材探しにも苦労してしまいます。メンテナンスも困難になるでしょうから、おすすめできません。

社内で人材確保しやすい言語がおすすめですが、初心者の方が勉強するなら個人的にはPythonがおすすめです。開発言語を決めたのであれば、変えないほうがよいでしょう。言語を変えると、メンテナンスの負担が高まり、工数超過、人材確保が困難となる等、様々な問題がのちに多発することになり得ます。

戦略③. 開発ルールを策定する

自動化ツールの使い方をメンバー間で共有し、統一しましょう。テストスイート、テストケース、共通スクリプトに対する概念や命名基準等、ずっと同じメンバーで運用できるとは限りません。いつだれが抜けても同様の運用が可能となる体制づくりが必要不可欠です。

共有・統一化することで、誰が開発しても、自動化実装したスクリプトをメンテナンスする際に修正も容易になります。

戦略④. 共通スクリプトを活用する

頻繁に使用するスクリプトは、共通スクリプトとしてグループ内で共有してフル活用していきましょう。なぜなら開発工数を短縮できるかがとても重要になるからです。

自動化導入にはスクリプトの作成が想定よりもかかってしまうなど、工数超過の懸念があります。工数が超過した場合には費用対効果を上げにくくなります。

その対策として、共通スクリプトの作成をおすすめします。初期投資としての工数超過への懸念は消えませんが、適切に行うことができれば、大きな利益となって帰ってくることが期待できます。共通スクリプトを作成したら、実装メンバーで共有しましょう。

戦略⑤. 開発スキルを身に付けよう

自動化ツールの有償版であっても複雑な処理をさせようと思ったら、開発スキルは必要不可欠です。日々少しずつで構いません。開発スキルを身に付けることをおすすめします。

もちろん、開発経験のある方々であれば当たり前の事ですが、世の中のテスター全員が開発スキルを持っているとは限りません。

自動化ツールの有償版であれば、基本的には開発スキルがなくても導入可能であるため、開発スキルが必要と感じていない方もいらっしゃると思います。ですが、複雑な処理を実装するには開発スキルが必要です。そのため、あえて明示的に書かせていただきました。

私は前職でテスト自動化の導入を担いましたが、医療画像システムに対するテスト自動化には本当に苦労しました。実現にあたり、開発スキルが必要不可欠だったからです。前述のとおり、テスト部隊に開発のスペシャリストはいません。開発業務の経験がないに等しいメンバーばかりですから、勉強会を開催してスキル向上を目指しました。

現在は、無料で学習できる環境が多く存在します。開発スキルを身に着けるには自分でコードを書いてみるのが近道です。個人的には、PCでもモバイル端末でも学習できるオンラインプログラミング学習サービスの「Progate」をおすすめしたいです。「初心者でも、独学できるレッスン」 をコンセプトとしていますので、ぜひ一度お試しください。

まとめ

テストの自動化において、費用対効果を得るには戦略が必要不可欠です。すべてのテストケースを自動化しようとせず、まずは費用対効果を得られるテストケースのみを選択することが最大のポイントと言えます。自動化したテストケースがメンテナンスすることなく、何度も実行できれば、費用対効果が十分に得られるはずです。その可能性が十分に高いテストケースから自動化してみてください。

今回は、「費用対効果を上げるための戦略」について解説いたしました。

全4回にわたり、『テストの自動化導入を成功させるポイント』を解説しましたが、いかがだったでしょうか。

テストの自動化には夢があります。導入したいと思われている方は、まず運用基盤の課題を明確化してください。そして、より良いツールを選定して、テスト自動化導入のためのフィージビリティスタディを実施してみてください。

この記事シリーズを読んだ皆さんは、テスト自動化におけるリスクを十分に把握したと同時に、事前にとるべき対策、回避策を把握できたのではないでしょうか。

テストの自動化成功までには壁があるでしょう。しかし、壁を登った先に夢が大きく広がります。チャレンジされる皆さんが壁を乗り越え、高い費用対効果を得るとともに、バグの早期発見と発見率の向上、解決に貢献できるよう願っています。

本記事が製品に対する品質レベルの向上に少しでも貢献できたら幸いです。

連載一覧

「成功するテスト自動化導入」のコツ
x hatenabookmark

執筆: 宮北 裕子

バルテス株式会社 Web・IoT品質サービス事業部 マネージャー

医用システム開発会社にて、検証部門や品質管理部門の立ち上げや検証ルールの策定、テスト自動化の担当など多岐に渡るプロジェクトに13年間携わった後、バルテスに入社。バルテス入社後もテスト自動化に関与し、パフォーマンス検証や負荷検証を実施した実績がある。取得資格はJSTQB Advanced Level(テストアナリスト)など。JSTQB ALテスト自動化エンジニアの日本語翻訳WGメンバーでもある。