私は、私のチームができるだけ手作業によるテストから離れたいと思っています。その一環として、約1000個の手動テストケースを自動化したいと考えています。これらのテストの中には、デベロッパーの所有者をもらっていないレガシー機能用のものがあります。デベロッパーチームには、これらのテストが何をするのか、そしてそれらが必要なのかを理解している人はいません。これらのテストの多くはバグを見つけられませんが、リリースエンジニアはQAチームがこれらのテストを実行することを期待しています。
私は盲目的に1000回のテストを自動化するのが正しいとは思わない。
devsもこの問題を解決するためにどのように従事する?助言がありますか?
多くの考慮事項があります。
「x個のテストケース」は「x個の自動化ケース」を意味するとは考えないでください。自動化ほど魅力的ですが、効果的、信頼性の高い、タイムリーな対応が非常に限られています。いくつかの事はそれがより良いことができるようになり、他はうまくいくことはありません。人間は「断続的な失敗」
– あるいは少なくとも同じ種類ではない – )がないため、別のアプローチが必要です。
以下は、考慮すべき点のいくつかです。
-
自動化されたUIテストとバックエンドのUnitテストとIntegratedテストを数秒で実行します。
-
UIを使用してさまざまなデータの組み合わせをテストしないでください
-
コードが変更されると、UIとバックエンドの両方のレベルでSmokeテストを数秒で行うことができます。
-
さまざまなシナリオをカバーする、幸せ、悲しみ、およびオプションのテストがあります。
-
UIテストは不安定です。誰もが時間の経過とともにこれを発見します。非同期デバイス(ブラウザ、モバイルデバイスなど)は制御しません。それらの非同期性は通常、時間の経過とともに失敗につながります。
-
理解していないケースをレビューグループが審査するように依頼します。経営陣は、これを行うために(高いレベルで)時間が割り当てられていることを確認する必要があります。タスクがあまりにも圧倒的だと思われる場合は、週に10回取り組むようにしてください。
-
最近実際に起こったバグを調べ、実際のバリューを追加するテストに焦点を当てるだけでなく、
-
アプリケーションエンジニア、オートメーションエンジニア、リリースエンジニアが集まり、自分のサイロにとどまるのではなく、分かりやすい意見を共有していることを確認します。
毎日、毎週、どのように進むかについて考えてみてください。明らかに、新しいアプローチに対応するために開発プロセスを変更する必要があります。これは今すぐ開始し、最初に「クリーンアップ」が完了するのを待つ必要はありません。新しい機能や変更された機能について、あらゆるレベルで適切なテストを作成する方法を解説します。そうしないと、一時的な自動テストのサンドキャッスルから受け取ったメリットが返され、洗い流されます。
また、いくつかの本を買う、例えば:
-
Agile Testing by Lisa Crispin and Janet
Gregory (my ‘bible’) - BDD and TDD (various books)
- Humans vs. Computers: https://leanpub.com/humansvscomputers