提纲:
——什么是探索性测试
——探索性测试的来源
——探索性测试的指导思想
——探索性测试的相应测试方法
——探索性测试与传统测试风格的比较
1.什么是探索性测试
在概念上说,探索性测试是一种测试风格,而不是某一种具体的测试方法(等价类测试/边界测试等),它强调系统软件学习,设计测试用例以及测试执行同时进行,他适用于要求在短时间内以及测试需求频繁变更下寻找出重大缺陷的情况。
2.探索性测试的来源
探索性测试是由测试专家Cem Kaner博士在1983年的时候提出。测试专家James A. Whittaker曾经是Cem Kaner佛罗里达工学院的同事,后来担任微软测试架构师以及Google总监,基于在这些公司的工作经验,他撰写了《Exploratory Software Testing》一书,进一步拓展了探索性测试的概念和方法。
3.探索性测试的指导思想
探索性测试跟传统的测试方法有很大的不同,在过去一般都是按照先编写完整的测试用例以及计划,然后再进行测试执行,最后再进行测试结果分析。与这种“先设计后测试”的思路有巨大的不同,在探索性测试中,软件学习,软件用例设计以及软件测试执行同时进行,这个适用于要求在短时间内或者在测试需要频繁变更下快速发现重大缺陷的情况。
《Exploratory Software Testing》书中,作者认为我们正确的态度首先应该是承认测试无论怎么都是无法全部测完的。然后在测试的过程中,我们要从重要的做起,因此测试也是一个不断抉择的过程。我们必须不断地理解测试用例以及分析现有信息,从多种方案中选择最优。而这个也是局部探索性测试的指导思想。在局部探索性测试里头,我们首先需要做的是对项目的总体情况有个大概的了解,然后根据现有信息开始进行测试以及用例编写,在测试的过程中也完成对系统的学习。在这以后,我们使用测试结果以及增加的信息对用例进行修改以及进行下一轮的测试。这样,我们逐渐达到我们的想要的结果。
探索性测试的目标有三个:1理解应用程序如何工作,他的接口看起来怎样,实现了什么功能,2强迫软件展示其全部能力,3找到缺陷。
4.相应的测试方法
作者将测试的过程比作旅行者要到一个新的目的地进行探险,并提出了漫游测试这一说法。在漫游测试中,作者按照软件特性将软件分为相互重叠的区域。分别有商业区,旅游区,历史区,娱乐区,旅馆区以及破坏区。
商业区是工作得以完成的地方,对于旅游者来说没什么意思。所以商业区测试侧重于测试软件的重要基础特性,方法有指南法、极限法和遍历法等。
历史区是年代久远或发生过重大事件的建筑存在的地方,所有历史区测试主要用于测试遗留代码,如修复已知缺陷的代码,主要测试方法有恶邻法和博物馆法。娱乐区是休闲活动的地方,在测试中也是使用频繁的地方,娱乐区测试用于测试一些辅助特性,方法有配角法、深巷法和通宵法。
旅游区是旅游者聚集的地方,目的是为了到此一游,所以旅游区测试就关注测试软件的各种功能,方法有收藏家法、长路径法、测一送一法等。
旅馆区则是旅游者的休息之处,所以旅馆区测试时指软件测试人员放过那些主要和最受欢迎的功能,而去测试在测试计划中较少描述的次要及辅助功能,方法有取消法和懒汉法。破坏测试则是测试一些能破坏软件系统的行为,方法有反叛法和强迫症法。
通过这样的分区,可以帮助测试人员如何思考测试实际软件,避免遗漏某种测试类型并且简化测试讨论。
5.相关比较
那么探索性测试与我们之前那些测试方法有什么不同呢?在这里我们主要将它与传统的测试方法进行比较。在传统的软件测试方法中,我们遵循的是“先设计后执行”的思路,也就是我们首先要对系统有个比较全面的了解,然后进行设计测试用例以及计划,力图覆盖系统软件方方面面。这样我们的测试工作就有很大一部分花费在系统用例的编写上。而在探索性测试中,我们运行对系统理解的不全面,在不断的测试迭代中,我们会不断地完成对系统的学习,不断地完善用例。这样,我们就更有可能发现一些其他的隐藏Bug。但是无论怎样,两者的目的都是一样的。
参考书籍:《Exploratory Software Testing》
参考链接:http://blog.csdn.net/nilxin/article/details/7531579
http://www.cnblogs.com/liangshi/archive/2010/12/26/1917229.html