手工测试:
软件缺陷的根源——来自软件开发本身
两种缺陷:程序员引入的缺陷;运行环境导致的缺陷。
缺陷预防和检测:
1设计更好的设计规范
2实施代码审核制度
3运行代码静态分析工具
4运行单元测试工具
缺陷检测:
1自动化测试 通过编写代码测试应用
2 手工测试 使用程序的用户界面,手工输入数据进行测试
软件核心功能:
1接收输入 2产生输出 3存储数据 4进行运算
注意:传统测试和探索式测试是互补关系,掌握探索式测试,就会多一种测试方法。
3探索式测试:
完全抛开测试用例,使用定义的比较笼统的测试用例,称之为探索式测试。
特点:
1根据收集到的信息,天马行空,自由发挥
2测试结果,测试用例和测试文档在测试执行时创建
3探索式测试适用于“敏捷开发过程”
4测试人员有肯能没有测试重点。
探索式测试方法有:
局部探索式测试,不需要知道很多信息就可以完成测试任务,重点把测试经验,专业知识,软件在操作环境下如何构建和运行的知识结合在一起,使我们在测试过程中做出正确的决定。
全局探索式测试方法,理解应用程序如何工作,接口看起来怎样?实现了哪些功能?强迫软件展示祺全部能力;找到缺陷。
探索式测试的案例需考虑的要素如下:
五要素之一:用户输入
1原子输入 如输入一个数字
2抽象输入 如输入一大串长度值
3考虑各种输入之间会相互影响
4输入值的顺序
5错误处理程序:1正常逻辑需要测试 2还需要测试各种错误和异常情况
6常规输入:用户经常使用的输入,如输入字母和数字等和非常规输入:特殊情况下才会发生,如输入Ctrl+c,esc,alt,ctrl,shif+c键和默认输入:空白框不输入任何东西;程序节目元素设定的默认值。
7使用输出来指导输入
五要素之一:状态
1使用状态信息来帮助寻找相关的输入
2使用状态信息来辨识重要的输入序列
3使用等价类划分法来进行测试
五要素之一:代码路径
1一个程序有很多条代码路径,总量很大
2测试人员必须清除程序里面有哪些分支
3尽量测试所有知道的分支
4分析代码覆盖率,基本评估自己的测试覆盖程度
五要素之一:用户数据
1真实用户的数据总是被不断添加和修改,组合无穷尽
2测试人员无法了解用户数据的关系和结构
3海量数据,有可能无地方存放
4使用真实的用户数据库,但是又被用户的隐私所困扰
五要素之一:运行环境,前面四个都被测试了,如果迁到一个新的运行环境,则一样有可能无法运行成功。
运行环境包含:
操作系统
当前配置
其他应用程序
网络拓补
驱动程序
文件系统
网络带宽
性能。
测试环境很关键,很能测试。
4指南测试法:测试人员通过阅读用书手册并严格遵守手册的建议执行操作。
指南测试法-变种
博客测试法,遵循第三方的建议来测试
专家测试法,根据抱怨或者吹毛求疵的用户评论来测试
竞争对手测试法,使用竞争对手的操作手册来测试自己的应用程序
5卖点测试法:用户希望使用的功能就是卖点,测试人员多和销售人员保持良好的沟通,就可以多了解用户的使用场景
6地标测试法:比如:发了一条微博,然后自己给自己评论,或者自己给别人评论,然后再转发别人的朋友圈。这一过程就是地标测试法。
7极限测试法:向软件提出很多难以回答的问题。
8快递测试法:测试人员专注数据,确认哪些存储起来的数据,跟随他们走遍软件。如:在电子上午网站种,输入一个送货地址后,看看他存储在哪里,哪些页面会使用这个送货地址。
9深夜测试法:非卖点的功能在夜间或者系统非繁忙的时刻执行,如维护各种数据任务,数据归档,备份文件。系统可能会自动执行,测试人员也可以手工触动执行。
VS清晨测试法:测试软件的启动过程和脚本。
10遍历测试法:最快捷放松遍历所有测试对象,只检查明显的东西,不拘于细节。
11历史区测试类型:
恶邻测试法,对缺陷横行的代码进行反复测试,并且对祺相邻功能进行遍历测试
博物馆测试法,测试人员找出那些遗留代码和老的可执行文件,重新测试
上一版本测试法,必须运行先前版本上支持的所有场景和测试用例
12娱乐区测试法:
配角测试法,和主要功能一起出现的功能也需要得到重视
深巷测试法,对最不可能用到的或哪些最不吸引用户的特性进行测试
通宵测试法,使用软件的特性或者将文件一直处于打开状态,系统不断运行
13旅游区测试类型:
收藏家测试法,测试人员到达可以到达的所有地方,并把观察到的输出结果记录下来
长路径测试法,设定测试目标,从尽可能远的功能在程序中穿梭,最后达到测试目标
超模测试法,不关注功能之间的交互,只关心界面和第一印象
测一送一测试法,测试时候同时运行统一程序的多个拷贝情况
苏格兰酒吧测试法,测试难以找到的功能,试用大规模的复杂应用程序。
取消测试法。启动操作,然后停止它
懒汉测试法,尽量少做实际工作,接收所有的默认值
破坏者,利用每个机会来破坏应用程序
反叛测试法,输入最不可能的数据,恶意数据或者以错误的顺序来做事情
强迫症测试法,不断重复输入相同数据,进行相同的操作,重复一大特性
14混合探索测试方法
测试中的场景:
讲述用户故事
描述需求
演示产品功能
演示集成场景
描述设置和安装
描述警告和出错场景
通过场景操作引入变化:替换数据;替换版本;替换环境;修改本地设置
15漫游测试:测试人员根据测试用例找到需要做决定的地方或找到可能产生逻辑分支的地方,往不同地方探索,最后回到测试用例描述的主要路径中来。
卖点测试,地标测试,极限测试,深巷测试。强迫症测试法,通宵测试法,破坏测试法,收藏家法,超模测试法,出租车测试法,多远文化测试法在漫游场景中会用到。
测试过程中棘手的五个问题:
漫无目的性;重复性;暂时性;单调性;健忘。
决定需要测试什么?决定何时测试?决定如何测试?
总结:有些项目准备太充分,导致需求变更后,大批用例作废和重写;有些项目准备的又太不充分,测试充满随意性和漫无目的性。探索式测试就是介于这两者之间,有效控制风险。