并行测试和串行测试在测试执行中的方法选择?
怎样组织测试任务执行顺序的方法问题?
串行测试: 测试任务按顺序一个接一个地执行。任务B必须等任务A完成后才能开始。
并行测试: 多个测试任务同时进行。任务A、B、C可以在不同的测试环境或资源上同时启动和执行。
选择方法:
资源限制:测试环境、测试设备、特定测试工具或测试人员(如安全专家)只有一套,无法同时支持多个任务。拥有充足的、相互独立的测试资源(多套环境、多台真机、多个许可证),资源闲置是主要短板。
任务依赖性:任务之间有严格的先后思路依赖。如,必须完成功能测试并修复大部分Bug后,才能进行有效的性能基线测试。任务之间相互独立,没有依赖关系。如,兼容性测试、文档审核、安全性扫描可以同时进行。
测试风险和复杂性:测试任务本身风险高、复杂度高,需要集中精力和资源进行深入分析和问题定位。测试任务相对标准化、自动化程度高,可以分散执行,风险可控。
项目周期压力:项目周期相对宽松,质量深度优于交付速度。项目周期紧张,交付时间是最重点约束。并行是压缩整体测试周期的第一要务手段。
成本考量:并行化带来的额外环境、工具、人力成本不可接受。缩短项目周期带来的商业作用,远高于并行执行增加的硬件/云资源成本。
信息同步需求:前序测试的发现对后续测试的方法调整非常重要,需要频繁同步信息。各测试任务目的确定,所需信息在开始前已充分提供,过程中无需频繁交叉同步。
实践建议:
混合方法: 在实际项目中,往往是串行和并行结合。如,在一个迭代内,功能测试串行进行;而功能测试、代码静态扫描、文档编写可以并行。
重点途径法: 识别项目的“重点途径”,对重点途径上的任务优先保障资源,非重点途径任务尽量并行或灵活安排。
利用云资源: 对于兼容性测试、性能测试等需要大量异构环境的任务,利用云测平台可以轻松实现低成本、大规模的并行测试,是现代测试的常见选择。