良好的软件测试方法可以确保软件项目正确运作,然而,除了软件之外,还有一个重要的却往往被忽视的角色——客户。在软件项目开发的每个阶段考虑客户需求是系统获得成功非常重要的一点。
1、软件项目验收测试概述
验收测试一直以来被用于不同的技术和方法中,有时指的是同一个概念,有时也可能指不同的测试形式。所以必须给本文探讨的验收测试相关概念一个明确的定义:
①验收测试:包括客户验收测试、用户验收测试和功能测试;
②可执行规范:即验收测试规范,可运行测试来验证项目实现是否与所定义的规范相匹配;
③客户:系统的最终用户;
④系统:所开发的软件项目;
⑤验收:满足功能和非功能需求;
⑥功能需求:该系统必须执行的功能和动作,如显示条目、用户身份验证等;
⑦非功能需求:系统的相关因素,如性能、可扩展性和安全性;
⑧黑盒:不依赖于系统内部细节的测试过程,如输入数据、检测输出结果。
这些术语并不足以对如何将验收测试应用于软件项目开发生命周期进行一个准确的描述。验收测试并不是新概念,但它像测试驱动开发TDD(Test Driven Development)一样,近几年来才得到关注和广泛使用,并出现了一些相关的测试工具和架构。接下来看一下验收测试是如何应用于软件开发生命周期的。
验收测试往往被用于由极限编程、敏捷原则和Scrum迭代模型指导开发的软件项目中。出现这样的情况主要有两个原因。一是验收测试侧重于客户和软件所实现的功能向客户提供的价值,这与敏捷开发原则相一致,后者也是侧重于交付实际满足客户需求的软件。二是通过一套自动化验收测试,就可以确保该软件能够满足客户需求、确保在实现新功能的时候没有破坏任何旧功能。这意味着,可以将重点放在确保正在开发的功能是否