摘要:
系统测试不仅包含了对功能性需求的测试,还包含了对非功能性需求的测试,而非功能性需求会涉及到一些诸如性能、可用性、可行性等属性。尽管在大多数项目中,能够对功能性测试进行良好规划,但是对非功能性测试却很难这么做。因此,测试团队需要在测试生命周期的每一个阶段都非常重视非功能性测试。
这篇论文研讨了在测试生命周期的几个不同阶段——测试计划、测试设计、测试执行、测试报告——对非功能性测试需要重点关心什么。
关键词:测试、测试计划、需求、性能、可用性
1、简介
产品质量意味着不止满足客户提出的功能性需求。这才有利于最终用户、客户组织以及开发组织确定并改进诸如性能、可用性、重用性、可行性等非功能性需求。产品的设计和实现应该务必使之能满足特定的非功能性需求。很明显,性能低、可用性低等情况往往会导致系统在提交之后需要重新设计。在MIEL中,作为产品质量实现的初始阶段的一部分,项目在需求阶段变的十分重视非功能性属性。这些写入需求说明书的非功能性需求同样也需要被验证和确定。
一些像可演化性这样的非功能性需求能够通过分析模型来验证,例如SAAM。而另一些像可用性以及性能这样的需求则能够用测试来确定。在这篇论文中,我们将探究系统测试在确定非功能性需求的过程中所扮演的角色。我们为非功能性属性勾画一系列的活动和策略,这些活动和策略在不同的软件测试生命周期(测试计划、测试设计、测试执行、测试报告)中可以被实施。其中,对性能和可用性测试会讨论的更加详细。
在第二部分,我们将讨论软件测试生命周期,而在第三部分,重点是在软件测试生命周期的不同阶段与非功能性测试相关的活动。在第四部分,我们会接触到一些非功能性测试的关键点,而在第五和第六部分,将分别讨论对性能和可用性的测试。
2、软件测试生命周期
PHASE | INPUTS | PROCESS | OUTPUTS |
Test Planning | ReqB, SPMP, SQAP,SCMP | Identify scope, strategy, effort, resources etc.. | SSTP |
Test RequirementSpecification | ReqB, SSTP, Operation profile | Identify test case, test software and setup requirements.Define categories of test to be performed – performance, conformance, stress etc.. | TRS |
Test Case Development | TRS, ReqB/ PSRS | Identify test cases and sequencing. | TCD, TSC |
Test Software Development | TRS, ICD, TCD | Design, code and test the test software. Prepare user manuals | Test software code and documentation |
Test Execution | TCD, TSC | Execute the test cases, document the results, defects and observations | Test Log Reports |
Test Reporting | Test Logs | Analyze the test logs. | TPR, STSR |
Table 1: Phases of software test life cycle