但是我所说的重复相同的测试指的是什么呢?我们知道,没有测试是可以精确的重复执行,就好像你不能精确的沿着你的足迹往回走,你可以很接近,但你总会有一点偏移。重复执行一个测试是否意味你第二次执行一个测试时,你要确保日光以同样的角度照射在你的鼠标上?可能,别以为这只是一个玩笑,我确实碰到过一个由日光照射在鼠标内的光学传感器触发的错误。所以你是不可能确保什么因素会影响一个测试,然而,当你测试时,你有一个确定的目标和对系统确定的预测,你就很可能可以针对目标和预测通过考虑以下方面:A)你知道的和B)你关心的和C)不是太昂贵的来重复测试。这并不是什么很难处理的问题。
因此,我所说的重复测试是指一个测试包含了在其它的测试中已经确定的元素。重复测试就是重复之前测试某些方面。以雷区分析的理论解释就是:最好尝试你没有做过的东西,然后重复你已经做过的东西。
如果你不同意这种想法,或同意,请做更深入的阅读。因为这种分析过于简单化!事实上,即使多元化的测试是很重要和强大的,即使是反对重复测试的理由一般情况下是有效的,我还是知道10种例外情况。以下是10个具体的理由,关于在某些特殊的情况下,重复测试并不是不合理的,相反,它可能相当重要。
出于技术原因,你可能需要理性的重复测试…
1. 再充电:当存在一个新的问题或一个旧问题的重复出现,可以通过现有的具体测试发现的明确可能性,或如果一个旧测试应用到一个新代码基础的时候。这就包括重新执行一个测试以确保问题已经修复,或者一个接一个地在较早期的版本上重复一个测试,因为你希望知道一个具体的问题或行为在什么时候出现的。这也包括对一个安装在新操作系统的,相同的软件上重新执行一个旧测试。换言之,在被测试的技术发生变化时,一个旧测试可以\"再充电\"。注意,再充电的作用并不一定意味着你应该执行相同的旧测试,无理性的这样做不必要的。
2. 间断:当可能因为一些你无法控制的相关重要变量,你怀疑正确的执行一个测试能否确保发现一个错误的时候。对于你来,执行一个测试,严格来说是和你以前已经执行过的,相同的一个测试,可能会找到之前已经存在,但直到无法控制的变量以某种方式起作用才可以发现的错误。这和一个赌徒在第一次失败后,还继续在老虎机上赌是一样的道理。
3. 重试:当你不确定一个测试在其它的时候是否被正确的执行时,这种情况的一种处理方法就是让几个测试员沿着同样的测试说明执行测试,检查他们是否得到相同的结果。
4. 改变:当你修改了一个测试中的重要部分,但同时保持其它部分不变时,即使这个测试的一部分元素是保持不变的,但对整个测试来说,它是新的,并且可能会引发新的行为。之所以会对一个测试作改变,那是因为虽然之前的测试涵盖了某些方面,但涵盖的范围还不足够。一个常见的修改测试形式就是以同样的方式操作产品,但过程中采用不同的测试数据。区分改变,间断,和重试的关键就是在改变测试时,你可以直接控制改变,改变是有目的性的,间断是偶然事件的附带结果,并且因为偶然元素才会重试一个测试。
5. 基准:当重复的测试包含一个绩效标准时,这个标准的值是与相同测试之前的执行情况比较得出的。当历史测试数据被用作预期结果,那你得保证你执行的测试历史数据有可比性。掌握测试常量未必是使结果可比的唯一途径,但它可能最好的选择。
出于商业原因,你可能会理性地重复测试…
6. 便宜的:当重复测试有一定的价值,并且以一个新的,不同的测试相比,是十分便宜的时,但,这些测试可能不能确保产品的质量。
7. 重要性:当可以通过重复测试发生的问题可能比其它检测出来的问题更重要时,产品行为的重要性不一定是均衡分布的,有时一个特殊的问题只因影响重要用户一次就可能被认为难以接受的(\"决不允许再次发生\"的情况)。这并不意味着你要执行完全相同的测试,只要重复的测试包含可检测出问题的足够相似的元素就可以了(查看改变部分)。注意,不要混淆问题的重要性和测试的重要性。一个测试,即使它检测出来的问题不是很重要的,但因为许多原因它也可能是重要的。同样,为了查找一个重要的错误而花费过多的精力在一个测试上,而忽略了其它同样可以,或更利于检测出那种问题的测试,这样的错误不要犯。
8. 充分性:当你重复的测试代表唯一值得重复的测试。这和病毒检测原理相似:可能对一个普通用户来说,一个重复的病毒扫描就足够了,持续变化的病毒测试则并不必要。然而,我们可能对重复的测试引入某些改变,因为我们不知道哪些测试真正值得重复的,或者说我们通过重复测试不能得到充分测试的效果。
9. 被授权的:当根据合同规定,管理法令或规则,你必须执行完全相同的测试,然而,即使在这些情况下,往往只执行授权的测试并不必要,你可以执行新的测试而不违法规则。
10. 不重视/避免:当“测试”因一些原因而不是为了查找错误被执行时,例如,培训,演示(例如,你非常希望能通过的演示给用户看的验收测试),或把系统置于某个阶段。如果你执行测试目的之一是避免缺陷,那么改变的主要论据就不成立了。
通过与测试课程的学生和同事近百小时的辩论,我收集了上述原因。我的很多同事都喜欢这些原因的其它表达方式和分类方法,我这样表达和分类并没特殊的原因(除了其它的一些分类方式会有很长的列表,并且列表中会出现非常相似的项),重要的是,当我听到一个原因,它与我之前听到的那些不同。我就会添加这个原因到列表中,我在1997开始添加了头两个原因,第10个原因则是在2004年添加的。
延伸阅读
文章来源于领测软件测试网 https://www.ltesting.net/