非功能性测试更要做好的几件事
相较于功能测试,非功能性测试更加困难。
所以非功能性测试更应该做好以下几件事:
需求的定义和确认
非功能性需求很难像功能需求那样定义非常清楚。比如用户可能会要求“软件要好用”,但是通常却没有一个量化的指标来表征满足什么样的条件才叫“好用”。对于测试来说,如果没有一个量化的指标,它就很难完成这样需求的验证和确认。
所以,对于非功能性需求,在需求获取和定义的时候需要开发人员和测试人员付出更多的努力去挖掘出可以量化的指标。他们需要和不同的利益相关方进行交流,对他们的期望进行统计、分析、整理、平衡;他们需要使用原型法、问卷调查法等多种有效的方法来挖掘出用户真正的需求。
在评审非功能性需求的时候,更要注意需求是否满足以下几个特性:
正确性:需求是否正确描述了用户的要求和期望。
明确性:需求是否明确的,无二义性的。
完备性:需求是否包含了所有的用户要求和期望。
一致性:在产品内部或在不同产品之间是否存在相互矛盾或容易引起误解的需求描述。
优先级:是否明确了需求实现的优先级。
可测试性:需求是否可以通过测试用例进行验证,并且测试的输出可以进行明确的判断。
可修改性:需求的结构是否清晰,修改需求是否比较容易。
可跟踪性:每个需求是否都有一个明确的标识,便于跟踪。
测试资源准备
对于一些非功能性需求的测试,可能需要独特的测试设备或者远比功能测试更为强大的测试设备。
比如,对于一些信息化系统的压力测试,可能就需要一个功能强大的服务器支持;对于执行易用性测试,常常需要建立专用实验室或使用调查表进行广泛地调查。
所以对于这些特殊的测试资源要事先做好计划,并进行风险管理,确保相应的非功能性测试不会受到影响。
测试计划
测试人员在制定测试计划的时候要考虑到非功能性测试的复杂性、不确定性的困难,给测试安排出一个合理的测试周期,同时也要做好资源计划和风险管理计划。
人员能力
非功能性测试可能会对测试人员提出较高的能力需求。比如,易用性测试可能需要测试人员具有相应的测试经验;一些使用特殊设备才能完成的非功能性测试,需要测试人员具备使用这些特殊设备的能力。
所以在进行测试策划的阶段,就要考虑测试人员的能力是否满足测试的要求。
总之非功能性测试相较于功能性测试更加困难,它对测试人员提出了更高的要求。
这正是:
非功能测不好做,定义困难居首个
资源计划要求高,人员水平还要好
参考书目:软件测试管理,作者:郑文强,马均飞,出版社:电子工业出版社