分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow
也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!
使用猴子测试工具(2)
陈能技
2007-11-25
原文:Using Monkey Test Tools –How to find bugs cost-effectively through random testing(Noel Nyman)
测试猴子的家族
本文使用“猴子”这个术语来泛指任何形式的,不需要任何人工干预的,随机进行的自动化测试。把这种类型的工具称之为“猴子”,主要来源于下面这个流行的格言的变种:
6个猴子随机地敲击6台打字机,持续100万年的时间,就能重新创作出艾萨克·阿西莫夫的所有作品。
(注:萨克·艾西摩夫(isaac asimov)是近代科学幻想小说中的巨擘,也是举世知名的科学普及作家,他花了29年的时间写出了一系列史诗般的科幻小说,例如基地系列。)
有些人觉得“猴子”这个名字更吸引人,但是有些人则更喜欢听起来更富技术性的“随机”测试。不管怎样,关键的元素是:
l “猴子”不管人如何使用产品。它不知道,例如,怎样构建一个Web页面或者创建一个分期偿还的计算表格。
l “猴子”能随机地从一个大范围的输入中选择某些输入进行测试,对于某些应用程序可能创建所有可能的输入。
我们将考虑两种类型的“猴子”:聪明猴子和笨猴子。聪明猴子拥有一定的知识,知道如何访问被测试产品的用户界面。它们在基本的功能层次上知道什么是可以做的,更重要的是,它们知道当进行这些操作时应该会出现什么情况。例如,他们可能知道选择“文件”菜单的“新建”项来创建一个新的文档,它们知道新建的文档会在新的窗口展示出来,窗口可以通过类名和文本来定位。如果没有出现新的窗口,或者窗口的标题或类名不对,“猴子”能识别出问题并报告一个BUG。
聪明猴子通常从一个状态表或者模型获取到关于产品的知识。通过随机地遍历这个状态模型,它们选择对于当前状态有效的选项,从一个状态转移到另外一个状态,然后验证到达了下一个期待的状态。如果模型包括错误处理状态的话,你还可以添加非法的输入到“猴子”的指令表。