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

书中,完全以旅游来讲解各种测试方法,从而让晦涩的理论变得浅显易懂。
一般情况下,旅游地都会有这样一些区域:

  • 商业区: 早晚交通拥挤,上班紧张。商业区有银行、办公楼、各类商店。对软件来说,指的是“在那里完成实际业务”。
  • 历史区: 城市一般都有写历史古迹,历史事件吸引着大批的旅游者。对软件来说,就是“历史遗留代码”。
  • 旅游区: 专门针对旅游者的区域,而一般人是不会去的。这是说故宫、长城吗?软件的有些特性和功能就是专门针对新用户的,老用户则不再使用。
  • 娱乐区: 旅游者看了所有景点和名胜古迹后,通常是很累的,筋疲力尽之后难免要去一些地方娱乐娱乐的,借此来消磨时间。软件也有这样的辅助特性和功能。
  • 旅馆区: 是人总是要有个休息的地方,睡一觉。可有时候,“休息”时还是很忙的。软件尤其如此。
  • 破旧区:每个城市都有阴暗的一面,但也有很多人无限向往之,贫民窟的百万富翁之类的。这些地方尽量不去,但是这些地方也可能存在一些漏洞。

商业区测试类型

商业区特点在于,上下班高峰以及午餐时间。并且是工作得以完成的地方。

指南测试法: 测试人员按照用户手册进行操作。
各大旅游地,通常都有各种旅游攻略,告诉你应该去哪里,怎么选择路线等等。

卖点测试法: 按照销售人员对客户演示的顺序(卖点)进行测试。
令旅游者向往的任何一个地方一定有吸引他们的理由。

地标测试法: 选择一个功能点,然后向另外的功能点测试。
在森林里漫步,首先要定位一个大致的方向,然后从一个地标开始走,走到下一个地标,最终到达目的地。

极限测试法: 向软件提出很多难以回答的问题。
旅游中,你可能会有很多问题要问,你的导游需要来回答你提出的问题。那如何判断一个导游是否真的很牛呢,发挥你的能力,向导游尽可能的发问。

快递测试法: 专注与数据,保证数据在任何出现的地方都是同一个。
信息时代,网购盛行,快递更是得到大家青睐。但绝不允许出现的是,快递的东西在整个运输过程中发生了变化。即使是A->B->C->A也是不允许的,通常这个快递公司不会这么傻逼的,因此要绝对保证A->A->A->A,不能开封的说。

深夜/清晨测试法: 在软件的空闲时段,去测试一些功能。
下班后,城市很拥挤,这个时候的商业区是空荡荡的。但是,其实很多人还是在忙碌的运行的,以用来支持第2天的正常运转,比如设备检修,打扫卫生等等。对应与软件来说,这时候通常会有一些数据归档,定时任务等工作。这是软件人员需要关注的。

遍历测试法: 通过选定一个目标,然后使用可以发现的最短路径来访问目标包含的所有对象。
城市内的垃圾车,需要在夜间将各个地方的垃圾运走,垃圾车的司机通常对城市的所有路径都是特别熟悉的,他们通常都能按预先的规划,利用最短路径,将一个地方的垃圾装上,然后另外一家。

历史区测试类型

主要是针对老功能以及修复代码的测试。

恶邻测试法: 随着测试的深入,发现BUG较多的区域,通常值得反复的测试。
每个旅游城市都有些不好的地方,旅游者通常被告知避免访问那里。但是也总有人会去的,通常这些地方更值得测试人员关注。

博物馆测试法: 历史遗留代码值得测试人员多加关注。
展示古董的博物馆深受旅游者喜爱,但同时也要保证同现代建筑的和谐。

上一版测试法: 当前产品如果是对先前版本的更新,那就必须运行先前版本的所有场景和测试用例。

娱乐区测试类型

旅游者除了在繁忙的观光景点之外,还需要安排一些休闲时间。软件需要测试那些辅助特性,而不是主线特性,并确保这2种特性能够结合在一起。

配角测试法:鼓励测试人员,专注于某些特定特性,他们虽然不是主要功能,但是很可能紧邻着主要功能,容易引起别人的注意。
导游向你介绍一栋建筑,可能你却毫无兴趣,只关注于建筑边草地上的MM。

深巷测试法: 测试那些最不可能被用到或者那些最不吸引用户的特性。
高质量的旅游是去大家喜闻乐见的地方,质量不好的旅游则是指到了别人不愿意去的地方。

通宵测试法: 让程序一直运行,而不去关闭他。
通宵旅游,又称为夜总会之游。很多人都会在夜店狂欢,不断的喝酒,考验人的体力与素质。

旅游区测试类型

每个重视旅游的城市,都有专供旅游者聚集的地方。旅行通常走马观花,简短。对软件来说,旅游不关心软件是否工作,关心的是快速访问软件的各种功能,仅仅在于到此一游。

收藏家测试法: 收集软件的输出,越多越好。尽可能观察所有的输出结果是否正确。
旅游区,通常都会有一些特色的产品或者赠品,甚至是门票。而有些游客是很喜欢收集这些东西的,尤其是免费的东西。

长路径测试法: 测试距离目标功能点尽可能远的特性。指导思想是到达目的地之前尽量多的在应用程序中穿行。
在旅行中,有可能只是乘坐各种交通工具,往来与各个景点。殊不知,有时候,路上的风景也许更加的宜人,正所谓,慢慢走欣赏啊。

超模测试法: 关注表面的东西,测试界面。
旅游中见到的都是美女,这是多么惬意的事情啊,还管什么旅游不旅游的呢。

测一送一法: 测试同一个应用多个拷贝的情况。
旅行中,买一送一的促销手段,相比大家都了解。但这里不太一样,通常是从另外一个角度来说的,是说,如果你在一个拷贝上发现了一个缺陷,那么所有的拷贝都有同样的缺陷。

苏格兰酒吧测试法: 测试者需要穷尽各种努力,来找到很不容易找的功能点,并测试之。
作者朋友,在旅游中加入了一个苏格兰泡吧团,从而找到很多隐藏于社区的各类酒吧。如果没有他们的带领,可能永远找不到这些地方。适用与大型的项目。

旅馆区测试类型

休息的地方,远离喧嚣的热门景点。要求测试人员,放过主要的以及最受欢迎的功能,而测试一些经常被忽略或者测试计划中较少描述的次要辅助功能。

取消测试法: 启动操作然后停止它。学会使用取消按钮。
任何一个旅行,都有可能因为天气、飞机、或者病痛而被迫中断。

懒汉测试法: 测试人员做尽量少的实际工作,多使用默认值。程序则需要忙碌的来处理。
一个旅游团,总有人不积极参与,那么导游通常需要积极努力,试着吸引懒汉来享受他的旅程。

破旧区测试类型

破坏测试法: 试图利用每个可能的机会暗中破坏应用程序。让操纵环境变得恶劣。

反叛测试法: 输入最不可能的数据,或者已知的恶意输入。
旅行团中,通常有这样的人,当大家都惊叹于某著名标志物时,他却惊呼地上的一只老鼠很迷人。总有一些人是对着干的。

强迫症测试法: 患有“强迫症”的测试人员,一遍又一遍的输入同样的数据,执行同样的操作。
如果步行旅游,但是规定参加它的人不允许踩到地上的任何裂缝,很难想象会有多少人感兴趣。但在测试中,通常会让人有所收获。