一旦非功能性需求确定下来,就需要注意进度和资源需求。这是非常关键的,因为在同一个项目中,大多数非功能性测试与功能性测试有着天壤之别。下面举出一些需要认真计划的事情:
——压力测试和性能测试所需的硬件资源
——为容量测试的时间需求做安排
——在原型上实施可用性测试
——对这些测试进行排序
尽管相对于功能性测试,非功能性测试所需要的测试用例数量会比较少,但是它所需要付出的努力却是相当的。
测试需求:
这一阶段的目的是按照测试计划中的说明使测试策略变得更加精细,并且要确定测试用例、测试启动和测试软件需求。以上的以及其他任何需求要在这个阶段得到确定。在性能和载入测试中通常会需要采用自动化和特殊工具。有时,配置测试和载入测试会需要特殊的启动必要条件,此时也要被确定。同时还要确定的是用户概貌以及与之匹配的用于可用性测试的主题。另外,产品需求中支持非功能性测试的需求也要确定,这包括设备、在特定点的时间测量以及确认的钝化等等。
在SCWiLL的调用启动时间的例子中,调用启动的初始化消息和完成消息上的时间差异需要测量。该调用启动时间的长短决定于多个需要确定的因素。例如:
——系统当前负载。
——RAM可用性,这是决定启动的必要条件。
——测量点。它们可以位于系统边界的内部或者外部,并决定了是否用控制进出时机的工具来构建一个特殊系统。假设测量点位于系统外部,那么构建该特殊系统的必要前提是需要一个发送源以及接受并确认启动完成消息的工具。这个工具将会发出很多这样的消息来测量响应时间。
测试软件开发:
载入测试,以及容量测试和压力测试通常是不可能用手动执行。因此,必须使用自动操作脚本。在很多情况下,它是实施功能性测试所需脚本的一个扩展。此外,临时开发工具的需求在性能和压力测试中也可能存在。
谈到调用启动时间的需求,为生成载入标准以及测量启动时间所需要的工具和脚本需要在该阶段开发。
测试执行
与功能性测试的执行相比,非功能性测试的最大的不同之处在于准备时间比起实际运行时间来要长的多。例如压力和性能测试的启动以及可用性测试的准备工作。另外,在容量测试中,测试可能会不间断的运行。
某些情况下,非功能性测试需要构建一个特殊的软件。比如需要使用设备或者测试中某个确认需要钝化。这种情况的话,就需要通过检查或者分析来确定这种变化不会对系统其他行为造成任何影响。
对于调用启动时间需求的测试,测试工具将在各种各样的载入条件下运行,不同启动和测量结果将被记录下来。
测试报告
及时报告非功能性测试的缺陷是必需的,这是因为大多数缺陷都是由设计错误所引起的。很多情况下,开发人员不可能重新开发它们。这就意味着测试人员必须和开发人员至少要紧密协作到把原因搞清楚为止。
调用启动时间测试的测试报告阶段涉及到建立调用启动时间和包括RAM以及载荷在内的任何独立变量之间的关系。假如测量值在任何情况下都不符合需求,那么同样要进入缺陷跟踪系统并被跟踪直到终止。