验收测试是以用户需求为基础的,系统测试是以功能需求为基础的,而集成测试是以系统的体系结构为基础的。在相应的开发阶段,必须规划测试活动并为每一种测试设计测试用例。不可能在需求开发阶段真正进行任何测试,因为还没有可执行的软件。然而,你可以在开发组编写代码之前,以需求为基础建立概念性测试用例,并使用它们发现软件需求规格说明中的错误、二义性和遗漏,还可以进行模型分析。
需求验证是需求开发的第四部分(其余三个为获取、分析和编写规格说明),需求验证所包括的活动是为了确定以下几方面的内容:
• 软件需求规格说明正确描述了预期的系统行为和特征。
• 从系统需求或其它来源中得到软件需求。
• 需求是完整的和高质量的。
• 所有对需求的看法是一致的。
• 需求为继续进行产品设计、构造和测试提供了足够的基础。
正式技术评审的最好类型叫作审查( i n s p e c t i o n)(Ebenau and Strauss 1994; Gilb and
Graham 1993)。对需求文档的审查是可利用的最高级软件质量技术。一些公司已经认识到:
在审查需求文档或其它软件产品上花费一个小时,可节省十个小时的工作时间( G r a d y 1 9 9 4)。
我尚不知道有哪些其它的软件开发或质量评估可以产生十倍的回收投资比。
如果你对提高软件的质量持有认真的态度,那么就审查所编写需求文档的每一行。虽然
对大型的需求文档进行详细审查很无聊并且也很费时,但是我所知道的采用需求审查的人都
一致认为他们所花的每一分钟都是值得的。如果你认为没有时间详细审查每个方面,那么就
使用简单的风险分析模型来区分需求文档哪些部分是需要详细审查的和那些不重要部分只要
用非正式评审就能满足质量要求。