私は5人のプログラマーで構成される小さな開発チームで働いていますが、全体的なテスト経験はありません。私たちが開発する製品は複雑なVMSであり、基本的に(個別の)ビデオサーバーと、ライブおよび録画されたビデオを表示するためのクライアントで構成されています。ビデオ処理には多くのハードウェアパワーが必要なため、ソフトウェアは通常、複数のサーバーに展開されます。
機能駆動開発のスリム化バージョンを使用します。過去数か月の間に多くの機能が実装され、QAの贅沢をする時間がほとんどなくなりました。
私は現在、ソフトウェアを可能な限り(時間)効率的にテストする方法を研究しています。私は、TDDなどのテストを中心に構築されたソフトウェア方法論を知っています。ただし、多くの機能が分散アーキテクチャを中心に構築されているため、個々の機能の個別のテストを作成することは困難です。機能の多くが無限のシナリオのいくつかを必要とすることを考えると、適切にテストするために複製するために展開することができます。
たとえば、最近、1つ以上のアイドル状態のサーバーが他のサーバーを監視し、障害が発生した場合にその代わりになるフェイルオーバー機能を開発しました。考えられるシナリオには、リモートロケーションまたは異なるサブネット内のフェイルオーバーサーバー、または一度に複数の障害が発生したサーバーが含まれます。
これらのシナリオを手動で設定するには、多くの貴重な時間がかかります。この場合、常に手動による初期化が必要になることは承知していますが、同等以上の投資を行わずに、これらの種類のテストを自動化する(できれば機能を実装する前に定義する)方法を見つけることができないようです。自動テストを実際に作成する時間。
誰かが同様の環境での経験を持っていますか、またはそのような環境に適した(自動化された)テスト方法論または技術についてもっと教えてもらえますか?テストが大幅に強化された場合、現在の開発プロセスを覆すことをいとわない。
ご入力いただきありがとうございます。そして、私の第一言語ではなく英語として、私の文法を許してください:)