この種のテストにトリックはありますか?
あなたは、「小さな問題を先取りするために、テスターに毎月 1 つのアプリで毎月数時間の回帰テストを行ってもらっています」と述べました。
「回帰テスト」とは、「古い機能を手動で実行する」ことを意味していると思います。
これまでに発見されたことのない古いバグを探しているかどうかを判断する必要があります (これは、これまでに実行したことのないテストを実行することを意味します)。または、以前に実行したテストを繰り返して、以前にテストした機能が変更されていないことを確認するかどうか。これらは2つの相反するものです。
「回帰テスト」は、後者を行っていることを意味します。
問題が「顧客が私たちのソフトウェアのいくつかの古い問題を見つけた」ということである場合、あなたの顧客は、あなたが以前に実行したことのないテストを実行しているかのどちらかです (この場合、これらの問題を見つけるには、古いソフトウェアの新しいテストを実行する必要があります)。または、以前にテストして見つけたバグを見つけているが、それらを見つけた後に修正していないように見える.
一度に 1 つの特定の機能をターゲットにする必要がありますか?
正確に何をしようとしていますか:
- 顧客が見つける前にバグを見つけますか?
- 新しい開発にはほとんど問題がないことを顧客に納得させますか?
- テストに費やす時間をできるだけ短くしますか?
非常に一般的なアドバイスは、バグは家族に住んでいるということです。そのため、バグを見つけたら、その親、兄弟、いとこを探します。次に例を示します。
- 他のモジュールでこれとまったく同じバグがある可能性があります
- このモジュールは、他のモジュールよりもバグが多い可能性があります (誰かが休日に書いた可能性があります)。このモジュールの他の種類のバグを探してください。
- おそらくこれは、より良いテスト カバレッジが必要な領域全体 (または要件の種類全体) を示唆する問題のクラス (パフォーマンスの問題、またはメモリ不足の問題) の 1 つです。
他のアドバイスとしては、それは顧客の期待を管理することであるということです。あなたは、「実際には、新しいコードは概してしっかりしているのに、すべてのリリースに複数のバグがあるように見えます」と言いましたが、本当の問題は、バグがあるという誤った認識であるかのように書き下ろし。
常に新しいコードを書く必要があるため、非常に面倒なプロセスのように感じます
ソフトウェアの開発は、バックグラウンドでバーナー上で行われるのではなく、誰かが作業しているか、していないかのどちらかです。経営陣は、誰かをこのタスクに割り当てるか (つまり、以前に発見されていない既存のバグを探すか、以前に発見されたがまだ報告されていないバグを修正するか)、または新しい開発に専念して、顧客がバグ検出を行います。
編集:バグを見つける方法はテストだけではないことに注意してください。次のものもあります。
- 非公式の設計レビュー (35%)
- 正式な設計検査 (55%)
- 非公式のコード レビュー (25%)
- 正式コード検査 (60%)
- コードのパーソナル デスク チェック (40%)
- 単体テスト (30%)
- コンポーネントテスト (30%)
- 統合テスト (35%)
- 回帰テスト (25%)
- システムテスト (40%)
- 少量のベータ テスト (<10 サイト) (35%)
- 大容量ベータ テスト (1000 サイト以上) (70%)
それぞれの横に付けたパーセンテージは、各手法の欠陥除去率の尺度です (McConnel のSoftware Estimation book の 243 ページから取得)。最も効果的な 2 つの手法は、正式なコード インスペクションと大量のベータ テストのようです。
そのため、正式なコード レビューを導入することをお勧めします。これは、ブラック ボックス テストよりも欠陥を検出するのに適している可能性があります。