1、软件质量:软件特性的总和,软件满足规定或潜在用户需求的能力;
2、软件失效原因:研发相关人员没有理解,预见、测试到所有可以运行软件的环境;
3、缺陷与预防:
(1) 预防(开发角度):更好的设计规范、代码的审核制度、代码单元测试等等;
(2) 检测(测试角度):更好的测试规范、覆盖全面的测试用例、测试人员的思维发散性等等;
4、测试的目的:把关软件质量,使软件满足上线标准(不单单给软件找问题,还需要为软件做"质量防护"的思考);
5、测试分类:
(1) 手工测试:主要为功能业务测试、执行脚本测试、探索性(发散)测试;
(2) 自动化测试:编写自动化脚本,主要用到Python、shell;
1、定义:测试人员在执行测试中即时做出决定,注重指导在测试中如何做抉择、应注意哪些测试细节的方法;适用于在多个原子输入中选择合适的值,也可以用于确定如何对多个原子输入进行排列组合;
2、思维逻辑:为在所有输入的全体集合中选择一个子集;
3、应用场景:
(1) 输入类测试:
a、定义:各种输入之间会相互影响而造成软件失效,并且输入这些值时的先后顺序也会导致问题;
b、测试方法:合法输入&非法输入、错误处理程序、常规&非常规输入、输入默认输入/用户提供的输入、使用输出来指导输入选择;
(2) 功能运行路径逻辑测试:在功能代码实现的逻辑路径上设置异常点进行测试;
(3) 有关用户数据测试,需要考虑的点:
a、真实用户数据库中数据被不断地添加和修改;
b、无法推测真实数据中可能会有什么样的关系和结构;
c、数据量大时,在哪里可以放得下这些数据也是个问题;
d、敏感数据,如用户隐私 ;
e、用户的执行环境;
1、定义:在全局方面所必须做出的各种决定,比如在考虑特性交互、数据流以及在应用程序的用户界面上如何选择不同路径来完成某些实际功能时。
2、测试应用:
(1) 商业区测试类型
定义:商业区就是软件的启动及关闭代码之间,并包含用户所要使用的软件特性和功能,侧重于测试对象的主要功能及特性。
测试方法:
a、指南针测试法:主要要求测试人员通过阅读用户手册,场景及产品需求进行相关的测试
b、卖点测试法:对那些能够吸引用户的特性进行测试,至于哪些特性能够吸引用户,可以向销售人员咨询,或者拜访客户。
c、地标测试法:主要是寻找测试点,明确测试项,这里的测试点就是地标;
d、极限测试法:在功能临界值,或者超出临界值进行测试;
e、快递测试法:要求测试人员专注于数据,即数据从输入到输出展现给客户或页面过程中,数据执行的流程。了解一个测试输入项输入后,经过哪些流程后展现给用户的,这些流程能否正确执行。
f、深夜测试法:当我们不对测试对象操作时,测试对象能否会自动完成各种维护任务,将数据归档,自动记录发生的异常情况等;
g、遍历测试法:通过选定一个目标,然后使用可以发现的最短路径来访问目标包含的所有对象。测试中不要求追求细节,只是检查哪些明显的东西;
(2) 历史区测试类型
定义:指遗留的代码,或者在前几个版本就已经存在的软件特性,也指那些用于修复已知缺陷的代码,侧重于老的功能和缺陷修复代码;
测试方法:
a、配角测试法:测试中调节自己的测试注意力,使测试细化,具体,确保配角得到应有的重视;
b、深巷测试法:测试最不可能被用到或是那些最不吸引用户的特性;
c、通宵测试法:这个方法很容易和深夜测试法混淆,但是测试侧重点不同,深夜测试法是测试测试对象的自动处理能力;而通宵测试法是测试软件的长时间运行后,各功能模块是否正常,有点像稳定性测试;
(3) 旅行区测试类型:
定义:快速访问测试对象的各种功能。有点像遍历测试法;
测试方法:
a、收藏家测试法:收集执行一个测试点后的所有输出。确保能观察到软件生成的任何一个输出;
b、长路径测试法:确定测试目标,在到达目的地之前尽量多地在应用程序中穿行。把埋在应用程序最深处的界面作为测试目标;
c、超模测试法:GUI测试;
d、测一送一测试法:测试同一个应用程序多个拷贝的情况。测试程序同时处理多个功能要求时,是否正常,各功能之间同时处理时,是否会相互影响;
e、苏格兰酒吧测试法:花一些时间参与用户之间的讨论,了解测试对象所处行业信息,深入理解测试对象;
(4) 破旧区测试类型:
定义:对于这个区域的测试模块,就是输入恶意数据,破坏软件,修改配置文件等;
测试方法:
a、破坏测试法:做一个破坏者,测试各种异常情况;
b、反叛测试法:输入最不可能的数据,或者已知的恶意输入;又分为:逆向测试法,歹徒测试法,错序测试法;
c、强迫症测试法:重复测试;
1、定义:展示如何把探索式测试的思维方法与传统的基于场景的测试方法结合起来;
2、应用:
(1) 场景操作:
a、插入步骤:给场景插入一个或多个步骤能增加软件失败的机会;
b、删除步骤:去掉冗余和可选的步骤,这个操作的想法是使场景的步骤尽可能地减少;
c、替换步骤:某个场景可以使用多种方式完成,就可以使用替换步骤;
d、重复步骤:重复单独的步骤或重复的一组操作来改变动作顺序;
e、替换数据:很多情况下,场景要求和数据库、数据文件或者其他本地或远程数据源相连接。;
f、替换环境:操作的基本要点是测试场景本身并不改变,只是在软件上执行这些测试场景时,所使用的系统发生了改变;
(2) 漫游测试:
a、卖点测试:卖点测试是跟着卖点的特性走,在向客户展示的过程中会创建出一些新的用户场景;
b、地标测试法:从场景中选取特定的功能,然后随机打乱这些地标的顺序,这样得到的场景就和原始场景不同了;
c、极限测试法:挑战软件,向他提困难的问题;
d、深巷测试法:使用最不可能用到的或最没用的功能;
e、强迫症测试法:重复场景中的每个步骤两次或三次;
f、通宵测试法:测试场景可以被自动化或者使用录像回放时,最适合使用的是通宵测试法;
g、破坏测试法:场景是破坏活动的绝好开始,场景测试时,在资源调用处进行破坏活动;
h、收藏家测试法:执行场景和衍生场景使用文档记录下所观测到的每个输出,甚至可以根据产生的输出数量来给场景打分;
i、超模测试法:只关注界面,寻找屏幕刷新问题;
j、配角测试法:测试人员不是执行脚本的功能,而是找到最近的邻居功能来执行;
k、取消测试法:不但充分利用了取消按钮,而且执行了启动和停止功能;
l、混票测试法:专门针对基于场景的测试,概念是有些人旅游开始时没有交钱报名,逐渐加入进来,融入旅游人群并假装一直在那里;
1、漫无目的:三个决定,测什么、何时测、如何测;
2、重复性:两个知道,知道运行过的测试,知道什么时候注入变异(不断改变测试的重点);
3、暂时性:持续性测试(从用户角度出发);
4、单调性:简单重复的工作实现自动化;
5、健忘性:漫游测试路径映射到软件特征和缺陷;
以上仅是个人读书后的总结笔记,书中还要很多值得学习的知识,值得去读一读;
关注公众号,获取更多干货: