明らかに、小さなユーザビリティの修正とバグ修正は、安定した製品に直接組み込まれます。小さな新機能はどうですか?内部テストの後にリリースするだけの余裕はありますか、それとも最初に顧客によるベータテストを受ける必要がありますか?
状況:これは、一人の会社によって作成された若い商業プロジェクトです。既存のユーザーベースがあり、2番目のメジャーバージョンです。以前のベータテストではいくつかの結果が得られましたが、ほとんどのフィードバックはベータ版ではなく安定した製品からのものでした。
コードがユニットテストや統合テストなどのテストカバレッジが良好で、ミッションクリティカルなソフトウェアではない場合、ベータテストバージョンをスキップしても害はないと個人的には考えています。結局のところ、ベータテストは、人々が実際にそれを使用して問題をテストする場合にのみ役立ちますが、ここではそうではないようです。
理想的には、確かに、実際のユーザーに新しい機能をテストする機会を与えたいと思うでしょう。しかし、それが常に実行可能/実用的であるとは限らず、そうすることでの努力が常に報われるとは限りません。ベータテストでは、このような状況で必要な情報が常に得られるとは限らないことに同意します。小さな変更で最も役立つことが多いのは、明白な問題がないことを確認するために、ベータテスターによる「テスト」のクイックシングルラウンドを行うことです。
内部テストに慣れている場合、できることは、ベータ版を短期間必要な人が利用できるようにすることです。あなたのウェブサイト上、または適切な場所ならどこでも。あなたはそれについていくつかのフィードバックを得るかもしれませんが、そうではないかもしれません(ユーザーベースの機能とサイズ/性質に依存します)。短い「オープンベータ」の後、大きな問題が報告されない限り、それをドアの外に送ってください。
ユーザーベースで許可されている場合は、ベータビルドの試行に関心のあるユーザーの小さなメーリングリストを作成してください。それはあなたが逃したかもしれないショーストッパーがないことを確実にするためだけに少数の顧客の手にベータビルドを得ることができます。正式なベータプロセスである必要はありません。
ここでのもう1つのオプションは、開発チャネルを分離することです。ソフトウェアに自動アップデーターが組み込まれている場合は、ベータ版の更新についてユーザーに通知するオプションを作成します。ベータ版のアップデートをオンラインで公開し、満足したらリリースとしてマークして、他のすべての人にアップデートの通知が届くようにします。このようにして、ユーザーのサブセットが更新を取得する「ソフト」ロールアウトを実行します。したがって、問題が発生した場合、影響を受けるのはユーザーの10%のみであり、100%ではありません。
理想的には、トライアル機能として使用する必要があります。
その機能がクライアントから要求されておらず、UATがない場合は、クライアントにインストールを強制せずに、試用版またはベータ版として保持することをお勧めします。
ベータテストを思いとどまらせたくはありませんが、回帰テストを調べて、「修正」が他の何かを壊さないことを確認することをお勧めします。新しい機能ごとにテスト計画を収集して、新しい機能が導入されたときにそれらの機能が壊れていないことを後で再テストできるようにします。システムの最も使用されている最も重要な部分をテストする基本計画と、システムの特定の部分の詳細な計画へのリンクが最も効果的であるように思われるため、特定のリリースのテストに集中するために組み合わせることができます。
この時点で、完全な書面による回帰テストが多すぎる場合は、架空の聴衆にソフトウェアの機能を示すふりをしてください。私はその方法でより多くのバグを見つけます...