探索性测试概述
曾进 QQ:310575 2011年12月13日
一、探索性测试
1、什么样的情况下作探索性测试?
1)
2)
3) 需求或者文档不完整、明确; 开发文档不能指导测试; 运行环境,如多用户、多平台、多语言;
2、探索性测试主要关注那些内容?
1)
2)
3)
4)
5) 输入(input); 状态(state); 代码路径(code path); 用户数据(user data); 执行环境(execution environment);
3、测试人员测试时必须考虑的几个问题?
1)
2)
3)
4、输入
1)
2) 定义:由环境产生的一种刺激,该刺激导致被测试的应用程序有所响应; 分类:原子输入(atomic input);抽象输入(absttact input);最高层的抽象(非法输出和合
法输出)
3)
4)
5)
6)
7)
8)
9) 如何测试输入; 合法与非法输入; 输入筛选器; 输入检查; 异常处理; 常规、非常规输入; 默认输入、用户提供的输入; 软件运行时表现是否符合设计预期? 用户为了某个功能而购买软件,该软件实现了这个功能? 软件运行时,是否足够快、安全、稳定?
10) 10) 使用输出来指导输入选择;输入对象(类型、长度、大小、值)
5、状态
1)定义:就是状态空间的一个点,它由所有内部数据结构的取值来唯一确定;
状态空间是由软件内部所有变量构成的一个交叉积。含有的状态个数可谓是一个天文数字。
6、代码路径
1)
2)
3) 单分支(IF、THEN 和ELSE) ; 多分支(CASE,SELECT,ELSEIF); 代码覆盖率;
7、用户数据
8、运行环境
二、全局探索性测试
1、探索测试的目标:
1)
2)
3) 理解应用程序如何工作,它的接口如何,实现了哪些功能; 强迫软件展示其展示全部能力; 找到缺陷;
2、漫游测试
1)商业区测试类型:
⏹
⏹
⏹
⏹ 指南测试法(要求测试人员根据阅读用户手册并严格遵守手册上的建议执行); 卖点测试法(观摩演示,执行场景); 地标测试法(确定软件关键特性,前后顺序,记录过程); 极限测试法(向软件提出很多难以回答的问题,比如运算能力、软件发挥到最大程度?输入输
出极限?变种:找麻烦测试法);
⏹ 快速测试法(测试人员专注于数据的变化,并跟随数据走遍软件,比如那些地方地方显示?哪
些特性会用到?);
⏹ 深夜测试法(目的是测试在非拥挤段,程序的运行,如维护任务、数据归档、备份等;变种:
清晨测试法,目的是测试启动过程和脚本,比如闰年的2.29和年底12.31);
⏹ 遍历测试法(有计划的抽查,通过选择一个目标,然后使用可以发现的最短路径来访问目标包
含的所有对象);
2)历史区测试类型
历史区测试类型主要针对老的功能和缺陷修复代码。
⏹ 恶邻测试法(测试人员不能提前预知哪些软件特性称得上恶邻。通过测试的深入发现缺陷越多,
再把特性联系起来,看下哪些特性问题较多,加强测试);
⏹ 博物馆测试法(软件中的古董指的是遗留的代码,老代码或接受修改,或未被改动用于新环境,
可能会导致失效);
⏹ 上一版测试法(新版本对上一版本的继承和变更内容);
3)娱乐区测试类型
⏹
⏹ 娱乐区测试类型主要针对软件的辅助特性,而不是主线特性,并确保主辅有效的结合。 配角测试法(测试人员专注某些特定的特性,它们虽然不是我们希望用户使用的主要特性,但
是和那些主要特性一起出现在显示器上);
⏹ 深巷测试法(在掌握主要产品的使用情况下,测试该使用情况列表中排在最下面的几项特性,
变种:混合测试法,如把最流行和最不流行的放在一起组合测试);
⏹ 通宵测试法(保持软件一直运行,软件一直不被重新启动,程序也没有没重置,主要关注长时
间测试下的异常);
4)旅游区测试类型
旅游区测试类型主要针对那些短时间访问、快速访问路经的特性。
⏹
⏹ 收藏家测试法(收集软件的输出,测试覆盖到可到达的地方并把观察结果记录下来); 长路径测试法(访问离程序开始点尽可能远的特性,哪个特性需要点击N 次或经过多少界面才
能被用到?选定特性一路测试下去);
⏹ 超模测试法(重点不在功能或测试功能见真正的相互作用,而只是测试界面。观察界面上各种
元素,看上去如何?颜色?有没有被真正描述出来?性能如何?变化界面时图像刷新情况?); ⏹
⏹ 测一送一测试法(只测试同时运行同一程序的多个拷贝的情况); 苏格兰酒吧测试法(主动找同行,由同行引入很难发现的地方。适合大规模的复杂应用程序);
5)旅馆区测试类型
旅馆区测试类型主要指测试人员放过那些主要和最受欢迎的功能,而去测试那些被忽视或在测试计划中很少描述的次要及辅助功能。
⏹ 取消测试法(思想就是启动操作然后停止它。寻找程序中最耗时的操作来充分实施这种测试,
验证程序的自我清除能力);
⏹ 懒汉测试法(测试人员做尽量少的实际工作,比如接受所有默认值,保持输入字段继续为空,
在表单中尽可能少填数据);
6)破旧区测试类型
破旧区测试类型输入恶意数据以破坏软件和做一些通常有害的事情。
⏹ 破坏测试法(强迫软件做一些操作;掌握软件成功完成操作必须使用的资源;在不同程度上移
除那些资源或限制使用那些资源。试图利用每个可能的机会暗中破坏程序,让程序读取硬盘数据,接下来让文件操作失败如破坏那个文件来妨碍打开文件;在内存不足时让程序去完成消耗内存大的操作等);
⏹ 反叛测试法(输入最不可靠的数据或者已知的恶意输入,方法:逆向测试法、歹徒测试法比如
酒吧不买酒偷酒、错误测试法如以错误的顺序做事情);
⏹ 强迫症测试法(反复执行同样的操作);
3、漫游测试法实战
1)
2) 特性划分 可重复性
三、混合探索性测试
1、场景和探索测试
有价值的场景:讲述用户故事;描述需求;演示产品功能;演示集成场景;描述设置和安装;描述警告和出错情形;
2、使用场景探索测试
3、通过场景操作引入变化
场景操作、衍生场景
1) 插入步骤:
a)
b)
c)
2)
3)
4)
5)
6) 增加更多数据; 使用附加输入; 访问新的界面; 删除步骤: 替换步骤; 重复步骤; 替换数据; 替换环境:替换硬件、容器、版本,修改本地设置
4、通过漫游测试引入变化
1)
2)
3)
4) 卖点测试法 地标测试法 极限测试法 深巷测试法