我在一个由 5 名程序员组成的小型开发团队工作,其中没有人有任何整体测试经验。我们开发的产品是一个复杂的 VMS,基本上由一个(独立的)视频服务器和一个用于查看实况和录制视频的客户端组成。由于视频处理需要大量硬件能力,因此该软件通常部署在多台服务器上。
我们使用精简版的功能驱动开发。在过去的几个月中,实现了许多功能,几乎没有时间花在 QA 上。
我目前正在研究一种方法,让我们尽可能(时间)高效地测试我们的软件。我知道围绕测试构建的软件方法论,例如 TDD。然而,由于许多特性是围绕分布式架构构建的,因此很难为单个特性编写单独的测试。鉴于许多功能需要一些无穷无尽的场景,因此可以将其部署以进行复制以便正确测试。
例如,最近我们开发了一种故障转移功能,其中一个或多个空闲服务器将监视其他服务器,并在发生故障时取代它。可能的情况包括位于远程位置或不同子网中的故障转移服务器,或者一次有多个故障服务器。
手动设置这些场景会花费大量宝贵的时间。尽管我知道在这种情况下总是需要手动初始化,但我似乎无法找到一种方法来自动化这些类型的测试(最好在实现功能之前定义它们)而无需投入同等或更大的资金实际创建自动化测试的时间。
有没有人在类似环境中有任何经验,或者可以告诉我更多关于适合这种环境的(自动化)测试方法或技术的信息?如果它以显着的方式增强测试,我们愿意推翻我们当前的开发过程。
提前感谢您的任何意见。请原谅我的语法,因为英语不是我的第一语言:)