用户需要什么?开发的项目试图为用户提供什么?问题的答案正是需求阶段所要说明的。由于很难完全理解用户的需要,因此需求开发十分困难。一直以来需求阶段都是软件链中最为薄弱的一环。
需求可以是正式编制的文档,也可以是表示用户要求的非正式的通信,需求可能是明确的,也可能是含糊的。需求阶段的测试目标就是要保证在开展下一步工作之前能完全了解用户的需要。
需求可能还会涉及一些重要和基本的问题,像安全性、可用性、可维护性以及一些不明确或不好解释的性能。当从测试的角度出发检测需求时,所有含糊不清楚的地方都要应被问清楚。一个“好的性能”究竟是什么,是#秒的响应时间,还是#&小时的响应时间,一般来说,需求越量
化,其终终系统就越成功,测试也就越简单。如果没有对需求规格说明达成一致的意见,要进行开发是很困难的,而要进行合理的测试则更困难。需求规格说明的质量往往与编写者是否知道该如何撰写需求以及他们是否熟悉标准有关。需求规格说明的质量还是开发机构成熟度水平的重要标志之一。
需求验证审查单
对需求进行验证测试,就是要找出那些可能是问题的地方,搞清楚它们是否完整、连贯、合理、可实现、可追踪,从测试的角度看可度量。
通用需求验证审查单一般包括以下几方面的内容:
(1)完整性
每一条款必须详细说明所列问题的解决方案。
(2)准确、清楚
每一条款只有一种解释并且容易理解。
(3)前后一致
规格说明中的前后条款不能自相矛盾。
(4)相关性
每一条款都与问题和其终终解决方案关联。
(5)可测试性
项目开发及验收测试期间,能确定该项目是否得到满足。
(6)可跟踪性
每一条款都能追踪到它的起源。
(7)可行性
每一条款在规定的时间和开销下,在现有的人力和物力支持下,都可以实现。
通过对需求进行验证测试,可以为确认测试以及变更谈判打下良好的基础。同时,需求验证最有可能为软件开发节省成本,它可以检测出许多的缺陷。事实上,&)*以上的缺陷实际上都是在需求阶段引入的,如果这些不足进入开发周期的后期,那时再纠正的代价就太大了。