“有足够的时间把每个案例都测试完整吗?”

“没有!” 我想,人们会异口同声地回答。

总有很多用例需要测试,或者需要在另一个平台或以其他配置再试一次。但是随着终期限和产品交付日期的日益迫近,分配给每个测试周期的时间缩短了。那么,测试团队如何实现低成本高效率的测试呢?

有合理的机制防止测试设计时场景遗漏,力求正式版本Release之前找出瓶颈;引入合适的自动化测试工具,充分利用无人值守的夜间和假日;自主开发针对性强的测试框架。以上都是为了尽可能地减少项目维护阶段的投入,而采取的行之有效的测试策略。其中,自动化测试毫无疑问地在测试效率和彻底性方面使我们获益匪浅,帮助团队实现降本增效的目的。

对于“什么是自动化测试” ,人们往往理解得过于狭窄,只关心由工具或编程产生的测试脚本,但实际上自动化一词包含了更为广阔的含义。一个Quality Engineering团队在构建一套自动化测试准则时,对自动化测试是这样定义的:在我们的环境中,“自动化”指的是对策略、工具和工件的使用,它增加或减少了手工或人为参与或干预非技巧性、重复或冗长工作的需要。

自动化测试,或者说自动化测试策略及工具的实现,是测试人员工具箱里的一件利器。测试工作自动执行并记录测试结果,可以把测试人员从枯燥的重复性工作中解脱出来,将更多精力和时间专注于需要智能判断的复杂工作和其他新的测试用例。这样,不但可以有效提高测试效率、缩短测试特别是回归测试所需时间,还可以在晚上、等测试人员不在场的情况下充分利用测试服务器资源、提高测试覆盖率。尽管如此,我们要避免将自动化测试和测试人员等同起来,不要对自动化测试要求过高。我们要对自动化测试树立一个正确的观感,清醒地认识到自动化测试是人工测试的有力补充,而无法取代测试人员的地位。

没有一种单纯的技术或管理上的进步,能够独立地承诺在10年内大幅度地提高软件的生产率、可靠性和简洁性。Frederick P. Brooks, Jr. 鼓励我们将技术和方法视作一种演进手段,而并非革命。将自动化技术引入测试工作时,我们倾向于支持相同的观点。“罗马城不是建成的。”自动化测试也是一个积累经验、循序渐进的过程,不要期望在短期内实现所有测试的自动化。成功的自动化测试需要制定相应的自动化测试计划,好的自动化测试策略是自动化测试实施是否成功的第一步。只有充分考虑到自身实施自动化测试的风险、资源和目标后,才能制定出适合自己的自动化测试策略,并终达到提高测试效率,降低测试成本的目的。