结对编程(Pair Programming)是一个非常简单和直观的概念:两位程序员坐在同一台电脑前合作完成同一段代码。两个程序员具有相同的缺点和盲点的可能性很小,所以结对编程会获得一个更优的解决方案。类似的,结对测试(Pair Testing)能不能让两个测试人员结对呢?工作经验、教育经历、看问题的角度、思维方式的差异肯定能让我们在测试同一份测试样品的时候,取长弥短、优势互补,减少测试遗漏。
如果结对测试,那么我们应该怎么做呢?
两个测试人员使用同一台电脑,大家肯定都反对。测试人员数量不足,使用同一台机器反而降低效率。
但必须做到的很核心的一点,两个人共同负责同样模块的测试,当harvest包打到测试阶段的时候,两个人同时在各自的机器上按自己的想法进行测试,一个测试人员发现问题后必须和另一位测试人员进行有效的交流沟通。两个人都测试通过后,共同出具测试报告。
结对测试---也未必一定是两个人,多个测试人员合作共同测试的时候我们就称之为结队测试(Mutiple Testing)吧---会带来什么优势呢?
测试人员都是很敏感的,在自己执行测试的时候,程序稍有一点反常,都会意识到可能是缺陷,一定会去究根追底,去确认到底是缺陷还是操作问题引起的。当测试人员互相交流发现的缺陷的时候,可能会互相启发去发现更多的缺陷。一个测试人员发现了一个缺陷,另一位测试人员可能发现和这个缺陷类似的更多缺陷。
帮助测试人员熟悉更多的业务。结对测试前两个测试人员可能分别熟悉SCM、SRM模块,结对后就需要都熟悉这两个模块了。表面上需要熟悉的业务多了,事实上两个测试人员测试,比一个人单独测试要省一半的时间,而且效果更好。对业务的熟悉,可以让我们更好的执行测试。
避免测试疲劳现象。两个人搭配进行结对测试,可以共同克服遇到的困难,分享发现缺陷的成就感,工作会变得更加有趣,也会更有效率。
有利于工作量的平均分配。一个测试人员测试一个模块时,有时候测试任务比较少,有时候测试任务比较多。两个测试人员测试两个模块,这两个模块任务都比较多的概率是很小的,当一个模块测试任务比较多,另一个比较少的时候,这两位测试任务的工作压力就没有结对前那么大了。