探索式测试是需要探索的测试方法。如果通过隐喻的方式让探索式测试方法理解起来更加直观方便的话,这样应用的难度就会降低。本文参照探索式软件测试(James A.Whittaker著)一书,书中以旅游者要去新的目的地探险隐喻,称为“漫游测试”,来阐述探索式测试的方法,非常的诙谐幽默,大家同样可以参照。

1、先简述下漫游测试:

局部探索式测试:主要将决策分为5部分,分别为输入、状态、代码路径、用户数据和执行环境。

输入:用户输入可能有无穷大,判断合法输入和非法输入,输入筛选器(防止非法输入),输入检查(牢牢抓住错误显示信息),使用异常(异常消息可以给测试非常多的思路),常规输入还是非常规输入(都比较重要),默认输入或用户提供的输入(加强测试并改变测试思路),使用输出指导输入(逆向思考)。

状态:软件接收输入后状态变化,注意累计效应;状态可以临时,也可以长期;状态变化及其关联;输入和状态之间关系相当关键。

代码路径:路径总量非常大;知道程序分支,理解代码走向;分支未测试到即可能有缺陷;

用户数据:真实数据量大;真实数据结构和关系;数据存储可能有问题;注意用户隐私的问题;

执行环境:环境本身就是输入源;新环境下可能失效;提供输入,接收输出;

全局探索式测试:各种测试类型,分别为商业区(测试核心及重要特性)、历史区(测试遗留代码)、旅游区(快速测试各个特性,重在广度)、娱乐区(测试辅助特性)、旅馆区(测试被忽略或次要的特性)和破旧区(破坏软件特性)一共六个部分。

商业区测试类型包括指南测试法(重在文档测试,如各种手册)、卖点测试法(重要销售特性的测试)、地标测试法(关键特性指标测试,隐喻为地标)、极限测试法(提困难/找麻烦测试法)、快递测试法(重在数据的测试)、深夜测试法(夜间各种维护任务等测试)、遍历测试法(A最短路径的所有对象);

历史区测试类型包括恶邻测试法(缺陷横行代码段测试)、博物馆测试法(遗留代码测试)、上一版测试法(向上-向下兼容性测试);

娱乐区测试类型包括配角测试法(测试辅助特性尤其是紧邻主要功能的特性)、深巷测试法(测试最不可能被用到或最不吸引用户的特性)、通宵测试法(长时间测试,不要关闭程序);

旅游区测试类型包括收藏家测试法(最多收集输出)、长路径测试法(A到B的最长路径)、超模测试法(只关注外面/界面)、测一送一测试法(程序不断拷贝);

旅馆区测试类型包括取消测试法(取消操作攻击软件)、懒汉测试法(啥也不干);

破旧区测试类型包括破坏者测试法(操纵环境,破坏程序)、反叛测试法(恶意数据输入,其中反叛测试法引申出逆向测试法--输入最不可能的数据、歹徒测试法--非法输入、错序测试法--错误顺序)、强迫症测试法(重复同样操作);

混合探索式测试:把探索式测试与传统测试场景相结合,有两类,分别是通过场景操作引入变化和通过故事漫游引入操作。

通过场景操作引入变化重在场景变化,主要包括插入步骤、删除步骤、替换步骤、重复步骤、替换数据、替换环境;

通过故事漫游引入操作类似顺路游,在原有基础上调整或改变测试场景,主要包括卖点测试法(加入一个或多个功能,不断探索)、地标测试法(打乱场景地标顺序)、极限测试法(提出困难)、深巷测试法(最不可能或没用到的功能)、强迫症测试法(重复多次)、通宵测试法(不断运行)、破坏测试法(破坏资源调用)、收藏家测试法(不断收藏输出)、超模测试法(关注界面)、配角测试法(测试最近的邻居功能)、取消测试法(取消/启动/停止)、混票测试法(跟随场景);

2、简述下种植测试:

局部探索式测试(类包产到户):主要分为五部分,分别为种子(类用户输入,包括类型、质量、饮食结构、气候、地理位置等)、长势(类状态,包括芽、苗、杆、长高成熟等)、成长路径(类代码路径,包括耕种、浇水、除草、施肥、收获、晾晒、加工等)、成长过程和结果数据(类用户数据,包括种植密度、面积、种类、产量、价格、特性、用途等)、成长环境(类运行环境,包括自然环境、土地环境、政策环境等,主要有阳光、水分、土质、耕作方式、肥料、自然变化等)。

全局探索式测试(类集体劳作):

主粮测试类型(类商业区测试类型):包括水稻、小麦和玉米等作物,是我们种植的主要粮食作物,也是基本的战略农作物。

种植要求测试法(类指南测试法):以文档测试为主,包括经验传授、模仿学习等,按照要求进行种植,包括播种、日常培育、收割、加工等一系列环节。

种植理由测试法(类卖点测试法):以重要特征测试为主,偏对外特性,如营养特性(能量/热量/碳水化合物/维生素等)、销售特性(价格合理/品种多样/老少皆宜/便于携带/利于存储等)、用途特性(应用广泛/产量高/代价小等)等;

关键特性测试法(类地标测试法):以关键特性测试为主,偏对内特性,如成长特性(外观/状态/检测属性等)、作物特性(耐寒/耐汗/盐碱地等)、自然特性(温度/湿度/土壤特性等)、果实特性(能量/热量/碳水化合物/维生素等)、性能特性(产量/品质等、用途特性:人食用/动物食用/回归土地等)。

极限种植测试法(类极限测试法):思路拓展如下,一块地只种1颗种子/N颗种子、集体全部种植某一种类型农作物、浇水(不浇水/吃当浇水/浇水过量)、除草(不除草/经常除草/除草过量)、施肥(不施肥/适当施肥/施肥过量)、喷药(不喷药/适当喷药/喷药过量)、天气(天气很差/天气适当/天气很好)、无土栽培|温室种植|气候复杂地区种植等。

养料水分测试法(类快递测试法):思路拓展如下,N块地/N种作物/N个作物都需要看护、全周期内定期检测成长状况、全周期内不定期维护(施肥/打药/除草/浇水等,记录数据)、记录对比产量/类型/投入产出比等。

清晨黑夜测试法(类深夜测试法):思路拓展如下,清晨/深夜定期检测成长状况、清晨/深夜不定期维护(施肥/打药/除草/浇水等)、记录对比深夜/白天数据情况等

全部访问测试法(类遍历测试法):思路拓展如下,所有作物/所有阶段/所有状态等、遍历维护(施肥/打药/除草/浇水等);

谷物测试类型(类历史区测试类型):包括小米等种植量小的植物,因为我们国家谷物的种植时间很久,另外此类谷物的产量小,耕作困难,相对主粮来说,比较小众,故以此类比。

招鸟测试法(类恶邻测试法):种植小米有几个非常明显的特点,招鸟、假人、招虫、坏东西多、种植收割加工等麻烦、需要加强保护等等;鸟类容易积聚,种子经常被吃,所以会做一些假人来吓唬鸟类;谷子本身种子比较小,抗自然能力比较差,外加上种植收割加工等等比主粮麻烦多了;所以这块的问题经常比较多,需要加强对待耐心保护;

稀罕测试法(类博物馆测试法):特点是易储存、不易坏、便于携带、补充营养、稀罕作物;加强种植维护(施肥/打药/除草/浇水等,保证与主粮待遇一样);

老身测试法(类上一版本测试法):以前怎么种植的,以后也怎么种植,前后都能适配上。

油类蔬菜测试类型(类娱乐区测试类型):主要包括花生、大豆等油类植物和各种蔬菜,因为他们是饮食中的配角,也是种植作物里不可缺少的一部分。

辅料测试法(类配角测试法):辅料必不可少,与主粮一起,构成了美味的饭食;有几个特点(油类、必需品、需要爱护、门面、有时盖过主粮、价格贵、投入大等);

白菜测试法(类深巷测试法):白菜是最不吸引人的东西,但是论营养论性价比也许是各种蔬菜里最好的,最流行和最不流行的一起测试;

长期测试法(类通宵测试法):经常吃同一种油类或者同一种蔬菜;

花草树木测试类型(类旅游区测试类型):目标非常明确,就是游玩,所以以此类比。

标本测试法(类收藏家测试法):珍藏、收藏所有花朵;

满园测试法(类长路径测试法):欣赏满园所有风光,不惜长途跋涉,也要欣赏到所有美景;

花瓶测试法(类超模测试法):只能欣赏外表,不可触摸太多;隐喻界面测试;

一花一木测试法(类测一送一测试法):采花一朵送一个枝叶;隐喻运行多个拷贝程序测试;

薯类测试类型(类旅馆区测试类型):红薯、山药等在日常中经常被忽略或者不重视,其实是日常饮食中必不可少的,甚至在抵御一些疾病时非常重要。红薯在种植的过程中有两个非常明显的特点,作为隐喻再适合不过了。

翻秧测试法(类取消测试法):红薯秧长到一段时间时,必须进行翻秧,这样才能保证营养一直输送到果实那;正如测试中经常进行程序的取消操作,不断的启动/停止;如此隐喻非常适合;

放置测试法(类懒汉测试法):红薯种植还有一个非常重要的特点,就是成长过程中基本不用管它;这就类似于程序运行过程中测试人员尽量少的干预;如此隐喻也非常适合;

高粱青稞测试类型(类破坏测试类型):高粱以前耕作的很多,大多是喂牲口食用,人也可以吃,比较粗糙;青稞是高原地区的一种作物,比较耐寒,产量也比较少;现在的人很少接触这些作物了。

强迫测试法(类破坏者测试法):强迫食用高粱,使得饮食变得更差;强迫软件处理一些更为恶劣的情况;

糟糠测试法(类反叛测试法):也许在极度饥寒的情况下,我们会吃树皮,吃野草,做出一些逆人类的举动,这就是糟糠测试法:我们逆向测试软件、输入非常数据、按照不同顺序输入数据等;

巡回测试法(类强迫症测试法):不断重复地处理事情,如高粱仔磨粉;测试软件对待重复动作时的反应;

混合探索式测试(类两者混合):在传统种植的基础上,做适当的改变和修正。

秧苗种植(类通过场景操作引入变化):插入秧苗(类插入步骤)、荐秧苗(类删除步骤)、换补秧苗(类替换步骤)、重复种苗(类重复步骤)、替换秧苗品种(类替换品种)、替换土地种植(类替换环境)等

种植成长(通过漫游测试引入操作):在原有的种植方式上稍作调整。参考全局探索式测试。

3、总结:

以种植作为隐喻,是比较直观的一种,尤其是亲自在农村呆过的,已经熟悉这些作物及其日常的耕作方式,就会对这些隐喻有更深的理解。在这里也没有贬低那种作物好与不好,只是为了隐喻方便,有些隐喻也未必合理恰当,大家权做拓展测试思路。测试工作本身是极具思考力的,而探索式测试又是测试技术中思考最灵活的,这里面可以隐喻到多个领域,最主要的还是通过这种方式来保证软件的质量,这是最终的目的。

探索式测试之隐喻(种植)相关推荐

  1. 读《探索式软件测试》笔记(一)

    测试通常刚开始时门槛很低,但是想要走到更高的地方还需要很多努力.是一个上山的过程.要求我们在参与每一个项目的时候,都要完成两部分的任务.第一部分的任务是保证当前的测试项目获得成功.第二部分的任务是学习 ...

  2. 探索式测试--第一章(软件质量)第二章(手工测试)--读书笔记

    本书为James Whittaker编写.本书写的是一种比其他任何缺陷都重要的特殊缺陷:即逃过所有各种检测手段而最终存在于发布产品中的缺陷.本书是作者设计"漫游"这个隐喻来指导软件 ...

  3. 探索式测试--第六章(实践中的探索式测试)--读书笔记

    本书为James Whittaker编写.本书写的是一种比其他任何缺陷都重要的特殊缺陷:即逃过所有各种检测手段而最终存在于发布产品中的缺陷.本书是作者设计"漫游"这个隐喻来指导软件 ...

  4. 【转载】探索式测试基础系列—生活进阶曲

    在探索式测试落地实践中奏出了协奏曲后进入到高级阶段,如何在问题定位和经验积累中发挥作用,也可以理解为在生活达到非常和谐后,如何孕育一个后代并为其提供良好的环境,因此本章的名字叫做生活进阶曲,表明在本章 ...

  5. 【Python-ML】探索式数据分析EDA(Exploratory Data Analysis)

    # -*- coding: utf-8 -*- ''' Created on 2018年1月24日 @author: Jason.F @summary: 有监督回归学习-探索式数据分析(EDA,Exp ...

  6. 探索式软件测试—Exploratory Software Testing

    最近找到去年上半年看过一本关于测试方面书籍的总结笔记,一直放在我的个人U盘里,当时是用Xmind记录的,现在重新整理下分享给大家了! James A.Whittaker [美] 詹姆斯·惠特克(软件测 ...

  7. 读书笔记_探索式测试_混合探索式测试

    一.测试场景 1.讲述用户故事 2.描述需求 3.演示产品功能 4.演示集成场景 5.描述设置和安装 6.描述警告和出错情况 二.使用基于场景的探索式测试 1.通过场景操作引入变化:操作后得到的新场景 ...

  8. 探索式测试的思维模型

    上一章介绍了探索式测试的定义.在实际项目的测试执行过程中,读者是否曾遇到如下的几个现象: 测试人员按照一个测试用例来执行测试,得到的程序输出与预期输出不一致. 测试人员判断程序的行为并不是缺陷,但根据 ...

  9. [ZZ].NET自动探索式测试工具——Pex

    作者 Al Tenhundfeld译者 霍泰稳 发布于 2008年7月20日 下午9时2分 社区 .NET 主题 单元测试 标签 测试驱动开发, MbUnit, MSTest, xUnit.Net P ...

最新文章

  1. T-Sql 实现类似访问数组变量的操作
  2. 从一个故障说说Java的三个BlockingQueue
  3. python 类的知识点整理_Python基础知识点整理,看下你能答对几个
  4. Docker从入门到实践笔记(一)
  5. 几大搜索引擎的网站登录入口
  6. php request entity too large,Nginx:413 Request Entity Too Large解决
  7. 利用Azure backup备份和恢复Azure虚拟机(1)
  8. 深圳宝安图书馆官网错误 HTTP Status 500 - Servlet.init() for servlet spring threw exception...
  9. 解决文件夹无限嵌套无法删除的问题---最新办法
  10. iOS设计模式之代理模式
  11. libusb-win32
  12. Logisim新手入门实验
  13. linux创建隐藏用户,Linux之隐藏权限lsattr和chattr
  14. ps中全选图层的方法
  15. 戴珊接替蒋凡,掌管淘宝天猫,阿里太子已被废?
  16. 银耳椰椰——Alpha冲刺Day05
  17. 为何中华武术不堪一击?武学大师临终前解密搏击格斗的残酷真相
  18. ie10不适用计算机,无发安装KB2731771,提示此更新不适用于您的计算机。无法安装ie10,不知道是否跟这个更新无 - Microsoft Community...
  19. 计算机分区的优点,NTFS分区格式的优点及其转换
  20. 一款非常不错的高仿UC浏览器源码下载

热门文章

  1. Python Fitter 判断数据样本的分布函数拟合
  2. SSM框架-MyBatis(一)
  3. Swagger简单使用之从入门到精通
  4. 光流传感器 定位精度_光流传感器
  5. Pixhawk学习笔记(5)——PX4FLOW光流传感器调试过程记录
  6. 【问题记录】Parallels Desktop黑屏无法进入Windows系统
  7. 一键去除txt文本重复行(带界面版)
  8. [原创] 简单的几个步骤`皮肤变得晶莹剔透
  9. 【直击DTCC】自然语言技术在文智趋势分析产品的应用
  10. [82]redis中如何切换db