第五计-趁火打劫
【释义】
本指趁人家失火的时候去抢东西。现比喻乘人之危,捞一把。
趁火打劫基本上大家都已经或多或少的用过了。
在测试过程时,我们经常能发现一个bug之后,然后在周围发现很多bug。这些bug有些是因为原生bug引起的,有些是因为修复bug导致的新bug。
所以趁火打劫的测试思想就是,一旦你发现了一个bug,就要着重的在bug的直接影响功能区域,间接影响功能区域进行更deep的挖掘性测试,从而能够更加有效的获得产品的缺陷。
只有通过趁火打劫,我们才能更加深层次的挖掘出真正的缺陷,如果仅仅是发现一个bug,根据其表象提交之后就置之不理,反正会在后期的过程中出现更大的隐藏缺陷,从而导致整体进度的延迟。
所以,趁火打劫是手段,目的是那些中间过程,临时数据集,被间接调用,或者底层代码的缺陷。
第六计-声东击西
【释义】
此计是运用“坤下兑上”之卦象的象理,喻“敌志乱萃”而造成了错失丛杂、危机四伏的处境,我则要抓住敌人这不能自控的混乱之势,机动灵活地运用时东时西,似打似离,不攻而示它以攻,欲攻而又示之以不攻等战术,进一步造成敌人的错觉,出其不意地一举夺胜。
一般常规的测试数据设计,都是从黑盒角度进行考虑,也就是正向数据集和反向数据集。这样的话,正向数据集是保证的正确的流程和功能。反向数据集是保证了数据验证策略的完整性。
但是,如果仅仅这样,只能说我们还是从正面的效应去考虑产品的特性。
而声东击西,就是要我们不仅仅从应用层去设计测试数据,还要从逻辑层甚至驱动层去设计测试数据。我们不是单单的验证一头一尾的数据完整性,我们还要去主动验证中间数据的有效性。通过直接修改数据来实现这一个效果。
另外,声东击西在性能测试里面也是一个广泛的应用,我们在无法直接测试一个性能点时,通过对他直接影响或者间接影响的功能点进行测试,从而侧面了解该功能点的性能。
最常见的一个示例就是我们无法验证一个用户密码验证过程的性能,但是我们通过大量的有效登录和无效请求的混合用户登录集合,我们能间接的获得验证的效率和瓶颈。
第七计-无中生有
【释义】
运用假象欺骗对方,但并非一假到底,而是让对方把受骗的假象当成真象。
在自动化测试过程中,有时候我们需要测试的模块需要一些未开发完毕的模块的支持,所以需要我们static的提供一些方法或者数据。这种书写测试用的假模块是开发常用的方法。很典型的无中生有的计策应用。
实际上,我们在手工测试中,也可以使用这种计谋,最常见的就是是我们需要一个测试数据时,无法直接获得,那么我们就可以在数据库中直接添加我们的需要的数据。
扩展来看,这种方法在build tesing中最有效。我们现在都是自动code build 然后自动部署,自动测试,并发送一份报告,包含的是一些major path的测试用例的测试结果。从而使得我们对该版本的code有个直接的印象,从而判断是否引入我们的测试环境中。
在这个过程中使用无中生有的方法就是我们会有一个测试数据集存在于一个数据库备份中。当新的build部署完毕后,restore这个backup的db,能够迅速有效的进行测试,而不浪费时间在数据准备上。
总之,这是个应用很广泛的计谋。