回答:
たぶん私は古すぎるかもしれませんが、最新の開発技術やプロセス技術でさえ、クライアントに製品をリリースする前に別の目、新鮮な目を置き換えることはできません。
製品が単に他の開発者向けのAPIである場合でも、QAを使用してAPIユーザーとして考えることができ、お客様またはクライアントが事前に考えなかったテスト/使用シナリオを提供できます。
あなたの製品がユーザーインターフェースに基づいて重い場合、間違いなくあなたは別の人(それはあなたやあなたのチームの誰かではない)がクライアントに送る前に最終結果を見て欲しいです。
QAの仕事はアプリケーションを破壊することであり、開発者の仕事はアプリケーションを破壊しないことです。したがって、彼らは異なる視点からテストを書きます。たとえば、開発者は期待される動作が発生するかどうかを確認するテストを作成し、QAは、開発者がユーザーが行うことを決して考えないことをユーザーが行うと何が起こるかを確認するテストを作成します。さらに、開発者は要件を誤って解釈することが多く、QAテストは、解釈が開発者が意図したものと異なる場合にキャッチし、プロジェクトの利害関係者と協力して正しい解釈を判断します。コードを書いた開発者が書いたテストには、開発者が大きな死角を持っているため、しばしば大きな死角があります。たとえば、97%の時間で何が起こるかをテストしますが、エッジケースはテストしません。
以前の雇用者でのQAの役割は、製品をテストすることではなく、QAによって定義された以前に定義された受け入れテストに関して開発者が本来行うことを実行したことを保証することでした。
一方、製品の所有者はテストとはまったく関係がありませんでした。あらゆるレベルのテストに対処することは、製品の所有者の役割ではありません。
ある時点で、従業員に自信を持たなければなりません。チェックとバランスは良好ですが、開発サイクル内でソリューションを強制する必要はありません。実際には、従業員の労働倫理のごく一部のみに対処することです。
完璧な世界では、開発者とQAが共同で受入テストを書くことで形式化するというコラボレーションが見られます。QAは、開発チームと同様に、テーブルに異なる側面をもたらす必要があります。QAは、製品の初期段階でパイに手を入れ、サイクル全体を通して関与し続ける必要があります。一方、製品の所有者は、製品の現在の状態やリスクなどについて理解するためにQAを実施し、全体的な方法で製品に焦点を当てる必要があります。製品を構成する特定のニュアンスではありません。
BDDの一部は、利害関係者が協力して受け入れ基準を作成する3 Amigosアプローチを適用しています。QA / Devはステップコードを記述して、シナリオを受け入れテストとして実行させることができます。BDDツールが自動的に実行するのと同じ受け入れテストを手動で実行するQAの価値はどこにありますか?QAの付加価値は、これらの受け入れテストを検証し、スクリプト化された受け入れテスト以外で手動の探索的テストを実行することです。通常、複製しても同じ結果が得られます。
開発者は要件と仕様を書き換えず、QAはアプリコードを書き換えません...開発者が受け入れテストとして実行するのとまったく同じスクリプトテストを実行する必要がない場合があります。開発者がQAハットを着用するときが来ました!