什么是猴子测试(Monkey Testing)?

猴子测试(英文:Monkey Testing),怎么会有测试方法以“猴子”来命名呢?

这个猴子其实不是指一般的动物,而是在引用无限猴子定理。这个定理是概率论中的 柯尔莫哥洛夫的零一律 的其中一个命题的例子:

如果让一只猴子在打字机上随机地进行按键,如果一直不停的这样按下去,只要时间达到无穷时,这只猴子就几乎必然可以打出任何给定的文字,甚至是《莎士比亚全集》也可以打出来。

猴子测试

当然,在猴子打出《莎士比亚全集》之前,它在打字机上胡乱按键的次数就已经是个天文数字了。

猴子测试”就是模拟出那个胡乱操作,按按钮不分逻辑的猴子在使用软件的情况。这个测试的本质就是穷举法——假设使用软件的对象就是这一只猴子,它不间断地进行不合理的操作,随意地生成各种事件让软件处理。如果在这百般刁难下软件依旧在稳定、合理地运行,那么我们就可以说它通过了测试,是合格产品。

大多数情况下,这项技术是可以自动完成的,用户输入任何随机无效输入并检查响应结果。它没有规则,也不遵循任何预定义的测试用例或策略,因而是靠测试者的直觉和心情的。很多时候,这种技术是自动化的,或者应该说你可以编写能产生随机输入的程序或脚本,将其输入到被测的应用程序中并分析行为。

何时执行猴子测试?

因为Monkey testing输入随机,因此发现问题后,大多数情况下不容易复现问题。因此,应该在软件测试的后期进行。 如果使用程序或脚本来生成随机输入,分析或复现问题会变得容易得多。

分清“Monkey testing”和“Android Monkey testing”的区别:

Android Monkey 是Google开发的用于安卓app稳定性测试的工具。日常在沟通表达时,经常会省略掉“Android”一词,直接称为“Monkey测试”、“Monkey testing”、“Monkey test”或“猴子测试”。 久而久之,很多人看到“Monkey testing”,直接想到的是用Android Monkey这款工具进行测试。 但事实上,这容易引起概念混淆。

相关文章:
1、adb与monkey,轻松入门实践  
2、Monkey测试真的靠谱吗?



我的回答