软件测试基础自己在培训学校的笔记.docx
- 文档编号:11557790
- 上传时间:2023-03-19
- 格式:DOCX
- 页数:90
- 大小:4.81MB
软件测试基础自己在培训学校的笔记.docx
《软件测试基础自己在培训学校的笔记.docx》由会员分享,可在线阅读,更多相关《软件测试基础自己在培训学校的笔记.docx(90页珍藏版)》请在冰豆网上搜索。
软件测试基础自己在培训学校的笔记
第一讲
一、软件
1、计算机(computer)=硬件(hardware)+软件(software)
PC=personalcomputer个人电脑
2、软件=程序(program)+文档(document)
3、测试对象:
不仅是程序,还包括文档
4、开发过程包括:
需求分析(需求分析师完成,需求说明书)
程序设计(系统分析师、系统架构师完成,概要设计说明书、详细设计说明书)
编程(程序员完成,程序)
4、哪个阶段出现的缺陷多?
需求>程序设计>编程
在需求阶段引入的bug占55%左右,程序设计阶段bug占25%左右,编程引入的bug占15%左右
测试思想:
(1)测试工作应该咋在项目的早期展开,与开发并行
前期需要对相关文档测试,才能更好控制质量,如果对开发文档进行测试,需要掌握一定开发知识
二、软件缺陷
1、要求的功能未实现
2、画蛇添足
3、出现了指明不应出现的错误(程序出现用户数据错误时,给出友好的处理)
一个优秀软件的基本特点:
(1)用户要求的功能要实现
(2)很强的异常处理能力(健壮性)
4、需求虽未明确提及,但应该实现的功能(需求是人写的,可能会有遗漏)
5、软件难以理解、不易使用、运行缓慢,或者站在用户角度认为是不好的
与缺陷等意的词:
错误毛病失效违背异常
三、软件测试
在现有软件中(程序+文档)寻找缺陷的过程(找缺陷是有科学的方法——测试用例)
截图技巧:
(1)使要截取的窗口界面显示出来,按下“PrtSc”(printscreen,把当前界面当做图片复制到windows的剪切板
(2)打开画图软件开始-运行-mspaint
(3)粘贴(CtrlV)
(4)选定区域:
点击工具栏第一行第二个“选定按钮”,变为十字光标,把光标放在想要截取区域的左上角,按朱鼠标左键不放,向右下角拖拽
(5)Ctrl+C/X
(6)Ctrl+N新建
(7)Ctrl+V
(8)Ctrl+S保存
(9)Ctrl+A全选
(10)Ctrl+C复制
(11)在word中或其他文档中ctrl+v
四、bug的历史
缺陷:
defect一般称为bugDebug:
调试除错
五、计算机的层次
1、硬件(裸机)
2、软件
(1)操作系统
(2)应用软件
补充:
(1)裸机也包含软件,主要是BIOS程序(Basicinput/outputsystem)
A、存储在主板上的一块芯片中
B、作用:
打开电脑开关,首先由BIOS程序控制机计算机,进行“上电自检”,检查硬件设备的完好性,如果设备没问题,再把控制权交给操作系统,如果检查出有问题,通过蜂鸣器发出报警声,并停止引导。
C、如何进入bios
打开电脑开关,迅速按下“delete”键(笔记本一般为功能键,如F2)
(2)常见的操作系统(OperatingSystem,简称OS)
WindowsunixlinuxMACOSDos(diskoperatingsystem磁盘操作系统)
(3)查看windows版本,内存,计算机名
A、鼠标放在桌面“我的电脑”,点击右键,在弹出的菜单中点击“属性”
B、在“系统属性”窗口中的“常规”选项卡中查看版本、补丁包(servicepackge)、cpu型号、频率、内存
C、在“计算机名”选项卡中查看计算机名,点击“更改”按钮,可以更改
六、软件分类
1、基本分类
(1)系统软件
A、操作系统
B、操作系统的补丁程序
C、驱动程序(操作系统的内核程序通过调用硬件的驱动程序来完成硬件设备的管理)
(2)应用软件以后的工作以应用软件测试为主
2.按照软件结构划分(看软件的运行是否基于网络)
(1)否——单机软件(如office)
(2)是——分布式软件
分布式软件按照客户端的特点可以细分为:
1C/S结构(Client/Server,客户端/服务器结构)客户端需要使用该公司提供的专门软件才能享受服务如:
QQ、微信、联众游戏
2B/S结构(Browser/Server,浏览器/服务器结构)客户端只要使用浏览器就可以享受服务如:
各种网站、搜索引擎、论坛
第二讲进制转换和逻辑代数
一、进制转换
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
C、权:
8的次幂
右侧第1位:
权为8的0次幂
(1)
右侧第2位:
权为8的1次幂(8)
右侧第3位:
权为8的2次幂(64)
……
D、使用后缀字母O
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)1101101B=(109)D=(6D)H
2)26D=(11010)B=(1A)H
3)3CH=(111100)B
4)2EH=(46)D
二、逻辑代数
1.逻辑与
(1)定义:
只有一件事情的所有条件全部成立,这件事情才成立。
(2)两个条件真值表
真值表表示的输入条件和输出结果之间的所有对应关系
输入条件
输出结果
A
B
Y
0(假,不成立)
0
0
0
1(真,成立)
0
1
0
0
1
1
1
(3)三个条件真值表
输入条件
输出结果
A
B
C
Y
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
0
1
0
0
0
1
0
1
0
1
1
0
0
1
1
1
1
(4)结论:
有0出0全1才1
(5)表达式:
Y=A*B=AB
(6)多位二进制数,按位与运算
右侧对齐,位数少的前面补0,上下对应的位分别进行与运算即可
2、逻辑或
(1)定义:
只要有一个条件成立,这件事情就成立
(2)两个条件真值表
输入条件
输出结果
A
B
Y
0
0
0
0
1
1
1
0
1
1
1
1
(3)三个条件
输入条件
输出结果
A
B
C
Y
0
0
0
0
0
0
1
1
0
1
0
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
1
1
(4)结论:
有1出1,全0才0——输入只要有1(成立),输出必为1(成立);只有输入全部为0(不成立),输出才为0
(5)四个条件
输入条件
输出结果
A
B
C
D
X=
ABCD
Y=
A+B+C+D
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
1
0
0
1
1
0
1
0
1
0
0
0
1
0
1
0
1
0
1
0
1
1
0
0
1
0
1
1
1
0
1
1
0
0
0
0
1
1
0
0
1
0
1
1
0
1
0
0
1
1
0
1
1
0
1
1
1
0
0
0
1
1
1
0
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
(6)表达式:
Y=A+B
(7)多位二进制数,按位或运算
右侧对齐,位数少的前面补0,上下对应的位分别进行逻辑或运算
3、逻辑非(反)
(1)定义:
一件事情的成立要求其条件要不成立
(2)真值表
逻辑非只能有一个条件
输入条件
输出结果
A
Y
0
1
1
0
(3)表达式:
Y=A
(4)多位二进制数,按位取反把每一位数分别取反即可
第三讲测试报告
一、测试人员的职责
1、阅读或编写测试计划(3篇)
2、编写测试用例(1000条)
3、执行测试(包括返测),发现bug,提交缺陷报告(50份)
4、编写测试总结报告(3篇)
5、使用测试管理工具跟踪测试管理bug
二、缺陷报告的组成
1、缺陷编号(DefectID)
提交bug的顺序
如果使用缺陷管理工具会自动编号
在一个项目组是中会统一编号
2、缺陷标题(summary)
简明扼要的描述一下该bug
3、缺陷的发现者(DetectedBy)
一般就是自己
4、发现缺陷的日期(DetectedOnDate)
一般就是当天
5、缺陷所属的模块(Subject)
在测试程序的哪个功能模块时发现的bug,开发经理据此分配由谁解决bug
6、发现缺陷的版本(Detectedinrelease)
在测试程序的哪个版本时发现的bug
7、指派给谁处理(Assignedto)
测试人员指派给开发经理,开发经理会根据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->Open->Fixed->Closed
9、缺陷的严重程度(severity)
表明该缺陷有多糟糕:
Urgent:
致命的bug,造成死机、重启、崩溃等
Veryhigh:
非常严重的缺陷
High:
严重的缺陷
Medium:
中等程度的bug
Low:
小的bug
说明:
每个词代表的含义在不同公司可能会有所不同,一般需要在专门的文档中定义好具体细节。
案例:
Bugleveldefinition.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进行分析、统计、总结
四、如何识别bug
1、通过测试用例的预期结果识别,实际结果与预期结果不一致就是bug
2、参考需求文档,与需求不一致,就是bug
3、通过与相关人员讨论
4、参考缺陷的5点定义
五、提交bug时注意的问题(了解)
六、缺陷报告处理流程***
参考缺陷状态status部分
缺陷的处理流程也就是缺陷的跟踪管理过程
第四讲使用等价类划分和边界值法编写测试用例
一、基本概念
1、测试用例(测试案例)
测试用例是由测试人员在测试执行之前编写的指导测试执行过程的重要文档,主要包括:
用例编号、测试目的、用例描述、预期结果
2、设计测试用例的方法
(1)等价类划分法
(2)边界值法
(3)因果图法
(4)判定表法
(5)正交排列法
(6)场景法
(7)测试大纲法
(8)状态转换图(不讲)
3、写用例的参考
(1)参考需求文档
(2)参考已经开发出来的程序
(3)讨论
二、等价类划分法编写用例
1、应用场合
只要有数据输入的地方就可以采用。
从无穷多的数据中挑选典型代表数据进行测试
2、测试思想:
穷举测试(把所有可能的数据全部测试一遍)是最全面的测试,但时间成本太高,在实际工作中不能采用。
测试用例的方法是在保证测试质量的基础上使用最少的数据达到最大的测试效果。
不做穷举测试,是存在风险的(遗漏bug的风险),如果时间允许,可以适当补充一些数据(以后遇到纠结的数据时,把其补充上)
3、核心概念
(1)有效等价类
按照程序规格有意义、合理的输入数据集合
程序接收到有效等价类,可以正确计算、执行
(2)无效等价类
按照程序说明无意义、不合理的输入数据集合
程序接收到无效等价类数据,应该给出错误提示,或者根本无法输入
说明:
一个好的软件基本特点:
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的整数
无效等价类
编号
数据要求
1
<-99的整数
2
>99的整数
3
为空
4
小数
5
字母
6
汉字
7
符号
(4)编写测试用例
从每个等价类中至少挑选1个数据进行测试
再测试“第二个数”文本框,保证第一个数正确
三、边界值法
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、如何优化
在一条用例中,可以尽可能多的测试不同控件的一个有效等价类或有效边界值——不同控件的有效等价类或有效边界值可以组合在一条用例中测试,在测试质量不变的情况下,减少用例数量,
五、测试用例的强化
针对无效等价类和无效边界值
在一条用例中,开始的时候只测试一个控件的一个无效等价类或无效边界值——不同控件的无效等价类或无效边界值开始时不能组合——避免屏蔽现象发生(前面的错误提示出现后,后面的错误提示就不出现了)
最后,再适当考虑不同控件的无效等价类或无效边界值的组合(姓名和年龄),以及同一个控件不同无效等价类或无效边界值的组合——无效等价类的强化,提高破坏能力
说明:
1、当发现软件处理同一个等价类中不同数据的情况不相同时,有必要把该等价类进行细化(如:
处理全部为数字和部分为数字不一样)
2、对照软件写用例,当发现bug时,不要按照bug去写,要把正确的的步骤和预期写出来。
六、小结
1、有效等价类一般都可以从需求中直接找到,一般数量较少。
使用有效数据进行测试,称作“通过测试”或“正向测试”
2、无效等价类一般数量较多(时有效等价类的2-5倍)。
使用无效数据进行测试,称作“失败测试”或“反向测试”。
无效等价类主要考虑以下要素:
序号
数据要求
无效等价类
示例
1
不能为空(必填项)
为空
2
不能重复
重复
3
数据有大小范围要求
数据超出范围
年龄:
18—60
无效:
<18和>60
4
字符个数有范围要求
字符个数超出范围
姓名:
3—20个字符
无效:
<3个和>20个
5
数据有数据类型、格式、样式要求
数据类型、格式、样式非法
(1)要求整数,无效为非整数(小数、字母、汉字、符号)
(2)要求是数字(小数或整数),无效为非数字(字母、汉字、符号)
6
小数有小数位要求
小数位数超出范围
说明:
(1)如果要求是小数,没有指名不允许整数,就意味着也允许整数,需要对整数也测试
(2)对于非必填项,也要测试不填的情形(当做有效等价类)
(3)因为每个控件的有效等价类加上有效边界值的数量一般不会完全相等,会导致在测试某个控件的有效等价类或有效边界值时,其他控件的有效数据全部测试,这时需要从这些测完的数据中再次挑选,这是一种冗余,但在工程中不能避免,在写时目的时,冗余的测试就不要写出了。
8.10
补码(了解)
1、整数在计算机中以补码方式存储
2、整数转换成二进制数,称为“原码”(一般前面补齐适当的位数)
3、计算机中一般用0表示+,用1表示-
4、为什么用补码?
使用补码,可以使数据的符号位参与到运算中,当成普通数字处理
5、如何算补码
(1)正数的补码就是其原码(算出对应的二进制,补齐足够的位数,最高位用0表示)
11——>0000000……1011第一个0是符号位,其余占位,1011是数值
(2)负数补码:
A、求负数的绝对值(变成正数)
B、求该绝对值的二进制(前面补齐0)
C、对求出的二进制按位取反
D、取反后做算数加1如下:
第五讲因果图法
一、基本概念
1、应用场合
在一个界面中,有多个控件,控件之间有一定的组合关系和限制关系,不同的输入组合会发生不同的输出结果,为了弄清输入和输出的对应关系,使用因果图法
2、核心概念
(1)因——原因,输入条件
(2)果——结果,输出结果
使用画图的方式表达输入和输出之间的关系
3、图形符号(联想到软件中去)
(1)基本符号——表达的是输入和输出的对应关系
①恒等***
有输入有对应输出无输入无对应输出
②非
③与***
a=b=c=1Y=1有0出0,全1才1
④或
a=b=c=0Y=0有1出1,全0才0
(2)约束(限制)符号——约束的是同一类的:
要么同时约束输入,要么同时约束输出
①互斥(E)exclude
a、b、c三个原因不可能同时成立a、b、c最多只有一个1(可以同时为0)
②唯一(O)only
有且仅有一个1(不能同时为0)
互斥和唯一的区别:
互斥没有默认值,而唯一会有一个选定的默认值
③要求(R)
若a(主要)=1,必须b(辅助,次要)=1表示当a出现时,b也必须出现
“自动登录”要求“记住密码”
④屏蔽(M)
如果a=1,必须b=0,a出现,b不出现;当a=0时,b的值不定
(5)包含(I)
abc3个原因至少有一个必须成立;abc至少包含一个1
二、使用因果图法分析程序
案例需求
1、找出所有的输入条件(因),编号
(1)投币50元
(2)投币100元
(3)充值50元
(4)充值100元
2、找出所有的输出结果
编号
A、充值成功并退卡
B、提示充值成功
C、找零
D、错误提示并退卡
步骤1、2是初步分析需求的过程,可以同时画出因果图的“因”和“果”,并写出“判定表”的“输
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 测试 基础 自己 培训 学校 笔记