既存のプロジェクトに自動テストを導入することは、複雑で多層的な課題です。
問題の歴史: 手動でのテストが長期間行われている組織では、プロセス、ドキュメント、コードのアーキテクチャが自動化の要件に必ずしも合致しません。テスターは自動化ツールに対する経験がなく、テストとアプリケーション自体のアーキテクチャは、自動テストの迅速な実行をサポートしていない場合があります。
問題: 導入の主な課題は以下の通りです:
解決策: チームは以下の段階を経なければなりません:
キーとなる特徴:
自動テストが手動テストを完全に置き換えることができますか?
いいえ。高いカバレッジがあっても、自動テストは繰り返し可能で決定的なシナリオにのみ適用されます。ユーザビリティのバグ、探索的テスト、デザイン上の欠陥、典型的でない"人間の"バグは通常手動で発見されます。
すべてのテストケースを無条件に自動化する必要がありますか?
いいえ。すべてのテストケースを自動化することは正当化されません:低頻度または複雑なシナリオは、高コストと低いリターンのため手動テストのままにしておく方が良いです。
テスターは自動化を成功させるためにプログラマーである必要がありますか?
いいえ、しかし基本的なプログラミングレベルが望ましいです。チームは通常、経験豊富なテスターと自動テストのアーキテクチャ、そして自動化の開発者によって構成されます。
会社はすべての手動テストを同時に自動化することを決定し、別のチームを作らず優先順位を話し合いませんでした。流行のツールを購入しましたが、必要なブラウザの一部をサポートしていませんでした。結果的に、四半期後には半分のテストが機能しなくなりました。
利点:
欠点:
チームは手動で最も頻繁に行われる10の回帰シナリオを選びました。Python(Selenium)で自動化のトレーニングを行い、CIにテストを追加しました。半年後、70%の回帰チェックが自動的に実行され、手動テスターはクリエイティブな作業を行いました。
利点:
欠点: