私たちにはたくさんの開発者がいますが、QA 担当者はほんの数人です。開発者は、自動化されたテストを作成することで、開発プロセス全体を通して QA に関与するようになりましたが、QA の実践はほとんど手作業です。
私が望むのは、私たちの開発手法が BDD と TDD であり、堅牢なテスト スイートを成長させることです。問題は、このようなテスト スイートを構築する際に、テストに対して何を信頼できるか、何を手動でテストし続ける必要があるかをどのように判断できるかということです。
私たちにはたくさんの開発者がいますが、QA 担当者はほんの数人です。開発者は、自動化されたテストを作成することで、開発プロセス全体を通して QA に関与するようになりましたが、QA の実践はほとんど手作業です。
私が望むのは、私たちの開発手法が BDD と TDD であり、堅牢なテスト スイートを成長させることです。問題は、このようなテスト スイートを構築する際に、テストに対して何を信頼できるか、何を手動でテストし続ける必要があるかをどのように判断できるかということです。
最初の境界線は、手動でテストするのが実質的に簡単なものと、自動化された方法でテストするの が実質的に簡単なものは何ですか?
もちろん、それらは非常に簡単に理解でき、おそらく真ん中に大きなガックの山が残るでしょう。
私の次のふるいは次のようになります-一部のプロジェクトでは簡単になっていますが、ユーザーインターフェイスの問題は自動化された方法でテストするのが最も難しいものの1つです。ですから、しばらくの間それらをQA担当者に任せ、自動テストをバックエンドコードの小さなユニットに集中させ、アプリケーションの複数のユニットや複数の層にまたがるより大きな統合テストに徐々に拡張していきます。
私のアドバイスは、自動化できるものはすべて自動化することです。「これでいいの?」という質問に答えるなど、得意なことは人間に任せましょう。または「これは使えますか?」。それ以外はすべて自動化します。
Test Automation Pyramidに関する Mike Cohn の記事をご覧ください。具体的には、UI のどの部分をそのようにテストする必要があるかを検討してください。たとえば、まれなケースは、多くの場合、サービス層を通じてより適切にテストされます。
自動テストとは異なり、手動テストでは次のことができます。
自動テストでは、手動テストとは異なり、次のことができます。
また、自動テストで間違いを犯すことは、手動テスト中に間違いを犯すよりも簡単であり、可能性が高くなります。最も価値のある機能を自動化することをお勧めしますが、重要なリリースの前に手動でテスト (少なくとも健全性) を実行することをお勧めします。
UI 要素の手動テストを推奨する Jim に +1。UI 自動化ツールを使用してテストを作成するのは比較的簡単ですが、テストのメンテナンスを最小限に抑えるのに十分な堅牢で包括的なテスト フレームワークを設計するには、十分な検討と予測が必要です。
優先順位を付ける必要がある場合は、追加のテストで最もメリットが得られる非 UI 領域を特定するために私が使用したいくつかの手法を以下に示します。
新しい機能を手動でテストして、要件を満たしていることを確認してから、回帰のために自動化スイートに追加しても問題はありません。(それとも伝統的すぎる?)