偶然的机会听到“猴子测试”这个名词,感觉很有意思,查找相关资料,看了一番

  所谓的猴子测试,即搞怪测试(Monkey Test),在软件测试中?测试者可以进行各种稀奇古怪的操作模式,用以测试软件的稳定度。

  所谓猴子测试,通俗来讲是一种系统对信号因子输入稳健性的测试方法。一般用于计算机软件程序这样的逻辑严密性要求高的系统。

  猴子测试这个名字来源于“无限猴子定理”:即“让一只猴子一直在打字机上按键,终能完成莎士比亚的全部工作。”意思是呆子按照上面做都不会出错,比如你做出来的作业指导书随便找个没有经验的人,只要按照上面做不会出错。

  猴子测试之所以会广泛用于软件BUG测试,是因为系统的“可重复性”以及系统输入因子“有限性”和“单纯性”。

  通常情况下,复杂的测试会比简单的测试找到更多的bug。但是大部分的自动化测试都是简单的。我们期待一个输入后得到一个输出,然后程序回到一个已知的基本状态,然后我们再去执行另外一个简单的测试。我们设计测试用例一般都是按照一定的逻辑顺序,是经过深思熟虑的,但是这样的测试仍然是简单的测试。当我们回到程序的基本状态,则丢弃了前面测试的“历史”。而真正的用户不会这样操作,他们把一系列简单的动作串起来,形成一个复杂的动作流。

  我们的简单测试不会模拟那些用户行为。因此如果一个简单的动作引起了另外一个动作的失败,我们的简单测试不会找到那个bug…因此,我们需要使用复杂序列的、以前未使用过的测试,在这方面猴子比人更有效。

  猴子测试是百般刁难,乱按一通,系?也不能宕机或者数据出现差错,这样才能称得上是经得起考验的程序。

  那什么时候使用猴子测试呢?

  一般在产品周期的后半段,当我们在想我们已经找到了所有的可恶的bug时,猴子测试能帮助我们提高信心。运行猴子测试几天的时间而没有引起错误能让我们从另外一个角度来判断程序的稳定性。

  我们不难发现猴子测试和随机测试有一定的相关性。但二者还是有一定的区别的。

  猴子测试:它针对的不是功能点,而是业务流程。功能点好测,它是明确的。而业务流程难测,他是随机组合的,一切有可能出现的操作,都是一个测试的流程。而 我们用例,大部分是正常的业务流程,而异常测试有不可能把所有的流程测到,所以出现了猴子测试的概念,是说,你把自己看成白痴,随便乱点,没有任何主观 想法参与进来,让一些想不到的操作呈现出错误来。

  随机测试:让测试人员充分发挥自己想象的去测试,它没有用例的制约,主要是在测试感觉不充分的情况下应用。其实即使我们没有增加这个测试阶段,我们也一直在做随即测试,因为一个用例不可能完全准确的涵盖功能点,也不可能充分指出所有测试方法和可能的情况,所以想到了测试了,是这么一种感觉吧。

  在我们的测试过程中,我们可以分成若干层层来进行测试:执行自己设计的测试用例;进行猴子测试;进行随机测试,此外,还可以加入其他不同的测试方式,每一种方式都有其不同的侧重点,经过层层测试后,我们对我们的软件、程序更有信心~~