こんにちは。
今月もパワーランチ(勉強会)が開催されました。
今回のテーマは「テストの自動化(ユニットテスト除く)」についてです。画面を操作するテストについて「自動化の落としどころを費用対効果を踏まえて考える」という内容です。
スピーカーはワタクシことテストマネージャーのjunichiです。
TestCompleteというキャプチャ&リプレイツール(*1)の使い勝手が非常によかったので、今後、役立つと思い紹介しました。
それでは、勉強会の内容を紹介しましょう。
自動テストの費用対効果
みなさんは、テストをどの程度自動化してますか?
「リソースが十分にあるから自動化なんて考えたこともないよ」なんて方もいらっしゃるかも知れませんが、この世知辛い昨今、たいていはテストのリソースを捻出することもも大変なのではないでしょうか。
テスターやエンジニアとしても、毎回、同じテストをチマチマ実行していると気が滅入ってきます。やっと終わったと思っても、ちょっと変更が入ったからもう1回お願いしますとか、操作が間違ってたので最初からとか、またチマチマやるのか・・・。大変だー!って感じですよね。
数年前にキャプチャ&リプレイツールと呼ばれる自動化ツールを使い始めたのは、「リソース」「面倒くささ」このあたりをどうにかしたいと思ったのがきっかけです。
何度も苦戦しましたが、いろいろ試してみた結果、
- 何回も実施するテスト
- 作業が複雑なテスト
- 入力データが多いテスト
- 同じ操作を複数環境で行うテスト
を自動化すると費用対効果が高いことに気づきました。そして、不思議なことに「手動での実施が面倒なテスト」とも一致しています。
では「全部自動化すれば良いのでは」となるのですが、そこは自動テストの作成コストとの兼ね合いになります。個人的には、自動化して費用対効果が高くなるテストは、
手動テストの実施コスト × 繰り返し回数 > 自動化テストの作成コスト +(自動化テストの実施コスト × 繰り返し回数)
となる箇所だと思ってます。
ただし「自動化テストの作成コスト」は結構ブレる場合があります。それは作成者の技術力だったり、アプリケーションとツールの相性にも依存します。思った通りにテストが作れなくて、テストツールがまったく使われなかったりすると残念です。そうならないためにも、アプリとツールの相性を事前に調査することは重要です。
TestCompleteについて
さて、ここからはTestCompleteの話です。
先日、とあるプロジェクトでアプリケーションとツールの相性を検証していたところ、TestCompleteに出会いました。他のツールもいろいろ使っていましたが、TestCompleteの使い勝手が一番よかったのでこれを採用し、そのプロジェクトでは大活躍しています。
他のツールと比較して、TestCompleteを採用した理由は、以下の通りです。
- 安い(他に比べて)。
- サポートしているアプリケーションやユーザーコントロールが非常に多い。
- 使いやすい。
2.はサードベンダー(Infragistics社等)のコントロールもサポートしているので助かりました。3.は複雑な処理をテストするには結局コードを書く必要があるツールも多いですが、TestCompleteではかゆい所に手が届いているので、すべてGUIで作成できました。
また、テストの自動化レベルをスクリプティングレベル(*2)と言いますが、レベル5までのテストを直感的に作れる点で使い勝手が良いです。