从测试的可证明性到如何评估用例的有效性

上一篇 / 下一篇  2020-09-29 22:26:38 / 个人分类:测试杂谈

如果将测试用例的执行比作某次科学试验,那么就这方面来说,测试用例的严谨程度要比科学实验差得太远太远,根本无法与之相提并论。用例产生过程的不严谨性才是测试被质疑的重要原因。因此测试用例需要有一套可信的生成过程。

首先面临的难题是测试用例的业务相关性问题,由于业务领域的差异,这部分没有很好的解决办法,只能靠长期的经验积累。这也是为什么经验丰富的测试老兵所设计的用例考虑周全的主要原因,特别是错误推测相关的测试设计那都是一个一个坑踩出来的,甚至可以做到根据需求设计的逻辑提前推测出什么样的组合必定会出问题。另外测试也不是一个人在战斗,积极主动地和产品经理讨论用户场景,和研发讨论架构和设计都是对业务理解的有益的补充。

其次是要熟练掌握结构化的测试设计方法,好的测试设计方法可以一定程度上保证测试新手产出的用例有一定的质量保证。这方面启发式测试策略是一个很好的参考。启发式测试策略基本上可以直接拿来当模板,也可以在积累了经验的基础上修改定制——启发式测试策略是测试专家James Bach提出的一组帮助测试设计的一个结构化的、可定制的参考指南,从测试技术、产品元素、项目过程、质量标准等多个角度启发测试设计。它也是层次化的,顶层元素(质量标准、项目环境、产品元素、测试技术)可以进一步分解(具体内容大家可以自行百度)。这个策略的核心思想是被测系统以外的因素往往决定着测试工作的成败。

最后是用例的验收,就像代码一样需要有一个“测试”过程,即验证测试用例的有效性。通常用例被设计出来以后,除了review一下(有时连review都没有),基本上没有有效的评估手段。我们希望除了用例review的静态测试手段外,也可以用动态测试的方式测试用例。这种方法就是——变异测试,它是一种衡量测试用例有效性的方法,首先通过变异算法生成一系列的程序变异体,其次通过一组用例衡量变异体的有效性(不符合的变异体不会进入到后面的环节),然后在变异体上执行用例并观察用例是否能够杀死变异,最后如果没有杀死所有的变异则需要补充用例。

这样做基本上能做到用例的正确性了,但是有个问题需要引起注意:我们现在的逻辑是代码验证用例,用例验证代码。如果两者都有错怎么办呢?这里有个可怕的自旋,会坠入深渊而不自知。幸好我们的产品都是给客户使用的,客户是公平的第三方,客户的反馈起到了一个很好的修正和拉升作用,要重视客户的反馈,确保这个螺旋是上升的而不是下坠的。


TAG: 用例 评估 有效性

 

评分:0

我来说两句

我的栏目

日历

« 2024-03-28  
     12
3456789
10111213141516
17181920212223
24252627282930
31      

数据统计

  • 访问量: 2897
  • 日志数: 5
  • 建立时间: 2020-04-19
  • 更新时间: 2020-09-29

RSS订阅

Open Toolbar