(一)使用猴子测试工具

发表于:2007-11-26 14:10

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:陈能技    来源:陈能技的博客

        对于“猴子”测试工具的有效性,我们有着两种矛盾的观点。Boris Beizer 在《黑盒测试》中表示测试“猴子”对于今天的“专业构建”的软件而言不是很有用。他的分析结论说:使用好的测试方法会比“狂敲键盘”(也叫“拉克曼尼诺夫测试”)找到更多的bug。但是James Tierney,微软的前测试主管,在一个内部的演讲中透露:一些微软的开发组在他们的项目中使用“猴子”测试工具找到了10%到20%的bug。
 
        那一种对“猴子”测试的评价是正确的呢?也许两者都对。
 
        没有一种通用的测试工具可以找到任何软件中的所有bug。每一个工具都有自己的作用,某些工具在某些项目会更有用些,或者在项目周期中的某个特定环节会更有用些。“测试猴子”也不例外。聪明地使用他们,那么你就会找到一条发现bug的有效而低廉的渠道。不注意地使用它们,或者完全不使用它们,那么你很可能会发布一个充满bug的产品。在这篇文章中,我们将会看看“猴子”测试工具,仔细地分析和研究我经常使用的几类“猴子”,并提供指引,让你能做出明智的选择。
 
(注:“拉克曼尼诺夫测试”是指像拉克曼尼诺夫在钢琴演奏时疯狂地按键盘一样地测试。)
 
测试猴子的家族

        本文使用“猴子”这个术语来泛指任何形式的,不需要任何人工干预的,随机进行的自动化测试。把这种类型的工具称之为“猴子”,主要来源于下面这个流行的格言的变种:

        6个猴子随机地敲击6台打字机,持续100万年的时间,就能重新创作出艾萨克·阿西莫夫的所有作品。

(注:萨克·艾西摩夫(isaac asimov)是近代科学幻想小说中的巨擘,也是举世知名的科学普及作家,他花了29年的时间写出了一系列史诗般的科幻小说,例如基地系列。)

        有些人觉得“猴子”这个名字更吸引人,但是有些人则更喜欢听起来更富技术性的“随机”测试。不管怎样,关键的元素是:

        “猴子”不管人如何使用产品。它不知道,例如,怎样构建一个Web页面或者创建一个分期偿还的计算表格。

        “猴子”能随机地从一个大范围的输入中选择某些输入进行测试,对于某些应用程序可能创建所有可能的输入。

        我们将考虑两种类型的“猴子”:聪明猴子和笨猴子。聪明猴子拥有一定的知识,知道如何访问被测试产品的用户界面。它们在基本的功能层次上知道什么是可以做的,更重要的是,它们知道当进行这些操作时应该会出现什么情况。例如,他们可能知道选择“文件”菜单的“新建”项来创建一个新的文档,它们知道新建的文档会在新的窗口展示出来,窗口可以通过类名和文本来定位。如果没有出现新的窗口,或者窗口的标题或类名不对,“猴子”能识别出问题并报告一个BUG。

        聪明猴子通常从一个状态表或者模型获取到关于产品的知识。通过随机地遍历这个状态模型,它们选择对于当前状态有效的选项,从一个状态转移到另外一个状态,然后验证到达了下一个期待的状态。如果模型包括错误处理状态的话,你还可以添加非法的输入到“猴子”的指令表。

《2023软件测试行业现状调查报告》独家发布~

精彩评论

  • ykmeishan
    2007-12-05 10:02:52

    とても面白いだよ。

  • dqar
    2007-12-04 17:10:08

    有意思

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号