ソフトウェアのテストと開発の比率

前書き

この記事はstackoverflowから翻訳されています。将来、良い記事に出会った場合は、引き続き翻訳します。

問題

私は開発エンジニアであり、テストチームと議論しています。テストチームのメンバーの数は、製品の開発者の数を超える必要がありますか?

これはプログラミングの質問ではないことは知っていますが、この質問はソフトウェア開発と密接に関連していると思います。専門的な回答を得るために、この質問を閉じないでください。

返信1:

これは私の個人的な経験です。マイクロソフトには、強力なテストおよび開発組織があります。これは、従来のQAとは少し異なります。これは、プログラマーを雇ってテストし、設計段階に含めるためです。彼らの仕事はテスト、特に自動化された製品テストです。私の経験によると、テスターが関数をテストして自動化するのにかかる時間は、開発者が製品の欠陥をコーディングして修正するのにかかる時間とほぼ同じです。つまり、それらの比率は1:1であり、同じです。ユニットテストの作成にかかる時間は、コードの作成にかかる時間と非常に似ています。

この組み合わせは、さまざまな基準によって異なります。

1.開発者が行った単体テストの数、および開発者が行うほど、テストする必要のある作業は少なくなります。

2.既存のライブラリを使用する代わりに、開発者が作成する必要のあるコードの量。事前に作成されたコードが多数使用されている場合、テスターはこれらの機能も正常であるかどうかを確認する必要があるため、開発とテストの比率は1:1である必要があります。

3.開発作業の動的な性質。UIを作成する場合、比較的小規模な開発者がテストの表面に大きな変更を加えるため、より多くのテスターが必要になります。

4.重要な機能はいくつありますか。Gmailを作成している場合は、自由に使用できます。また、この領域のバグは許容および修正できるため、テスターはほとんど必要ありません。逆に、医用画像機器を研究している場合、この領域の欠陥を修正することは困難であり、バグがあると非常に悪いため、さらにテストが必要になります。


返信2:

私が働いているほとんどの会社のプロジェクトでは、それらの比率は1:1ですが、次の要因により異なる場合があります。

1.開発効率。私はかつて、非常に高い出力を持ち、3つのQAが彼が開発した機能で忙しい開発者について話しました。

2.製品の品質基準。重要で信頼性の高いシステムでは、QAが向上し、より多くのQA担当者が必要になります。

3.一部のプロジェクトは、より多くの構成とシナリオでテストする必要があります。開発者は同じままである可​​能性がありますが、テストマトリックス全体をカバーするにはより多くのQAが必要であることを示しています。

4.テストはどの程度自動化されていますか?テストを簡単に自動化できない場合は、手動でテストする人を増やす必要があります。

返信3:

ここでの私の現在の開発テストの比率は8:1です。その理由は、自動テストを非常に重視しているためです。すべての作業は、完全な単体テストカバレッジに近い必要があります。また、機能テスト(すべてのユーザーストーリーにはFitnessテストが必要)、CI(継続的インテグレーション)サーバーを使用した完全なテスト、開発者が頻繁にチェックし、リリースするためにFitnessを使用します。

これは巨大なアプリケーションであり、何千ものクラスと数え切れないほどのシナリオがあります。その利点は、速度、柔軟性、およびコストです。開発者がテストの作成に余分な時間を費やしても、人的資本管理部門/より多くのQA担当者の管理、または製品に見られる欠陥(QA担当者でさえ一般の人々)よりも少なくなります。

QAスタッフの中には、自動テストの作成、Seleniumの使用、または新機能への参加に時間を費やす人はほとんどいません。彼らは同じ機能を何度も繰り返すのにほとんど時間を費やしませんでした。

返信4:

私の経験では、QA担当者には主に2つのタイプがあります。1)単に記述されたスクリプトに従い、アプリケーションと対話して境界の問題を見つける人と、2)自動化されたテストプログラムを自分で作成して、新しく革新的なものを探す人。偵察、Selenium、APIクライアントの作成)を開発チームのコードを破ります。

QAチームが最初のタイプの人々で構成されている場合は、1:1の比率または適切な開発者が必要です。そうでなければ、開発チームによって導入された新機能についていくのは難しいと彼らは言い、テストワークフローがより複雑になるため、製品への変更に対処することがよくあります。

QAチームが後者の場合(コードを記述できるテストエンジニアは、生産的な開発チームにとって天の恵みです)。プログラマーは彼らとコミュニケーションをとることができ、テスターはよりスマートでより抽象的なテストツールを書くことによって彼ら自身のプロセスを自動化して改善するための便利な方法を見つけます。本当に優れたテストエンジニアは、2〜3の開発タスクをサポートする可能性があります。特に、それらの開発者が有用な単体テストと統合テストを作成した場合、テスターはそれらを出発点として使用できます。

やっと:

私の意見ですが、国内のソフトウェアテスト会社の開発テスト比率は、一般的に3:1、4:1、さらには5:1です。開発者は、テスターがいて、単体テストのカバレッジが高くないため、一般に詳細な機能テストを行うことを躊躇します。開発者は、記述されたプログラムをテストに直接書き込み、テスターはより機能テストを行います。比較的安定したプロジェクトの場合、テストには自動テストを実行して、将来の回帰テストを容易にし、ワークロードを削減する時間があります。

テスターとして、すべてのソフトウェアテストエンジニアは、自動化だけでなく、開発で使用されるテクノロジを理解し、現在テストされている開発プロジェクトをローカルで実行し、開発コードに精通し、最後にできるように、コーディング能力を向上させることをお勧めします。あなたが見つけたバグを修正する方法を知っています。単体テストを書いて、開発・テストエンジニアになれます。一緒に進歩していきたいです。

おすすめ

転載: blog.51cto.com/15127514/2657682