测试人员在执行测试之前需要制定测试计划,在制定测试计划之前需要明确测试策略。结合项目目标和软件质量要求的测试策略可以帮助测试人员制定出合理的测试计划,更好地完成测试任务。
测试策略可以基于测试级别、测试阶段、测试方法来制定,也可以基于测试技术来制定。这里介绍下著名的软件测试专家Myers指出的基于测试技术的测试策略。
Myers给出的测试策略内容如下:
边界值分析
在任何情况下都要使用边界值分析方法。
Myers认为使用边界值分析方法设计的测试用例能有效地发现软件代码的缺陷,所以无论是黑盒测试还是白盒测试,当某个功能的输入数据存在边界值时都应该使用边界值分析方法。
等价类划分
等价类划分方法是对边界值分析方法的有效补充。
边界值分析方法只是聚焦在容易出错的边界值附近,而等价类划分可以将输入数据按照其范围划分成多个有效等价类和无效等价类,可以更大范围覆盖输入条件,使得测试更充分。
因果图法
如果软件某些功能的输入数据/条件存在多种组合情况,则一开始就可选用因果图法。
因果图是非常好用的适用于多条件组合输入数据场景下设计测试用例的方法。
错误推测法
错误推测法可以帮助追加一些比较特殊、不易直接推理出来的测试用例。
测试人员根据自己的经验,通过分析软件可能出现的Bug来设计测试用例,是常规测试设计的有效补充。
测试覆盖率
对照程序逻辑来审查已有测试用例的逻辑覆盖程度。如果没有达到要求的覆盖率,则应当再增加一些测试用例。
很多军用软件对于测试覆盖率都有明确的要求,比如代码、分支覆盖率100%。测试人员应当注意分析测试覆盖率是否满足相应要求,如果与覆盖率要求有差距,应当补充测试用例,在有限的测试周期内追加测试,尽力满足覆盖率要求。
单元测试不可少
尽管用户更倾向于基于程序规格说明的功能测试,但是白盒测试能发现潜在的逻辑错误,而这种错误往往是功能测试发现不了的。
作为白盒测试的单元测试,一直被很多军用软件开发者所忽略——因为他们没有系统地进行单元测试,只是进行了功能测试为主的配置项/系统测试,通常就能够完成软件交付。但这并不是不做单元测试的理由。配置项/系统测试很难发现单元测试能够发现的逻辑错误,如果不做单元测试,这样的逻辑错误一旦在软件参加系统联试或者外场试验时爆发出来,那会给查找Bug原因,定位Bug位置,修复缺陷等带来麻烦,项目组将为此付出高昂的代价。
Myers的测试策略要求测试必须采用边界值分析方法,常用等价类划分,适时选择因果图法,错误推测作为补充,尽量争取高测试覆盖率,单元测试不能任性裁剪。
这套测试策略望测试人员借鉴。
这正是:
专家测试待如何,不同技术慎选择
追求较高覆盖率,单元测试不可缺
参考书目:全程软件测试,作者: 朱少民,出版社: 电子工业出版社
联系客服