あなたの練習では、アプリケーションのテストを中止して本番運用に移行する時期を知るために、どのような尺度を使用していますか?いつテストを中止しますか?
答えて
次のように、私が通常使用する施策は以下のとおりです。
- ない重大度1(ショーストッパーは)
- ない重大度2(主要な機能不自由は)
- 許容数を発行発行重大度3(マイナー機能性)の問題
「受け入れ可能な番号」は、アプリケーションのサイズなどに応じて、当然のことながら非常にかすかな数字です。
これらの前提条件が満たされたら、私はすべての利害関係者(QAリード、Devリード、App Supportリードなど)の会議を開き、未解決の問題のリストを調べ、未解決の問題に割り当てられた重大度。 Sev 1とSev 2の未解決の問題がないことを確認したら、各ステークホルダーから「Go/No Go」コールを受け取ります。誰もが "行く"と言うなら、私は生産に向かうのが快適です。少なくとも1人のステークホルダーが「いいえ」と答えた場合は、「いいえ」の理由を調べ、必要に応じてその背後にある問題を解決するための手順を実行します。
小規模なプロジェクトでは、プロセスがより簡素化されます。単体操作の場合は、事前条件の設定がはるかに簡単です。"アプリケーションは合理的なメリットを提供しますが、(明らかに)許容可能な数のバグを持っています - それをそこに置いてください!"アプリケーションが提供するメリットがバグの煩わしさを乗り越えている限り、特に「早期リリースと頻繁にリリースする」ガイドラインに従っている場合は、うまくいく可能性があります。
私の職場では、時々使用されるメトリックの1つは、製品の最後のバージョンで存在していた古い報告されていないバグを見つけ出すのに十分なテストをしたことです。テスト中に発見されたバグで、顧客が何も言わずに何年も前から存在していれば、安全に出荷することができます。
もちろん、マニュアルテスト、自動テスト、開発者が製品、ベータ、継続的なテストを行うようにしても、現在見つかっているバグ数は報告されていません以前のバージョンでは、私が最初にそれを聞いた時、私には新しいアイデアでした。
まず、テストを中止することはありません。 がテストされてリリースされると、その意味は、ユーザーがあなたの代わりにテストしているということです。
第2に、包括的なテストスクリプトが許容レベルで失敗しても、あなたは進んでいくことができます。
最後に、これはあなたのケースに非常に特有です。いくつかのプロジェクトでは、3週間のベータテスト期間があり、変更の最小限のものが導入される前に多くの人がシステムをハックします。他の領域(あまり重要ではありません)では、小さな変更は別の開発者の頷きで移動できます。
すべての主要なショーストッパーがなくなったとき。
本当に、ユーザー受け入れテストを行い、ユーザーにシステムを使用させ、そのすべてがユーザーの受け入れテストを中止するかどうかを確認する必要があります。これが実用的でない場合は、ターゲットオーディエンスに似ている一部のユーザーとクローズドベータを実行します。
システム内のすべてのバグを実際に見つけることは不可能です。したがって、唯一の実際のルールはになる場合があります。に発送してください。私の組織内のプロジェクトの場合
mharen、
私はあなたが包括的な自動テストを持っている場合は、それらのすべては渡さない限り、ソフトウェアを出荷するために全く無責任であることがわかります。自動化されたテストとは、これらがコア機能であるか、過去に発生したバグであり、合格テストを受けるように修正できることを意味します。自動テストの100%をパスしないソフトウェアを出荷することは無責任なことになります。
ジョン、
私は自動化テストを意味するためにテストスクリプトを意味するものではありませんでした。私は、何をテストし、どのようにテストするのかという段階的なリストのより伝統的なアプローチを指していました。
しかし、私は、すべての自動テストに合格する必要があることに同意しません。それはすべて重大度と優先度に依存します。大規模なプロジェクトでは、ユーザーが報告した問題に基づいて失敗するテストを作成することができます。すべてのリリースですべてのバグを修正することはできないので、いくつかのテストは単純に合格しません。
私が常に試してみたかった面白いテスト方法は、「エラーシード」です。アイデアは、人にさまざまなカテゴリに属する意図的なバグをシステムに挿入させることです。例えば
:
- 化粧品、スペルミスなど
- 非クリティカル・エラー
- 重大なエラーと
- データの問題をクラッシュします。エラーは発生しませんが、結果には深刻な問題があります。
- など
彼らはすぐに元に戻すことができるように、これらのバグを挿入するように変更された、まさに「シーダのドキュメント。テストチームがシードされたバグを見つけたら、実際のバグを発見していますが、その違いは分かりません。理論的には、テストチームがシードされたクリティカルエラーの90%を見つけた場合、実際のクリティカルエラーの数が比例している可能性があります。
これらの統計情報から、リリースを受け入れることが許容される時期についての判断を求めることができます。もちろん、バグが見つかるランダムな性質(実際のものかシードされたものか)のため、これは絶対に近いものではありませんが、リリースする可能性のあるバグの数が分からない方がよいでしょう。
"showstopper"または主要機能のバグの間に製品に入れられたテスト時間を測定すると、あなたがほぼそこにいることを知らせることができます。新しい機能が搭載された製品の急速な流行の時には、テストチームが、報告しているバグの大部分が重大な機能バグであることが分かっているのが一般的です。それらが扱うように、相互作用の滑らかさと明快さを改善することを目的としたマイナー、フィッティング、フィニッシュタイプの問題が頻繁に発生します。総合的には製品の品質に大きな違いをもたらしますが、それぞれの品質はあまり重要ではありません。これらの問題が修正され、テストが続行されるにつれて、テスターがエラーケースや珍しい使用パターンに突入するため、おそらくバグレポートを取得するでしょう。その時点では、リリース時のビジネス価値と検出されていないショートッパのリスクをいつ見るかによって異なります。