最近、私は、それがもたらすものと比較してかなり費用がかかるので、受け入れテストの利点についてのいくつかの疑問についてのいくつかの記事を読みました。私自身の意見を述べるために、自動検収試験のメリットを可能な限り集めたいと思います。手伝って頂けますか?
3 に答える
一般に、自動テストは、製品の寿命の間自動テストを設定および維持するための総投資額が、製品の寿命の間必要なときに手動テストを実行するための総投資額よりも少ないという条件の下で意味があります。
したがって、自動テストは、手動で実行するよりもテストを作成する方が非常に安価である場合(たとえば、基本的にスプレッドシートを作成するフィットテスト)、またはテストの実行回数が十分に多い場合に、より魅力的になります。コスト差を相殺します。
ユニットテストは、実行回数が十分に多いため、うまく機能します。小さな変更やリファクタリングを行うたびに、新しい障害が発生しないことを確認する必要があります。
繰り返し実行される可能性はプロジェクトごとに大幅に変化し、ビジネスニーズは長期的なサポートとメンテナンスの問題に影響を与えるため、検収試験はより困難です。
プロジェクトが受け入れテストに合格し、それ以上のサポートや変更がない場合、自動受け入れテストは、自動テストを作成するのが非常に安価でない限り、意味をなさない可能性があります。
一方、将来のリリース(同じ顧客であっても)または長期サポート契約が予想される場合は、初期投資が時間の経過とともに価値になる可能性があります。
当社は、さまざまな顧客向けの取引システムとアルゴリズムを作成しており、古いものの上に新しい機能と製品が構築されています。すべてのテストを手動で実行するコストは非常に高いため、以前は手動でテストされた多くのシナリオに自動受け入れテストを追加することに取り組んでいます。
ファローアップ:
私見では、最初に非常に明確で完全な段階的なテスト計画を立てることが重要です(ここでは優れたQA担当者またはチームが重要です)。検収試験の場合、顧客が独自に提供するか、QAが顧客に提供する必要があります。テストプランは契約の一部であることが多いと思います。
それができたら、人間がそれを実行するのにかかる時間を見積もるのは簡単です(そして、人間で実験して調べることができます)。どのステップが「うんざりする作業」を必要とし、どのステップが実際の人間の入力または裁量を必要とするかに注意を払うことが重要です。
これは重要な違いです。たとえば、描画プログラムを作成しているとします。特定の座標で線を引くように人間に指示すると、これを簡単に自動化できます。ただし、「形が花であることを確認する」というステップの場合、人間は簡単にそれを行うことができますが、自動化することはほとんど不可能です。多くのテストケースは半自動化できます。ユーザー入力用の「フック」を残し、テスターにこれらに焦点を合わせさせます。ボタンが一連の操作を開始し、ユーザーに「正しい出力が出ましたか?」と表示されます。
私の経験では、自動化のコストはかなり直感的です。ただし、多くの場合、既存のプログラムを変更して、テストしやすくする必要があります。たとえば、上記の例で、キャンバスに線を追加できるAPIがある場合、物事は素晴らしいものになります。論理座標を画面などに変換するマウスロボットを作成する必要がある場合は、はるかに長くなります。
検収試験を自動化することの利点は何ですか?
私は一人の店であることが多いので、私の観点からすると、主な利点は、私の代わりに機械にそれを行わせることです。
自動受け入れテストを作成すると、大きなメリットを得ることができます。特に、次のようになります。
- 安定していることが証明されている製品に対する顧客の信頼を向上させる
- メンテナンスコストの削減
- 変化のリスクと恐れを減らす
- システムへのより迅速でより安価な変更を可能にする
あなたは今アプリケーションに100%精通しているかもしれませんが、数ヶ月または数年の間それを置いてみて、変更を加えるためにそれに戻ってください。私を信じてください、あなたの新しい変更が何も壊れていないことを証明するために一連のテストを実行することができることははるかに簡単です。
最後に、コードを書く前に、テスト駆動開発の方法で受け入れテストを書くことを検討してください。これにより、コードが改善されるだけでなく、終了時にテストスイートを完全にカバーできるようになります。
コストについて自分をからかってはいけません。はい、自動化された検収試験スイートを作成して維持するには、時間、コミットメント、エネルギーが必要です。しかし、これは、テストがなく、何かを変更した場合に何が起こり、どのようなノックオン効果が得られるかわからない代替案よりも安価です。あなたの顧客の自信はどのくらいの価値がありますか?出荷後にバグを修正するための実際のコストはいくらですか?