软件测试基础(自己在培训学校的笔记)
更新时间:2024-02-27 08:51:01 阅读量: 综合文库 文档下载
- 周口软件测试培训学校推荐度:
- 相关推荐
第一讲
一、软件
1、计算机(computer)=硬件(hardware)+软件(software) PC=personal computer 个人电脑
2、软件=程序(program)+文档(document) 3、测试对象:不仅是程序,还包括文档 4、开发过程包括:
需求分析 (需求分析师完成,需求说明书)
程序设计(系统分析师、系统架构师完成,概要设计说明书、详细设计说明书) 编程(程序员完成,程序) 4、哪个阶段出现的缺陷多? 需求>程序设计>编程 在需求阶段引入的bug占55%左右,程序设计阶段bug占25%左右,编程引入的bug占15%左右
测试思想:
(1) 测试工作应该咋在项目的早期展开,与开发并行
前期需要对相关文档测试,才能更好控制质量,如果对开发文档进行测试,需要掌握一定开发知识
二、软件缺陷
1、要求的功能未实现 2、画蛇添足
3、出现了指明不应出现的错误(程序出现用户数据错误时,给出友好的处理)
一个优秀软件的基本特点: (1) 用户要求的功能要实现
(2) 很强的异常处理能力(健壮性)
4、 需求虽未明确提及,但应该实现的功能(需求是人写的,可能会有遗漏) 5、 软件难以理解、不易使用、运行缓慢,或者站在用户角度认为是不好的
与缺陷等意的词:错误 毛病 失效 违背 异常
三、软件测试
在现有软件中(程序+文档)寻找缺陷的过程(找缺陷是有科学的方法——测试用例) 截图技巧:
(1) 使要截取的窗口界面显示出来,按下“PrtSc”(print screen,把当前界面当做图片复
制到windows的剪切板
(2) 打开画图软件 开始-运行-mspaint (3) 粘贴(Ctrl V)
(4) 选定区域:点击工具栏第一行第二个“选定按钮”,变为十字光标,把光标放在想要
截取区域的左上角,按朱鼠标左键不放,向右下角拖拽
(5) Ctrl +C/X (6) Ctrl+N 新建 (7) Ctrl + V
(8) Ctrl + S 保存 (9) Ctrl + A 全选
1
(10) Ctrl + C复制
(11) 在word中或其他文档中 ctrl + v
四、bug的历史
缺陷: defect 一般称为bug Debug: 调试 除错 五、 计算机的层次 1、 硬件(裸机) 2、软件
(1)操作系统 (2)应用软件 补充:
(1)裸机也包含软件,主要是BIOS程序(Basic input/output system ) A、存储在主板上的一块芯片中
B、作用:打开电脑开关,首先由BIOS程序控制机计算机,进行“上电自检”,检查硬件设备的完好性,如果设备没问题,再把控制权交给操作系统,如果检查出有问题,通过蜂鸣器发出报警声,并停止引导。 C、如何进入bios
打开电脑开关,迅速按下“delete”键(笔记本一般为功能键,如F2) (2)常见的操作系统(Operating System,简称OS)
Windows unix linux MAC OS Dos(disk operating system磁盘操作系统) (3) 查看windows版本,内存,计算机名 A、鼠标放在桌面“我的电脑”,点击右键,在弹出的菜单中点击“属性”
B、在“系统属性”窗口中的“常规”选项卡中查看版本、补丁包(service packge)、cpu型号、频率、内存
C、在“计算机名”选项卡中查看计算机名,点击“更改”按钮,可以更改
六、软件分类 1、基本分类 (1)系统软件 A、操作系统
B、操作系统的补丁程序
C、驱动程序(操作系统的内核程序通过调用硬件的驱动程序来完成硬件设备的管理) (2)应用软件 以后的工作以应用软件测试为主 2.按照软件结构划分(看软件的运行是否基于网络) (1)否——单机软件 (如office ) (2)是——分布式软件
分布式软件按照客户端的特点可以细分为:
① C/S结构(Client/Server,客户端/服务器结构) 客户端需要使用该公司提供的专门软
件才能享受服务 如:QQ、微信、联众游戏
② B/S结构(Browser/Server,浏览器/服务器结构) 客户端只要使用浏览器就可以享受
服务 如:各种网站、搜索引擎、论坛
2
第二讲 进制转换和逻辑代数 一、进制转换 1、 基本概念 (1) 十进制
A、 系数:0-9
B、 进制:逢十进一 C、 权: 10的次幂
右侧第一位:权为10的0次幂 1 右侧第二位:权为10的1次幂 10 ……… 三 …… 2 … …
任何数都可以分解成每个系数乘以该位的权
D、 在十进制数据后面加后缀D(如果数据后面没有后缀一般也看做十进制) (2)二进制
A、计算机采用二进制,电路设计简单(只设0和1)
B、冯-诺依曼把二进制引入到计算机,所以现在的计算机称为“冯诺依曼体系结构”
哈佛结构—嵌入式计算机(机器人、手机) C、系数: 0 和 1 D、进制:逢二进一
E、权:右侧第二位 权为2的1次幂 右侧第1位:权为2的0次幂(1) 右侧第2位:权为2的1次幂(2) 右侧第3位:权为2的2次幂(4) ??
F、使用后缀B表示二进制数
G、缺点:需要频繁进位,一个很小的数位数却很多
(3)十六进制
A、系数:0—9,ABCDEF A=10,B=11,C=12 D=13,E=14,F=15 B、进制:逢16进1 C、权:16的次幂
右侧第1位:权为16的0次幂(1) 右侧第2位:权为16的1次幂(16) 右侧第3位:权为16的2次幂(256) ??
D、使用后缀H表示
(4)八进制 A、系数:0—7 B、进制:逢8进1
3
C、权:8的次幂
右侧第1位:权为8的0次幂(1) 右侧第2位:权为8的1次幂(8) 右侧第3位:权为8的2次幂(64) ??
D、使用后缀字母O
4
1 将下列十进制数分别转化为其他进制数
1)25D = ( 11001)B = ( 19)H= (31 )o 2)85D = ( 1010101)B=(55)H = (125 )o 3)123D=(1111011)B=(7B)H = ( 173)o 4)141D=(10001101 )B=(8D )H = ( 215)o
2 完成下列进制转换
1)1101101 B =(109)D =(6D)H 2)26 D =(11010)B =(1A)H 3)3C H =(111100)B 4)2EH =(46)D
二、逻辑代数 1. 逻辑与
(1)定义:只有一件事情的所有条件全部成立,这件事情才成立。 (2)两个条件真值表
真值表表示的输入条件和输出结果之间的所有对应关系 输入条件 A 0(假,不成立) 0 1 1 (3)三个条件真值表 A 0 0 0 0 1 1 1 1 输入条件 B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 输出结果 Y 0 0 0 0 0 0 0 1 B 0 1(真,成立) 0 1 输出结果 Y 0 0 0 1 5
(4) 结论: 有0出0 全1才1 (5)表达式:Y=A*B=AB
(6)多位二进制数,按位与运算
右侧对齐,位数少的前面补0,上下对应的位分别进行与运算即可 2、逻辑或
(1)定义:只要有一个条件成立,这件事情就成立 (2)两个条件真值表 输入条件 A 0 0 1 1 (3)三个条件 输入条件 A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 输出结果 Y 0 1 1 1 1 1 1 1 B 0 1 0 1 输出结果 Y 0 1 1 1
(4)结论:有1出1,全0才0——输入只要有1(成立),输出必为1(成立);只有输入全部为0(不成立),输出才为0
6
(5)四个条件 输入条件 A B 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 C 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 D 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 输出结果 X= ABCD 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 Y= A+B+C+D 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
(6)表达式:Y=A+B
(7)多位二进制数,按位或运算
右侧对齐,位数少的前面补0,上下对应的位分别进行逻辑或运算
3、逻辑非(反)
(1)定义:一件事情的成立要求其条件要不成立 (2)真值表
逻辑非只能有一个条件 输入条件 A 0 1 输出结果 Y 1 0
(3)表达式:Y=A (4)多位二进制数,按位取反把每一位数分别取反即可
7
第三讲 测试报告
一、 测试人员的职责
1、阅读或编写测试计划(3篇) 2、编写测试用例(1000条) 3、执行测试(包括返测),发现bug,提交缺陷报告(50份) 4、编写测试总结报告(3篇)
5、使用测试管理工具跟踪测试管理bug
二、缺陷报告的组成 1、缺陷编号(Defect ID)
提交bug的顺序
如果使用缺陷管理工具会自动编号 在一个项目组是中会统一编号 2、缺陷标题(summary) 简明扼要的描述一下该bug 3、缺陷的发现者(Detected By)
一般就是自己
4、发现缺陷的日期(Detected On Date)
一般就是当天
5、缺陷所属的模块(Subject) 在测试程序的哪个功能模块时发现的bug,开发经理据此分配由谁解决bug 6、发现缺陷的版本(Detected in release) 在测试程序的哪个版本时发现的bug 7、指派给谁处理(Assigned to) 测试人员指派给开发经理,开发经理会根据bug所在的模块,再次指派给该模块的开发人员对bug修复
8、缺陷的状态(status) 描述bug此时所处的状态或处理情况 (1)测试人员发现bug,提交缺陷报告给开发经理,把缺陷的状态写成new(新提交) (2)开发经理验证该bug,如果是bug,开发经理把缺陷的状态改为open(打开的bug,开发组承认的bug),然后把该bug指派给该模块的开发人员修复;如果不是bug,把缺陷的状态改为rejected(拒绝的bug,开发组不承认的) 。 (3)开发人员看到指派给自己的bug,对bug进行修改,修改完后把缺陷状态改成fixed(已修复的bug,待返测的bug) (4)测试人员对修改的bug进行返测,如果返测通过,把缺陷的状态改为closed(关闭的bug,返测成功的bug,归档的bug);如果返测失败,把缺陷的状态改为reopen(重新打开的bug,返测失败的bug)
此过程称为“缺陷(报告)的处理流程”,或者称“缺陷的生命周期” New->Ope n->Fixed->Closed 9、缺陷的严重程度(severity) 表明该缺陷有多糟糕:
Urgent:致命的bug,造成死机、重启、崩溃等 Veryhigh:非常严重的缺陷 High:严重的缺陷
8
Medium:中等程度的bug Low:小的bug 说明:每个词代表的含义在不同公司可能会有所不同,一般需要在专门的文档中定义好具体细节。
案例:Bug level definition.xls 性能:performance 功能:function
10、缺陷的优先级(priority) 希望开发组什么时间内或程序的哪个版本中解决该bug Urgent:立即解决,否则会影响开发/测试进度 Veryhigh:本版本解决
High:下版本解决
Medium:发布之前解决 Low:允许发布中存在 优先级参考的因素:
(1) 严重程度:一般情况下,越严重,优先级越高 (2) 缺陷影响的范围:一般影响范围越广,优先级越高 (3) 考虑开发组当前的任务压力:压力越小,优先级越高 (4) 解决bug的成本问题(时间):成本越低,优先级越高
11、缺陷描述(Description) 把发现bug的步骤、过程、数据等记录下来,使程序员通过描述可以看到该bug
说明:
(1) 优先级和严重程度是不是严格正比关系?
不是,严重程度只是优先级其中一个参考。 成本 时间 (2)严重程度和优先级确定好后,是否还会修改? 严重程度一般不做修改; 优先级根据实际情况,经常会调整(一般会推延)
(3)是不是所有已经发现的bug在发布之前都会被修复? 不是。 对于不解决的bug,一定要经过项目组的讨论,明确解决bug的成本(时间),分析缺陷存在的风险,尽量避免法律纠纷,经济赔偿,另外存在bug的模块最好为用户使用频率较低的功能
三、缺陷报告的用途
1、记录bug
2、对bug进行分类(发现者、模块、日期、版本、严重程度、状态…) 3、对bug进行跟踪管理(new->closed) 4、对bug进行分析、统计、总结
9
四、如何识别bug
1、通过测试用例的预期结果识别,实际结果与预期结果不一致就是bug 2、参考需求文档,与需求不一致,就是bug 3、通过与相关人员讨论 4、参考缺陷的5点定义
五、提交bug时注意的问题(了解)
六、缺陷报告处理流程***
参考缺陷状态status部分
缺陷的处理流程也就是缺陷的跟踪管理过程
10
第四讲 使用等价类划分和边界值法编写测试用例
一、基本概念
1、 测试用例(测试案例)
测试用例是由测试人员在测试执行之前编写的指导测试执行过程的重要文档,主要包括:用例编号、测试目的、用例描述、预期结果 2、 设计测试用例的方法
(1) 等价类划分法 (2) 边界值法 (3) 因果图法 (4) 判定表法 (5) 正交排列法 (6) 场景法 (7) 测试大纲法
(8) 状态转换图(不讲) 3、 写用例的参考
(1) 参考需求文档
(2) 参考已经开发出来的程序 (3) 讨论
二、 等价类划分法编写用例 1、应用场合
11
只要有数据输入的地方就可以采用。从无穷多的数据中挑选典型代表数据进行测试 2、 测试思想:
穷举测试(把所有可能的数据全部测试一遍)是最全面的测试,但时间成本太高,在实际工作中不能采用。测试用例的方法是在保证测试质量的基础上使用最少的数据达到最大的测试效果。
不做穷举测试,是存在风险的(遗漏bug的风险),如果时间允许,可以适当补充一些数据(以后遇到纠结的数据时,把其补充上) 3、 核心概念 (1)有效等价类 无效等价类 按照程序规格有意义、合理的输入数据集合 编号 数据要求 程序接收到有效等价类,可以正确计算、执行
1 <-99的整数 (2)无效等价类
2 >99的整数 按照程序说明无意义、不合理的输入数据集合
3 为空 程序接收到无效等价类数据,应该给出错误提示,或
4 小数 者根本无法输入
5 字母 说明:
6 汉字 一个好的软件基本特点:
7 符号 A:功能实现——有效等价类测试 B:异常处理能力(健壮性)——无效等价类测试 4、 分析步骤
首先明确测试对象——“第一个数”文本框,保证“第二个数”填写正确 (1)划分等价类 ①有效等价类 -99~99
②无效等价类 A:<-99整数 B:>99整数 C:非整数 D:为空 (2)细化等价类 依据的一般不是字面上的需求,而是根据数据在内存中的存储方式或数据类型等 ①整数在内存中按照“补码”存储,正数和负数计算补码的方式不同,有必要把正数 和负数单独测试 把-99~99细化为: -99~-1的整数 0~99的整数 ②把“非整数”细化为:小数、字母、汉字、符号 (3)建立等价类表(熟练后直接进行该步)
有效等价类 编号 数据要求 1 -99~-1的整数 2 0~99的整数
(4)编写测试用例
从每个等价类中至少挑选1个数据进行测试
再测试“第二个数”文本框,保证第一个数正确
12
三、边界值法 1、应用场合
只要有数据输入的地方就可以使用。边界值法和等价类划分往往一起使用,共同形成一套较为完善的测试方案 2、如何使用? 找到有效数据和无效数据的分界点,对分界点及其两边的点单独测试 3、说明 边界值数据本质上就是属于等价类范畴,但需要单独进行测试,这确实是一种冗余,但在工程上是必须的
2015-8-7
练习1: 说明
1.如果需求要求是“字符”,就意味着允许:字母、汉字、符号、0-9数字,在写有效等价类时,一般只关注字符长度,不用再细化为汉字、字母、符号等,因为在程序中定义变量,把这些都当做一种类型存储(如Java,存成.string),如果存储在数据库中,一般也是当做同一种类型(如Oracle,存成varchar)。另外,在测试边界值时,可以适当考虑字母、汉字、符号,这些区分。
如果无效等价类为非整数(小数、字符),一般需要把字符细化为:字母、汉字、符号,因为一个完善的程序异常处理应该根据用户不同的输入给出明确的提示 2、在标准英文编码中(ASCII美国标准交换信息代码),一个英文字符占1个字节,在标准中文编码中(GB-2312),一个中文字符占2个字节) 1个字节(Byte)=8位(bit) 1KB=1024B
四、用例的优化 主要针对有效等价类和有效边界值 1、问题的提出
每条用例只测试一个控件的有效数据(有效等价类或有效边界值),方法比较简单,适合初学者,但会存在数据冗余(2条或以上用例测试数据雷同) 2、如何优化 在一条用例中,可以尽可能多的测试不同控件的一个有效等价类或有效边界值——不同控件的有效等价类或有效边界值可以组合在一条用例中测试,在测试质量不变的情况下,减少用例数量,
五、测试用例的强化
针对无效等价类和无效边界值 在一条用例中,开始的时候只测试一个控件的一个无效等价类或无效边界值——不同控件的无效等价类或无效边界值开始时不能组合——避免屏蔽现象发生(前面的错误提示出现后,后面的错误提示就不出现了)
13
最后,再适当考虑不同控件的无效等价类或无效边界值的组合(姓名和年龄),以及同一个控件不同无效等价类或无效边界值的组合——无效等价类的强化,提高破坏能力
说明:
1、当发现软件处理同一个等价类中不同数据的情况不相同时,有必要把该等价类进行细化(如:处理全部为数字和部分为数字不一样)
2、对照软件写用例,当发现bug时,不要按照bug去写,要把正确的的步骤和预期写出来。
六、小结
1、有效等价类一般都可以从需求中直接找到,一般数量较少。使用有效数据进行测试,称作“通过测试”或“正向测试”
2、无效等价类一般数量较多(时有效等价类的2-5倍)。使用无效数据进行测试,称作“失败测试”或“反向测试”。 无效等价类主要考虑以下要素: 序号 1 2 3 4 5 数据要求 不能为空(必填项) 不能重复 数据有大小范围要求 字符个数有范围要求 数据有数据类型、格式、样式要求 无效等价类 为空 重复 数据超出范围 字符个数超出范围 数据类型、格式、样式非法 示例 年龄:18—60 无效:<18 和 >60 姓名:3—20个字符 无效:<3个和>20个 (1)要求整数,无效为非整数(小数、字母、汉字、符号) (2)要求是数字(小数或整数),无效为非数字(字母、汉字、符号) 6 小数有小数位要求 小数位数超出范围 说明:
(1)如果要求是小数,没有指名不允许整数,就意味着也允许整数,需要对整数也测试 (2)对于非必填项,也要测试不填的情形(当做有效等价类)
(3)因为每个控件的有效等价类加上有效边界值的数量一般不会完全相等,会导致在测试某个控件的有效等价类或有效边界值时,其他控件的有效数据全部测试,这时需要从这些测完的数据中再次挑选,这是一种冗余,但在工程中不能避免,在写时目的时,冗余的测试就不要写出了。
14
8.10
补码(了解)
1、整数在计算机中以补码方式存储 2、整数转换成二进制数,称为“原码”(一般前面补齐适当的位数) 3、计算机中一般用0表示+,用1表示 -
4、为什么用补码? 使用补码,可以使数据的符号位参与到运算中,当成普通数字处理 5、如何算补码
(1)正数的补码就是其原码(算出对应的二进制,补齐足够的位数,最高位用0表示) 11——>0000000……1011 第一个0是符号位,其余占位,1011是数值 (2) 负数补码:
A、求负数的绝对值(变成正数)
B、求该绝对值的二进制(前面补齐0) C、对求出的二进制按位取反
D、取反后做算数加1 如下:
15
第五讲 因果图法
一、基本概念 1、应用场合 在一个界面中,有多个控件,控件之间有一定的组合关系和限制关系,不同的输入组合会发生不同的输出结果,为了弄清输入和输出的对应关系,使用因果图法 2、核心概念
(1)因——原因,输入条件 (2)果——结果,输出结果
使用画图的方式表达输入和输出之间的关系 3、图形符号(联想到软件中去)
(1)基本符号——表达的是输入和输出的对应关系 ①恒等***
有输入?有对应输出 无输入?无对应输出
②非
③与***
a=b=c=1 Y=1 有0出0,全1才1
④或
a=b=c=0 Y=0 有1出1,全0才0
16
(2)约束(限制)符号——约束的是同一类的:要么同时约束输入,要么同时约束输出 ①互斥(E) exclude
a、b、c三个原因不可能同时成立 a、b、c最多只有一个1(可以同时为0)
②唯一(O) only
有且仅有一个1(不能同时为0) 互斥和唯一的区别:
互斥没有默认值,而唯一会有一个选定的默认值
17
③要求(R)
若a(主要)=1,必须b(辅助,次要)=1 表示当a出现时,b也必须出现
“自动登录”要求“记住密码”
④屏蔽(M)
如果a=1,必须b=0 ,a出现,b不出现 ;当a=0时,b的值不定
18
(5)包含(I)
a b c3个原因至少有一个必须成立; a b c至少包含一个1
二、使用因果图法分析程序 案例需求
19
1、找出所有的输入条件(因),编号 (1)投币50元 (2)投币100元 (3)充值50元 (4)充值100元
2、找出所有的输出结果 编号
A、充值成功并退卡 B、提示充值成功 C、找零
D、错误提示并退卡 步骤1、2是初步分析需求的过程,可以同时画出因果图的“因”和“果”,并写出“判定表”的“输入”和“输出”
3、在步骤1基础上,找出输入的组合关系和限制关系 (1)组合关系(决定测试用例的数量) ①输入(1)(3)组合 ②输入(1)(4)组合 ③输入(2)(3)组合 ④输入(2)(4)组合 ⑤输入(1)单独 ⑥输入(2)单独 ⑦输入(3)单独 ⑧输入(4)单独 (2)限制关系 ①输入(1)(2)互斥 ②输入(3)(4)互斥
4、在步骤2基础上,找出输出的组合关系和限制关系 (1)组合关系
①输出AB必须组合(要求) ②输出ABC组合 ③输出CD组合 ④输出D单独 (2)限制关系 ①输出A和D互斥 ②输出B和D互斥
步骤3、4是深入分析需求的过程
把输入和输出的限制关系先画出因果图,可以在判定表中先把输入的组合关系写出
熟练以后步骤4可以省略
5、找“因果关系”:哪种输入组合会产生哪种输出组合,写出判定表,画出因果对应关系图(参考步骤3(1)和4(1)) 情况1: 输入(1)(3)组合
20
会产生: 输出AB组合
======================= 情况2: ②输入(1)(4)组合 会产生: 输出CD组合 。。。。。。
6、编写用例——把判定表的每1列写成1条用例,测试1种组合情况
8.11.2015 第六讲、判定表法
1、判定表法就是因果图法的简化,本质上是一种方法
2、在实际工作中,编写用例往往要结合几个方法(2—4种),或者说任何一种方法一般只能测试一个窗口的某个局部.
3、综合使用多种编写方法写用例
21
(1)通过控件的特点,判断每个控件采用的方法 基本信息部分是填写项——等价类、边界值 工资薪制和错误程度需要考虑组合——因果图 判定表 (2)对每个控件根据选择的方法进行“独立分析”
A、使用判定表法分析“工资薪制”和“错误程度”部分,得到判定表
B、使用等价类划分法和边界值法分别对基本信息部分进行分析,得到数据分析表(等价类表+边界值表)-------见上课讲义
(3)结合数据分析表和判定表“综合”编写用例----------见上课讲义
22
4、判定表法(因果图法)小结 (1)考虑的是控件之间的组合关系 (2)每个控件的条件不宜过多,一般2—4项,如:按钮按下/不按、单选按钮选择/不选择、复选框选择/不选择、只有2—4个备选项的下拉列表 (3)输入条件也叫“条件桩”,输出结果也叫“动作桩” (4)判定表特点:
A、输入条件的排列顺序是无关紧要的 B、输出结果的排列顺序是无关紧要的
C、先测试哪种组合后测试哪种组合是无关紧要的
D、每种组合是独立的,在测试这种组合时,不用考虑其他组合
23
8.12
孙晨 sunchen@tarena.com.cn
1、设计用例:正交排列法、场景法、测试大纲法 2、熟悉“测试理论” 3、QC
4、手工功能项目
一、正交排列法
应用场合:如果一个界面上有很多的控件,每个控件还有很多的取值,测试时,需要测试取值的组合情况,并且组合数量较大(一般几十种(>20种)、几百种、甚至几千种),从代码的角度考虑,不同的组合使用的基本是同一段代码,这个时候为了选择最少的最优的组合,可以考虑使用正交排列法
共同点:都需要测试空间取值的组合情况 不同点:
A、组合数量:判定表适合测试组合数量较少(<20种),正交排列法适合测试组合数量较多(>20种)
B、代码:判定表不同的组合测试的基本是不同的代码,正交排列法不同的组合测试的基本是同一段代码
二、正交表 Ln(m)
L:公式里的符号 L:line 行 n:需要测试的组合数量(正交表的行数) K: 控件的个数(正交表的列数) m:每个控件的取值个数 选择正交表时,只需要确定m、k即可,n是固定的,不需要选择
三、应用正交表步骤(以工程1为例)
1、分析需求:列出所有的控件以及每个控件的取值 2、选择合适的正交表(确定m、k)
K=控件的个数=正交表的列数 (以工程1为例) 4个控件-->K=4
说明:如果没有正合适的K,取较大的K,任意删除列,取与控件个数相同即可 m=每个控件的取值个数=正交表中允许出现的最大值 每个控件有3个取值-->m=3 查正交表n=9 L9(3
4
k
)
界面有4个控件,每个控件有3个取值,总共需要测试34=81种组合,通过正交表选择最优的9种进行测试
3、将正交表的列名使用控件名称替换,将正交表中的取值使用控件的取值替换 4、编写用例:将正交表中的每一行转换成一条用例,也就是测试一种组合情况。
因为没有测试的组合过多,所以还是有发生缺陷的风险,所以时间允许的情况下,应该尽量的多补充一些用例
24
说明: 判定表是将一列转换成一条用例,测试一种组合情况
??如何确定底m,如何修改正交表 正交表的种类:
四、正交排列法的局限性
1、目前为止正交表只有9种(数量有限) 2、目前9种正交表基本都要求控件的取值个数相等,但实际测试中,这样的软件很难遇到。
五、正交表的设计思想
1、尽量保证每个控件的取值参与组合的次数相等(从列考虑)
2、从所有的组合中选取测试组合时,尽量均匀、零星的选取(从行考虑)
六、PPT打印案例
1、分析需求:
当“打印内容”选择“大纲视图”时,“幻灯片加框”复选框置灰(不用测幻灯片加框)
25
2、选择合适的正交表
(1)确定次幂k 4个控件 ? k=4 (2)确定底m
A、少数服从多数原则
看哪些控件的取值个数相等,就选择相等情况最多的那个底为m 第一个空间:3 第二个控件:4 第三个控件:3
第四个控件:2
3出现2次,4出现1次,2出现1次 ? m=3 L9(3
不改变原先正交表取值,自己添加
4
)
26
B、最大值原则
看哪个控件的取值个数最多,就以该控件的取值个数作为底m 第一个空间:3 第二个控件:4 第三个控件:3 第四个控件:2
第二个控件的取值个数为4,4个空间中取值个数最多 ? m=4 ?Ln(4) ? L16(4
4
4
)
(3)将能替换的先替换好?将每一列多出的机会尽量平均分配给该控件的其他取值?查看是否有重复的组合,再适当修改自己添加的取值
27
8.13
场景法
一、应用场合
1、界面特点:
没有太多的填写项(甚至没有),大部分操作都是通过鼠标的单击、双击、拖拽等完成。 2、测试特点:
要求测试人员对业务非常精通,站在用户的角度去模拟用户的操作,操作一般分为两类: (1)针对软件正确的操作——测试软件件的基本业务流程
(2)针对软件错误的操作——测试软件的健壮性 二、基本概念
1、基本流(有效等价类):模拟用户输入正确的操作 2、备选流(无效等价类):模拟用户输入正确的操作 三、使用场景法步骤
使用场景法设计银行卡取款功能测试用例
28
1、分析需求:按照软件的说明,列出基本流(正确的操作)和备选流(错误的操作) (1)基本流——成功取款(场景1)
(2)备选流(每个备选流就是一个场景) ①银行卡错误
29
②密码错误 ③密码三次错误 ④账户余额不足 ⑤达到当日最大金额
⑥ATM机金额不足⑦⑧⑨
2、根据基本流和备选流生成不同的场景
说明:熟练之后,直接做该步骤(实际工作中遇到的软件经常找不到明显的基本流和备选流) 本质上就是找到正确的操作流程和错误的操作流程
30
测试大纲法上机练习
写出snagit软件安装过程中每个安装界面的测试要点(安装测试用例、安装测试方案)。
1、Welcome to the snagit 10 Installation Wizard(欢迎进入Snagit 10的欢迎向导)
(1) 点击“Next”按钮,可以进入下一个界面
(2) 点击“Cancle”按钮,或关闭按钮,程序不应该直接退出,而是弹出“信息提示框”
a. 如果点击“Resume”按钮,或关闭按钮,可以继续安装 b. 如果点击“Exit Setup”按钮,终止安装
2、License Agreement(许可协议)
36
(1) (2) (3) (4)
如果不选择“I accept the License agreement”,“Next”按钮是置灰状态
点击“Cancle”按钮,或关闭按钮,程序不应该直接退出,而是弹出“信息提示框” 点击“back”按钮,程序返回上一个界面 选中“I accept the License agreement”,“Next”按钮可用,点击按钮,进入下一个界面
3、Help Us Improve Snagit(帮助改善Snagit)
(1)如果不选择\Snagit by collecting usage data\或\later when Snagit is
37
running\“Next”按钮置灰(默认状态)
(2)点击“back”按钮,程序返回上一个界面
(3)点击“Cancle”按钮,或关闭按钮,程序不应该直接退出,而是弹出“信息提示框” (4)点击“More Information”按钮,弹出软件相关页面
(5)选择\Snagit by collecting usage data\或\later when Snagit is running\“Next”按钮可用,点击进入下一个界面(需分别测试)
4、Licensing(填写许可信息)
(1)如果不选择\或\“Next”按钮置灰(默认状态) (2)点击“back”按钮,程序返回上一个界面
(3)点击“Cancle”按钮,或关闭按钮,程序不应该直接退出,而是弹出“信息提示框” (4)如果选择\have a key\,可以在“Name”和“Key”文本框中输入,输入无效信息时,点击“Next”按钮,弹出信息提示框,提示:请输入正确的密匙;输入正确时,点击“Next”按钮,进入下一个页面
A、点击“Visit TeachSmith Web Site”跳转至网页 B、点击“OK”按钮,提示框关闭,程序继续运行
(5)点击“Need help find your software key?”,跳转至帮助页面
38
(6)选择\,“Next”按钮可用,点击进入下一个页面
5、Select Installation Type(选择安装类型) 说明:目前只测试Typical(典型安装)
(1)默认选择“Typical(典型安装)”,点击“Next”按钮,可以进入以一个页面 (2)点击“back”按钮,程序返回上一个界面
(3)点击“Cancle”按钮,或关闭按钮,程序不应该直接退出,而是弹出“信息提示框”
6、Ready to Install Snagit(准备安装)
39
(1)默认选中“Start Snagit when installation is finished(安装完成后运行程序)”和“Run Snagit when Windows starts(系统启动时自动运行程序)” (2)点击“back”按钮,程序返回上一个界面
(3)点击“Cancle”按钮,或关闭按钮,程序不应该直接退出,而是弹出“信息提示框” (4)选中“Create shortcuts on Deskop(在桌面建立快捷方式)”并点击“Install”按钮,进入下一个页面
7、Updating System(更新系统)
(1)“Update System”页面显示安装进程,直至进入“安装成功”界面 (2)点击“Cancle”按钮安装进程会终止,安装界面关闭 8、Snagit 10 has been successful installed(安装成功)
提示“安装成功”信息,“Cancle”按钮置灰,点击“Finish”按钮,安装界面关闭,桌面上生成Snagit程序的快捷方式。
40
(3)灰盒测试经常用在集成测试阶段,结合了白盒测试和黑盒测试的要素(对于集成后的系统主要采用黑盒测试,如果发现缺陷,根据经验把可能出问题的代码拿出来做白盒测试,但也不需要做的很详细,该过程就称为灰盒测试) 2、按是否需要运行代码划分 静态测试 动态测试
(1)使程序运行起来的测试都叫动态测试
(2)只要程序不运行,进行的测试都叫静态测试,一般包括:代码检查、界面检查、文档检查等。 静态代码检查和白盒测试的区别:
静态代码检查只有代码检查单即可,按照代码检查单看程序写的是否规范,不需要编写用例;白盒测试需要编写用例,使程序运行起来,查看代码的结构;通常将两者结合起来,叫做静态白盒测试。 3、按照软件特性分类 功能测试 性能测试
(1)所有的软件都需要进行功能测试,可以分为手工和自动化(QTP、selenium) (2)性能测试主要的是软件可以承受的人数(负载)、响应时间等,性能测试只能使用工具(LoadRunner、Jmeter)。 4、错误猜测和随机测试
随机测试:就是模拟用户可能的操作进行随意的操作
错误猜测:根据经验猜测哪些模块最可能发现缺陷,着重测试该模块
以上两种测试方法,一般都是在项目后期,所有的用例基本运行完毕,进行的测试
46
8.19
一、设计用例方法总结 1、最重要 (1)场景法 A、应用场合
测试一个软件时,不会先考虑控件具体输入什么内容,而是先使用场景法整理该软件的测试思路
B、主要概念
基本流:针对程序正确的操作 备选流:针对程序错误的操作 C、分析步骤:
①分析需求:找出基本流和备选流
②根据基本流和备选流生成场景(熟练后直接做该步) ③根据场景生成用例 (2)等价类 A、应用场合:
只要有数据输入的地方都,并且包含:表格、下拉列表、组合列表框、列表等 B、主要概念:
①有效等价类:正确的数据 ②无效等价类:错误的数据 C、分析步骤: ①划分等价类 ②细化等价类
③建立等价类表(熟练后直接做该步) ④选择有效等价类和无效等价类编写用例(有效等价类尽量组合、无效等价类先一个一个测试,再考虑组合) 2、重要 (1)边界值 A、应用场合:
只要有数据输入的地方都,并且包含:表格、下拉列表、组合列表框、列表等 B、找到有效和无效数据的分界点,测试该分界点及其两边的值 C、说明:
实际工作中,由于时间的问题,在开始测试时,边界值可能没有时间测试,所以经常把边界值先舍掉,在项目后期有时间时再对边界值进行补充测试 (2)因果图/判定表 A、应用场合:
控件之间存在因果关系,并且需要测试控件的组合情况(组合数量较少、不同组合测试的是不同的代码) B、9个图形符号 C、分析步骤:
①找出“因”---输入条件 ②找出“果”---输出结果
③找出“因”组合和限制关系 ④找出“果”组合和限制关系 ⑤画出因果图和判定表
⑥将判定表的一列编写成用例
47
3、次重要
(1)正交排列法
A、应用场合:有很多控件,每个控件有很多的取值,需要测试所有取值的组合情况(组合数量较大,测试的基本是同一段代码),所以需要在所有组合中选择最优的组合进行测试 B、Ln(m)
次幂K:控件的个数
底m:每个控件的取值个数 n:需要测试的组合数量 C、分析步骤:
①分析需求:列出所有的控件,以及每个控件的取值 ②选择合适的正交表
③替换(将正交表的列名使用控件名称替换,将正交表中的取值用控件的真实取值替换) ④将正交表的一行编写成一条用例 (2)大纲法 A、应用场合:
适用于有多个窗口,每个窗口有多个操作 B、分析步骤:
①分析需求:列出所有的窗口以及每个窗口上的操作 ②找出操作之间的联系(测试路径),编写用例
综合选择的方法:
实际工作中,由于被测系统的特点,往往需要综合应用以上方法,那么应用思路是: ①根据控件的特点,选择用例的方法
②单独考虑一个(组)控件,针对该控件写出数据表(等价类表、判定表、正交表等) ③综合以上数据表,编写用例
二、QC(Quality Center质量中心) (一)测试工具简介 1、功能自动化工具
QTP(Mercury Interactive?HP) quality test professonal vbs selenium(开源、免费) java 2、性能自动化工具
Loadrunner(LR) 类C Jmeter(开源 免费) Java 3、测试管理工具
QC10.0 TD: Test Director QC: ALM: Application lifecycle management 4、缺陷跟踪工具
Mantis\\bugzilla\\bugfree (二)QC简介
是做测试管理的工具(版本、需求、用例、执行用例、跟踪缺陷等),是B/S结构的系统,QC必须安装在服务器版本的操作系统(winserver2003/2008) (三)虚拟机
使用软件技术在物理机上模拟出1台(多台)计算机---包含硬件、操作系统、应用软件。 Vmware/Microsoft/Oracle
48
k
(四)QC的访问方式
简单—>难 不真实—>真实
1、在虚拟机中的桌面上双击“HP Quality Center” http://localhost:8080/qcbin/
(http):超文本传输协议
(://):固定分隔符,分离传输协议和IP地址(域名) (localhost):本机 (:8080):端口号(http默认端口号是80端口,如果使用的是80端口,那么端口号可以省略) (qcbin):虚拟目录。 虚拟目录所有的字符必须小写 2、在虚拟机中,打开浏览器,使用IP地址访问
查看动态IP地址: 在虚拟机中点击 开始?运行?输入cmd?启动DOS(disk operation system磁盘操作系统)?输入ipconfig?回车?查看IP Address 虚拟机IP地址:172.30.4.17
http://虚拟机的IP地址:8080/qcbin ? http://172.30.4.17:8080/qcbin 3、在物理机中,打开浏览器,通过IP地址访问 (五)QC的三大模块 1、站点管理 步骤:
①在QC首页点击“Site Administrator”(站点管理) ②输入用户名user name:admin 输入密码password:123456 点击“Login”(登录)按钮
说明:admin是安装QC时设定的 2、项目自定义管理 步骤:
①在QC首页点击“Quality Center”
②输入用户名login name 输入password ③点击“Authenticate”(验证、鉴权) ④选择域Domain和项目Project ⑤点击“Login”登录
⑥点击菜单“Tools?Customize(自定义的)” 3、测试管理
步骤: 登录“项目自定义管理模块”的步骤1—5 三、“站点管理”模块详解
主要功能:管理域、项目、用户 (一)“Site projects”站点项目管理 管理域、项目
1、域的概念:域是管理项目的逻辑单位,相当于文件夹、一个域的下面可以存放n多个项目
2、创建域:
①点击工具栏按钮“Create Domain”(创建域)
②输入域名(不能重名、不能包含特殊字符除了下划线_)
49
3、删除域:
选择一个域,点击工具栏按钮“Delete Domain”(删除域) 说明:
A、只有空域才能删除
B、实际工作中,一般不删除域,除了磁盘空间不足或者项目组(分公司)不存在了才考虑删除域
4、创建项目
只有先创建项目,才能管理整个项目的测试流程(版本、需求、用例、执行用例、缺陷等) 步骤:
①点击工具栏按钮“Create Project” ②选择一种创建项目的方式: 选择A
A、Create an empty project 创建一个空项目
B、Create a project from a template 从模板创建一个项目 C、Create a project by copying data from an existing project
从已经存在的项目中拷贝数据创建项目(后期项目用到前期项目数据时) D、Create a project by importing data from a Quality Center project file(.qcp) 通过导入QC项目文件创建项目(数据的备份恢复) ③输入项目名称(project name)
④选择数据库类型 (database type) 选择数据库服务器(DB sever),输入管理员的用户名和密码(默认即可) ⑤添加项目管理员 ⑥确认项目信息
“Activate project” 复选框:激活项目
“Enable versioning” 复选框:版本控制(如果采用版本控制,那么项目中的某些数据同一时刻,只允许一个人操作该数据) ⑦点击“Create”
复习:
质量中心quality center 站点管理site Administrator 用户名user/login name 密码password 登录login 退出logout 返回return
域domain 项目project 删除delete 创建create Authenticate验证,鉴权 customize自定义
import导入 export导出 data数据,内容 Activate 激活 version版本 8.20
5、删除项目
①选中一个项目,点击工具栏按钮“Delete”
②输入数据库服务器管理员用户名和密码(默认即可) 6、激活/停止项目
激活:选中项目,点击鼠标右键,在右键菜单中点击“activate project” 停止:选中项目,点击鼠标右键,在右键菜单中点击“Deactivate project”
说明: 如果使用QC过程中遇到莫名其妙的问题,首先考虑停止再激活项目,一般情况下可以解决。
50
正在阅读:
软件测试基础(自己在培训学校的笔记)02-27
我的自画像作文500字02-05
C++面向对象程序设计习题解答与上机指导(第二版)源程序11-06
第一次买菜作文500字02-04
2018-2024年中国氯化胆碱市场运行态势研究报告(目录) - 图文09-21
中国黄金集团投资金条05-29
基于三菱PLC五层电梯控制系统的设计06-24
湘渌教育简报203-08
俄罗斯特色的火炉06-20
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 软件测试
- 培训学校
- 基础
- 笔记
- 自己
- 第二轮面试问题(1)
- 机械设计作业题
- 保温节能监理实施细则
- 创新活动载体激发党建活力 - 图文
- 关于分词作状语的用法说明
- 地下人防车库工程基础方案
- 城市执法大队开展系列活动情况汇报
- 小学德育材料
- 2010年民族团结月实施方案
- 山东省临沂市中考语文二轮专题复习材料(文学类文本阅读一)
- 氧气瓶和乙炔瓶的安全技术操作规程
- C15101 行业比较研究方法
- 三年级上学期时间问题习题
- Linux必备--Linux系统命令大全及其使用详解
- 算法设计与分析二分查找实验报告
- 《好雪片片》习题
- 2011新东方政治核心考点完美整理 - 图文
- 2019粤教版高中物理选修3-13.3《探究安培力》word课时检测
- 观察水中的微生物实验报告单
- 常用贸易术语英语词汇及缩略语必备学习