第三计-借刀杀人
【释义】
敌人的情况已经明了,友方的态度尚未确定。利用友方的力量去消灭敌人,自己不需要付出什么力量
如何才能降低测试成本呢,这是每个测试管理者最大的问题。在传统测试过程中,一般是开发将代码开发完毕后,移交给测试人员进行测试。一般开发人员会进行单元测试和集成测试。
然而,在现在敏捷开发的过程中,开发人员也必须进行一些功能测试,尤其是自动化测试的大量引入,很多人都觉得开发人员必将取代测试人员的角色,从而使得测试人员这个角色逐渐的消亡。
其实这是一个很片面的想法。在敏捷开发过程中,测试角色不是被削弱或者是被取代,而是更加的被强化,测试驱动开发测试敏捷开发的真髓。
在测试驱动开发的敏捷开发过程中,测试人员和开发人员同时对user story进行分析,开发人员根据其进行代码实现,而测试人员是通过书写相关的测试场景来验证开发人员实现的质量。
也就是说,测试人员不再是去根据需求和设计文档在后期进行代码实现度的验证,而是转变为依据或者是贴合最终用户来控制开发的方向和质量。
验证标准也从了是否完成了预期的设计变成了是否满足了用户的需求。
所以,借刀杀人已经成为普遍的开发策略。核心的想法就是,开发人员在做完常规的单元测试和模块测试之后,必须依据测试用例对代码进行功能测试,只有那些完成了p1&p2测试用例的代码,才会提交给测试人员进行测试。
这样的好处是:
1、在开发阶段就能评审代码是否符合用户需求,这是敏捷的灵魂。
2、在测试阶段减少大量因为P1&P2导致的等待时间和重复测试率。
3、开发测试的用例可以是手工测试用例或者自动化测试脚本,这样的话加强了测试人员和开发人员的交互,不再是单纯的质量保证,而是主动质量控制。
所以,借刀杀人的最大核心就是,那些测试用例需要开发人员来执行。这就是测试用例要分层的原因所在,只有分层的测试用例,才能很简单的提取一个测试集合用来执行借刀杀人这个计谋。
第四计-以逸待劳
【释义】
意谓困敌可用积极防御,逐渐消耗敌人的有生力量,使之由强变弱,而我因势利导又可使自己变被动为主动,不一定要用直接进攻的方法,同样可以制胜。
在测试过程中,以逸待劳是对测试计划的一个有力的支撑。
我们在指定测试计划时,就需要根据具体的测试范围,测试资源,测试进度表等进行高效率的设定。
那些需要重点测试, 那些需要回归,那些需要特殊的工具,那些需要特殊的数据集,那些需要特殊的测试环境,测试对象的前后依赖性,开发的进度等等都是影响我们制定测试计划的各种重要因素。
通过测试计划的制定,我们能够在开发阶段有条不紊的进行测试的准备,从而达到并发的执行效率,而不是传统测试中,只有一个简单的时间线,所有的测试都是在要执行之前,才进行更详细的分析。
而以逸待劳就是敏捷测试的另一个优点,在你根据user story进行测试场景的设计时,就已经按照执行时如何更加有效的利用资源进行设计了,而不是传统的那种只是针对use case中包含的单一功能区域进行场景设计。
以逸待劳的核心就是提前准备而不是需要时才动手。基本上减去了测试人员在测试用例开发完毕后等待代码前这段无所事事的idle time。