避免做无意义的测试

测试往往在做无用功,明明花了很多时间,却没有达到预期的测试效果,其中的原因除了以前说到的有太多重复的测试之外,还有就是执行了很多无意义的测试,那怎么样的测试是无意义的测试呢?

先来说一下为什么要做冒烟测试:冒烟测试目的是确认软件基本功能正常,可以进行后续的正式测试工作。如果冒烟测试不通过,那么就不需要进行后续的测试工作了,聪明的你是否有所启发了呢?

把思维拓展开出来,当某个重要模块发现了较为严重的bug,那么就可以停止与其有联系的相关模块测试。这些的共通点在于,没必要在有问题的地方浪费时间,因为无论后续相关的测试正常与否,都无法证明有没有问题,那么这样测试还有什么意义呢?

避免做无意义的测试

也许有些人还一头雾水,那么下面举个例子来说明一下吧:

有一个公共接口x,模块A,B,C都需要调用这个接口,然后转化成自己模块需要的数据,当测试A模块的时候发现接口x有bug,那么测试B、C模块调用该接口的功能就成了无意义的测试。可以预期的是B、C模块相关功能肯定都会有问题。

那么问题来了,如何确认该问题是接口x导致的,还是B、C模块本身也有问题呢?再退一步来说,就算通过抓包或者其他方法确认了仅仅是接口x导致的,B、C模块相关功能本身并没有问题,当接口x被修复之后,B、C模块的相关功能是否还需要再测试一遍呢? 

上面的例子仅仅是一个接口有问题而已,而实际的测试情况可能更加复杂,那么所需要做的无意义测试就更多了,不仅仅如此,常常还会提交重复的bug(即一个问题导致多个地方的bug),提了重复的bug还要做重复的验证,这也是为什么有的人会觉得明明花了很多精力做了很多测试,但就是达不到测试的效果,天天加班还总觉得测试时间不够,其实归根结底还是做了太多的无用测试。

虽然说起来很轻松,但真要做到却不是那么容易的,就拿上一个例子来说,首先必须了解程序的架构,模块与接口相互的调用关系,知道接口被哪些模块调用;其次还要会定位问题,如何在测试模块A的时候定位到是接口x的问题导致的bug;最后还要会分析,模块B、C中哪些功能涉及到接口x,哪些功能不受影响可以继续测试。只有这样才能让测试变得更有效率,所以定位bug,学会分析思考也是我之后的文章中要继续介绍的。

总之:

很多测试技巧其实通过实际的例子来讲是最好的,能让人更容易理解技巧的运用对于测试效率能提高多少。但例子并不好找,测试的项目各种各样,如何找到大多数人能碰到的情况更是难上加难。所以只能凭借自己的理解尽量找通常会遇到的,目的也仅在于抛砖引玉。



留言