質問

として活躍していソフトウェア開発者にしば現在当社のQAチームに以下のもの:

どのくらいのQAチームを超える数の開発者と同一商品?

いということではないかれたプログラムもするかという問題はあろうが、この問いはほとんど接続ソフトウェア開発に従事。そしてもらえればと思います"との質問は定休日とさせていただきます。くまから回答を得プロとしての経験で働SW開発企業としてたくさんいます。

役に立ちましたか?

解決

答えは非常に主観的ですが、ここに私の経験があります。

マイクロソフトには強力なテスト開発組織があります。従来のQAとは少し異なります。なぜなら、私たちはプログラマを雇ってテストし、設計段階の早い段階でプロセスに参加させるからです。彼らの仕事はテストであり、特に製品のテストを自動化することです。私の経験では、テスターが機能のテストと自動化に要する時間は、開発者が製品のバグをコーディングして修正するのとほぼ同じです。これは、1:1マッピングを意味します。これは、単体テストの記述にコードの記述と同じくらいの時間がかかるという経験則に非常に似ています。

この組み合わせは、いくつかの基準によって異なります:

  1. 開発者が行っている単体テストの量。それらが多ければ多いほど、必要なテストは少なくなります。
  2. 既存のライブラリを活用する場合と比べて、開発者がどれだけゼロから書いているか。使用中の既存のコードが多数あり、テスターがその機能も検証する必要がある場合、1:1マッピングのためにその沈没した開発コストを考慮する必要があります。
  3. 開発のダイナミックさ。比較的小さな開発者の微調整がテスト可能な表面に大きな変化をもたらすUIを作成している場合、より多くのテスターが必要になります。
  4. 機能のミッションクリティカル性。 GMailのようなものを何気なく使用し、現場でバグを許容して修正できるものを作成するには、必要なテスターの数が少なくなります。逆に、医療用画像処理装置に取り組んでいる場合は、さらに多くのものが必要です。バグは現場で修正するのが難しく、発生すると非常に悪いためテストします。

他のヒント

会社で働くほとんどのプロジェクトでは、私が働く比率は1:1です。ただし、これはいくつかの要因によって異なる場合があります。

  • Dev出力。大量の出力があり、3つのQAが彼の機能に取り組んでいる開発者を見てきました。
  • 製品の品質バー。ミッションクリティカルで信頼性の高いシステムには、内部レポートWebサイトよりも高いQAバーが必要であり、より多くのQAスタッフが必要になります。
  • 一部のプロジェクトは、より多くの構成とシナリオでテストする必要があります。開発者は変わらないかもしれませんが、テストマトリックス全体をカバーするには、明らかにQAがさらに必要になります。
  • テストの自動化の程度。テストを簡単に自動化できない場合は、手動パスを行うためにより多くの人が必要になります。

私の経験では、QAスタッフには2つの主要な種類があります:単純に記述されたスクリプトに従って、エッジケースを見つけるためにアプリケーションと対話する人と、自動テストコードを実際に自分で書き、開発チームのコードを破る新しい革新的な方法(ファジング、Selenium、APIクライアントの作成)を見つけます。

QAチームが主に第1のタイプの人々で構成されている場合、開発者に対して1:1以上の比率がおそらく必要です。そうしないと、開発チームによって導入された新機能に追いつくのに苦労し、テストワークフローをさらに複雑にするため、製品に加えられたすべての変更に抵抗することがよくあります。

後者のタイプ(つまり、コーディングできるテストエンジニア)は、生産的な開発チームへの天の恵みです。コーダーはピアとしてコミュニケーションをとることができ、テスターはよりスマートでより抽象化されたテストハーネスとユーティリティを記述することにより、独自のプロセスを自動化および改善する便利な方法を見つけることができます。特にテスターが出発点として使用できる便利な単体テストと統合テストをすでに作成している場合、特に優れたテストエンジニアが2〜3人の開発者の作業をサポートできます。

私の仕事の場所は現在8:1前後のdev:qaです。その理由は、自動化されたテストを非常に真剣に受け止めているためです。すべての作業には、ほぼ完全な単体テストのカバレッジが必要です。また、Fitnessを使用した機能テスト(すべてのユーザーストーリーにはFitnesseテストが必要)、チェックインがCIサーバーでの完全なテスト実行をトリガーし、開発者が頻繁にチェックインし、頻繁にリリースします。

これはすべて、数千のクラスと無数のシナリオを持つ巨大なアプリケーション上にあります。利点は、速度、俊敏性、そしてもちろんコストです。開発者(高価なものであっても)がテストの作成に費やす余分な時間は、QAスタッフの雇用/管理や、本番環境でのバグの発見(結局、QAスタッフでも人間である)の人間の首都よりも短いです。

私たちが持っている小さなQAスタッフは、Seleniumを使って独自の自動テストを作成したり、新しい機能に従事したりすることに時間を費やしています。同じ機能を何度も何度も再ハッシュするのに比較的短い時間しかかかりません。

それに答える要因はたくさんあります。

  1. 自動テストはありますか?
  2. リリースサイクルはどのように構成されていますか?
  3. 単体テストのカバー率はどのくらいですか?
  4. あなたの従業員はどれくらい良いですか(両方ともQAと開発)?
  5. プロジェクトのライフサイクル全体にQAを含めていますか、それとも最後にQAをダンプしますか?
  6. QAへの増分リリースを行っていますか?

3:1(QA / DEV)から.5:1(QA / DEV)までさまざまな場所で作業しました。要するに、製品を適切にテストするために必要なQAリソースの数であり、それに対する包括的な答えはありません。

現在は日々目まぐるしく変わっていま3開発のための各QAます。このことが浮き沈みを繰り返し回QAを見つの問題が解決以外のコードの変更などんでをクリックしい意味はあります。

カップルの回り品質保証が働いてきた時はほとんどのようにレシピのための災害としてお客様との品質保証とその問題な開発課題です。

QAスタッフの人数は開発者の人数に依存すべきではありません。それは製品の望ましい品質に依存する必要がありますが、他のものには依存しません。

「QAへ」と言う人が多い優れた開発者の仕事は、「QAへ」よりも簡単な作業です。より悪い開発者の仕事。地獄、なぜそれは本当ですか? 「品質を保証する」とは、QAは「品質保証」とは、製品に「QA合格」とマークするプロセスを設計することです。および「QAに失敗しました」。コード自体に依存するプロセスは、静的コードチェックとピアレビューの2つだけです。前者はやや使用されますが、それを維持するためにQA担当者が必要になる場合がありますが、これは" quality "と呼ばれます。ソウルレスマシンにとってコードの重要性は重要ではありません。また、ピアレビューはQAではなくプログラマによって行われます。これにより、QAの量が開発者に依存しないことを納得していただければ幸いです。

当社が取り組んでいるドメインでは、競争はなく、市場は非常に狭いです。したがって、バグレポートから必要な情報をすべて取得し、 QAがないため、比率はゼロになります。すべてのテストは開発者が行います。それでも、必要な品質はQAスタッフを必要としないため、私たちは生きています。

当社の組織の比率はdev:QAは5:2,およびこれを的確に把握し曽根以上のようなシナリオ

  1. -あにまる単体テストは、当社の場合お一人様には書きユニットテスト計画やチームの5名の実行ユニットテストケース固定のバグ 弊社のPLがないにかかわるすべて符号化を行なっていプロセス-クレームのみ/審査指向のもの

  2. 機能性試験が行われるパーテスターと言ってもいいでしょう半の資源と循環機能検査による開発

このようなプロジェクトのサイズ組織委員会の記述は、当社の資源に基づく三次元測定機レベル

多くの要素がありますが、最も重要なのはアプリケーションに必要な品質レベルですが、小さなWebサイトですか?または主要な医療機器?または金融システム?スペースシャトルのコードを1行変更すると、数週間のテストが必要になる可能性があります...

プログレッシブ開発ショップでは、TDD、コードレビューなど、QAの改善が実装されるにつれて、QAリソースのニーズ(開発に対する比率として)が時間の経過とともに減少するはずです。 、プロセスを改善し、開発者が愚かであると感じるのを助けるためにQAを利用する必要があります(リリース前にバグを削除します)。

開発中の組織とWeb /アプリによって異なります。すべての企業は、要件に応じて独自のdev:QA比率を持っています。

要するに、プロジェクトの規模と組織で利用可能なリソースに依存します。

人数とは対照的に、費やした時間の観点から考えてください。十分にテストされ、「承認済み」の場合、アプリケーションでは、開発時間ごとに1時間のQA作業が必要になる場合があります。機能テストではなく、技術的なQAの役割に特に言及します。 QAチームと開発チームは緊密に連携できる必要があるため、QAチームは開発と同時にテストケースを作成できます。これは、すべてを実装コントラクト(関数名、入力パラメーターなど)に書き込む必要があることを意味します。

まあ、これは一日の終わりのスタッフの質に依存します。 1人のプログラマが2つのQAと同じくらいの作業を行う場合、比率は1:2であり、その逆も同様です。ここのスタッフの質は#1です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top