资源描述
软件测试知识点总结
第一次课10.7软件测试概述
一 软件测试定义:使用人工或者自动伎俩来运行或测定它是否满足要求需求,或弄预期结果与实际结果之间差异。
二 软件测试分类
1.按照开发阶段划分
a) 单元测试:模块测试,检验每个程序单元嫩否正确实现详细设计说明中模块功效等。
b) 集成测试:组装测试,将全部程序模块进行有序、递增测试,检验程序单元或部件接口关系
c) 系统测试:检验完整程序系统能否和系统(包含硬件、外设和网络、系统软件、支持平台等)正确配置、连接,并满足用户需求。
d) 确认测试:证实软件是否满足特定于其用途需求,是否满足软件需求说明书要求。
e) 验收测试:按项目任务或协议,供需双方订立验收依据文档进行对整个系统测试与评审,决定是否接收或拒收系统。
2.按照测试技术划分
白盒测试:经过对程序内部结构分析、检测来寻找问题。检验是否全部结构及逻辑都是正确,检验软件内部动作是否按照设计说明要求正常进行。--结构测试
黑盒测试:经过软件外部表现来发觉错误,是在程序界面处进行测试,只是检验是否按照需求规格说明书要求正常实现。
灰盒测试:介于白盒测试与黑盒测试之间测试。
3 按照测试实施组织划分:开发方测 用户测试 第三方测试
4 是否使备测软件运行:静态测试 动态测试。
课后作业:1.软件测试与调试区分?
(1)测试是为了发觉软件中存在错误;调试是为证实软件开发正确性。
(2)测试以已知条件开始,使用预先定义程序,且有预知结果,不可预见仅是程序是否经过测试;调试通常是以不可知内部条件开始,除统计性调试外,结果是不可预见。
(3)测试是有计划,需要进行测试设计;调试是不受时间约束。
(4)测试经历发觉错误、改过失误、重新测试过程;调试是一个推理过程。
(5) 测试执行是有规程;调试执行往往要求开发人员进行必要推理以至知觉"飞跃"。
(6) 测试经常是由独立测试组在不了解软件设计条件下完成;调试必须由了解详细设计开发人员完成。
(7) 大多数测试执行和设计能够由工具支持;调式时,开发人员能利用工具主要是调试器。
2.对软件测试了解?
软件测试就是说要去依照客户要求完善它.即要把这个软件还没有符合或者是和客户要求不一样,或者是客户要求还没有完全达成要求部分找出来。
1.首先要锻炼自己软件测试能力,包含需求分析能力,提取能力,逻辑化思想能力,即就是给你一个系统时候,能够把整个业务流程很清楚理出。
2.学习测试理论知识并与你锻炼能力相结合。
3.想和做。想就是说你看到任何系统都要有习惯性思索;做就是把实际去做练习,然后提取经验。
总结测试用例,测试计划当然主要,但能力和思想一旦到位了,才能成为一名合格软件测试工程师。
第二次课10.10软件测试模型
一、软件缺点:(1)软件未达成产品说明书中已经标明功效;
(2)软件出现了产品说明书中指明不会出现错误;
(3)软件未达成产品说明书中虽未指出但应该达成目标;
(4)软件功效超出了产品说明书中指明范围;
(5)软件测试人员认为软件难以了解、不易使用,或者最终用户认为该软件使用效果不良。
二、软件测试模型 H模型(了解) V模型:,
V模型缺点
1、仅把测试过程作为在需求分析、系统设计及编码之后一个阶段
2、无视了测试对需求分析,系统设计验证,一直到后期验收测试才被发觉。
W模型概念:增加了软件各开发阶段中应同时进行验证和确认(v$v)活动,明确了测试与开发并行性.
1、测试伴伴随整个软件开发周期
2、测试对象不但仅是程序,需求、设计和功效一样要测试
3、依照W模型要求,一旦有文档提供,就及时确定测试条件、编写测试用例
四. 软件测试标准
4.1 完全测试不可能性 4.2 软件测试是有风险活动
4.3.测试无法显示潜伏软件缺点和故障 4.4. 充分注意测试中群集现象
4.5杀虫剂现象 4.6.并非全部软件缺点都要修复
4.7. 80-20 标准 4.8.软件测试必须有预期结果
4.9. 应该把“尽早地和不停地进行软件测试”作为软件测试者座右铭
4.10. 程序员应该防止检验自己程序
4.11 追溯至用户需求 4.12 及时更新测试
第三次课10.14 等价类
1、等价列划分设计方法:是把全部可能输入数据,即程序输入域划分成若干部分(子集),然后从每一个子集中选取少许具备代表性数据作为测试用例。
等价类是指某个输入域子集合。在该子集合中各个输入数据对于揭露程序中错误都是等效。并合理地假定:测试某等价类代表值就等于对这一类其余值测试。
有效等价类:对于程序规格说明来说是合理、有意义输入数据组成集合
无效等价类:对软件规格说明而言,是无意义、不合理输入数据所组成集合
等价类对于测试有两个主要意义:完备性 无冗余性
2、等价类划分标准
(1)按照区间划分: 一个有效等价类和两个无效等价类。
(2)按照数值划分: n 个有效等价类和一个无效等价类
(3)按照数值集合划分 一个有效等价类和一个无效等价类
(4)按照限制条件或规则划分:可确定一个有效等价类和若干个无效等价类
(5)细分等价类
3.等价类划分法步骤
(1)确定等价类
(2)建立等价类表,列出全部划分出等价类
(3)从划分出等价类中按以下3个标准设计测试用例:
A 为每一个等价类要求一个唯一编号
B 设计一个新测试用例,使其尽可能多覆盖还未被覆盖有效等价类,重复这一步,直到全部有效等价类都被覆盖为止。
C 设计一个新测试用例,使其仅覆盖一个还未被覆盖无效等价类,重复这一步,直到全部无效等价类都被覆盖为止。
习题:三角形问题。
4.等价类划分法
(1)弱通常等价类测试
特点: 不考虑无效数据,测试用例使用每个等价类中一个值
(2)强通常等价类测试
特点:每一个有效等价类要选择最少一个测试用例
(3)弱健壮等价类测试
对于有效输入: 使用每个有效类一个值
对于无效输入: 测试用例只使用一个无效值,其余值都是有效
(4)强壮壮等价类测试
每个有效等价类和无效等价类都最少要选择一个测试用例
第四次课10.17 等价类划分(续)
1.测试用例定义
(1)测试用例是为特定目标而设计一组测试输入、执行条件和预期结果。
(2)测试用例是执行最小实体。
2、特征:(1)最有可能抓住错误;(2)不是重复、多出;
(3)一组相同测试用例中最有效;(4)既不是太简单,也不是太复杂。
3、设计测试用例基本准则
测试用例代表性 测试结果可判定性 测试结果可再现性
4、确定等价类方法
(1)先考虑输入数据类型(正当型和非法型)
(2)再考虑数据范围(正当型中正当区间和非法区间)
(3)最终考虑输出结果,逆向设定输入
5、常见等价类划分测试形式
针对是否对无效数据进行测试,能够将等价类测试分为两种:
1 、标准等价类测试(也称,通常等价类测试)
2、健壮等价类测试
弱健壮(5):A (Anom, Bnom) B (Anom,Bmin-)
C (Anom,Bmax+) D (Amin-,Bnom) E (Amax+,Bnom)
强壮壮(9):(Amin- ,Bmin-) ( Amin- ,Bmin+) (Amin+, Bmax+) (Amax+, Bmin-)
.
第五次课10.21 边界值分析法
1、边界值分析法就是对输入或输出边界值进行测试
2、特点:具备很强发觉程序错误能力;测试用例来自等价类边界;
3、基本原理:故障往往发生在输入定义域和输出值域边界上,而不是在其内部。
4、方法:1、首先应确定边界情况.
2、选取恰好等于,刚才大于或刚才小于边界值作为测试数据
5、标准边界值: min、min+、nom、max-、max
健壮边界值: min、min+、nom、max-、max min- max+
6、例
<xnom,ymin> <xnom,ymin+> <xnom,ymax> <xnom,ymax->
<xmin,ynom> <xmin+,ynom> <xmax,ynom> <xmax-,ynom> <xnom,ynom>
7、对于一个含有n个变量程序,只让其中一个变量取极值,让其余变量取正常值,被保留变量依次取min、min+、nom、max-、max值,对每个变量都重复进行。n个变量程序,边界值分析测试程序会产生4n+1个测试用例。
第六次课10.24 -----决议表方法
1.概述:决议表法是黑盒测试方法中最为严格、最具备逻辑性测试方法。
2.什么时候使用?
程序输入输出比较多,输入之间、输出之间相互制约条件比较多时,能够清楚地表示它们之间各种复杂关系。
条件桩
条件项
动作桩
动作项
3.决议表通常由四部分组成: 规则
条件桩: 列出问题全部条件
条件项:针对条件桩给出条件列出全部可能取值
动作桩:给出问题要求可能采取操作
动作项:与条件项紧密相关,指出在条件项各组取值情况下应采取动作
规则:项中每一列是一条规则,每一条规则是一组测试用例。
4.决议表化简
(1)合并 :假如一个条件项(表中某列中条件值)和另外一个条件项所产生动作是相同,且两个条件项对应每一行值只有一个是不一样,则能够将其合并.合并项除了不一样值变成”不关心”条目外,其余不变
(2)包含:假如两个条件项动作是相同,对任意条件1值和条件2中对应值,假如满足:
A.假如条件1值是T(F),则条件2中值也是T(F).
– B.假如条件1值是-(不关心),则条件2中值是T,F,-,称条件1包含条件2,条件2能够撤去.
– 重复A,B就能够得到精简决议表.
N
Y
N
N
Y
Y
√
√
-
N
Y
√
N
N
N
-
Y
Y
√
√
N
-
Y
√
合并 包含
5.结构决议表步骤:
(1)确定规则个数 (2)列出全部条件桩和动作桩
(3)填入输入项 (4)填入动作项,得到初始决议表 (5)对初始决议表化简
6决议表测试法适用范围
(1)if-then-else逻辑突出 (2)输入变量之间存在逻辑关系
(3)包括输入变量子集计算 (4)输入和输出之间存在因果关系
第七次课10.28--------因果图方法
1、概述:假如输入之间关于系,测试时必须考虑输入条件各种组合,考虑适合于描述对于多个条件组合,对应产生多个动作形式来设计测试用例,这就需要利用因果图。
因果图方法最终生成就是判定表。适合于检验程序输入条件各种组合情况。
2、因果图法基本思想: 首先从程序规格说明书描述中,找出因(输入条件)和果(输出结果或者程序状态改变),然后经过因果图转换为判定表,最终为判定表中每一列设计一个测试用例.
3.基本符号 原因 结果
通常在因果图中用Ci表示原因,用Ei表示结果,各结点表示状态,可取值“0”或“1”。“0”表示某状态不出现,“1”表示某状态出现。
C2
c1
恒等: c1为1,则e1也为1,不然e1为0. 非: 若c1是1,则e1为0,不然e1是1.
或: 若c1或c2或c3是1,则e1是1,若三者都不为1,则e1为0.
与: 若c1和c2都是1,则e1为1,不然若有其中一个不为1,则e1为0.
4..约束:实际问题中,输入状态之间可能存在一些依赖关系.
E约束(异): a,b最多有一个可能为1,不能同时为1.
I约束(或): a,b,c中最少有一个必须为1,不能同时为0.
O约束(惟一): a和b必须有一个且仅有一个为1
R约束(要求):a是1时,b必须是1,即a为1时,b不能为0
M约束:对输出条件约束,若结果a为1,则结果b必须为0.
5、因果图生成测试用例基本步骤
1、找出原因和结果。2、画出因果图。 3、增加约束。
4、把因果图转化为判定表,并化简。
5、把判定表每一列拿出来作为依据,设计测试用例。
6.例题
(1)原因: C1:第一个字符是A; C2:第一个字符是B;
C3:第二个字符是一个数字字找.结果:
结果: E1:给出信息L; E2:修改文件; E3:给出信息M;
(2)因果图. (3)决议表。
(4)设计测试用例
测试用例1: 输入数据:A3 预期输出:修改文件
测试用例2: 输入数据:AM 预期输出:给出信息M
测试用例3: 输入数据:B3 预期输出:修改文件
测试用例4: 输入数据:B* 预期输出:给出信息M
测试用例5: 输入数据:C2 预期输出:给出信息L
测试用例6: 输入数据:CM 预期输出:给出信息LM
1
2
3
4
5
6
7
8
C1
C2
C3
10
1
1
1
1
1
0
1
0
1
1
1
0
0
1
0
1
1
1
0
1
0
1
0
0
1
0
0
0
0
0
E1
E2
E3
不可能
√
√
√
√
√
√
√
√
√
测试用例
A3
A5
AM
A&
B3
B5
BM
B*
C2
X6
CM
D*
7.因果图法优点:
1.考虑了多个输入之间相互组合、相互制约关系;
2.能够帮助我们按一定步骤,高效率地选择测试用例,同时还能为我们指出,程序规格说明描述中存在着什么问题.
第八次课10.31 黑盒复习
第九、十次课11.4 11.7白盒测试
1、 白盒测试概述:白盒测试也称结构测试或逻辑驱动测试。
2、 方法:程序结构分析;逻辑覆盖测试;基本路径测试;
3、 标准:1、确保一个模块中全部独立路径最少被测试一次;
2.全部逻辑值均需测试真(True)和假(False)两种情况;
3.检验程序内部数据结构,确保其结构有效性;
4.在取值上、下边界,即可操作范围内运行全部循环.
5、逻辑覆盖测试:主要是测试覆盖率,以程序内在逻辑结构为基础测试。
6种:语句覆盖 判断覆盖 条件覆盖 判定-条件覆盖 条件组合覆盖 路径测试.
(1) 语句覆盖:在测试时,首先设计若干个测试用例,然后运行被测程序,使程序中每个可执行语句最少执行一次 。
判定:整体 控制。 包含:1、单一条件判定 2、符合条件覆盖
语句覆盖率:已执行可执行语句占程序中可执行语句总数百分比
(2) 判定覆盖:设计足够多测试用例,使程序中每个判定最少都取得一次“真值”或“假值”。
(3) 条件覆盖:结构一组测试用例,使得每一判定语句中每个逻辑条件可能值最少满足一次。
满足条件覆盖不一定满足判定覆盖,反之亦然。二者无直接关系。
(4) 判定/条件覆盖:设计足够测试用例,使得判定中每个条件全部可能(真/假)最少出现一次,而且每个判定本身判定结果(真/假)也最少出现一次
(5) 组合条件覆盖(MCC):设计足够测试用例,使得每个判定中条件各种可能组合都最少出现一次。
满足组合条件覆盖测试用例是一定满足判定覆盖、条件覆盖和
判定/条件覆盖。
(6) 修正条件判定覆盖(MCDC):需要足够测试用例来确定各个条件能够影响到包含判定结果,即要求满足两个条件。
第十一次课11.11 测试用例设计-8-基本路径
1、 流图:在程序设计时,为了愈加突出控制流结构,可对程序流程图进行简化,简化后图称为控制流图.简化后所包括图形符号只有两种, 即节点和控制流线.
节点——标有编号圆圈
n 程序流程图中矩形框所表示处理
n 菱形表示两个甚至多个出口判断
n 多条流线相交汇合点
边——由带箭头弧或线表示
n 与程序流程图中流线一致,表明了控制次序
n 它代表程序中控制流。
n 控制流线通常标有名字
常见语句控制流图
包含条件节点被称为判断节点(也叫谓词节点),由判断节点发出边必须终止于某一个节点,由边和节点所限定范围被称为区域.
2、 (1)环形复杂度(圈复杂度):亦可将该度量用于基本路径方法,它能够提供程序基本集独立路径数量和确保全部语句最少执行一次测试数量上界
(2)独立路径:指程序中最少引入一个新处理语句集合或一个新条件程序通路,它必须最少包含一条在此次定义路径之前不曾用过边.
(3)环形复杂度计算:
1. 流图中区域数量对应于环形复杂度;(闭合区域数+1)
2. 给定流图G环形复杂度为V(G),定义为V(G )=E-N+2,E是流图中边数量,N是流图中节点数量.
3. 给定流图G环形复杂度V(G),定义为V(G)=P+1,P是流图G中判定节点数量.
例:图中圈复杂度,计算以下:
ü 流图中有四个区域;
ü V(G)=10条边-8结点+2=4;
ü V(G)=3个判定结点+1=4。
(4)图矩阵
节点
1
2
3
4
1
a
2
b
3
c
4
d
图矩阵-即流图矩阵表示。其维数等于流图节点数。每列和每行都对应于标识节点,矩阵元素对应于节点边。其中横坐标为起点, 纵坐标为终点。
例:若矩阵记为M,则M(4,1)=“d”,边d方向是节点4到节点1
第十二次课11.14 测试用例设计-9-白盒最终
1、 静态测试不实际运行软件,主要对软件编程格式、结构等方面进行评定。能够有些人工进行,也可借助软件工具自动进行。
2、 静态测试方法
(1)代码检验:代码审查 代码走查 桌面检验 同行评分(略)
n 代码审查:通常由4人组成,其中一人是协调人,一人是程序编写者,其余人员通常是程序设计人员以及测试教授。
优点和作用:错误列表、高效、会后修正、增加修改错误清单、较早发觉错误。
n 代码走查:为测试员人会带着一些书面测试用例参加会议
n 桌面检验:(1)完全没有约束(2)开发人员测试自己程序(3)没有展示自己能力,缺乏良好效应。(效果远远逊于代码审查和代码走查)
3、静态结构分析:主要是以图形方式表现程序内部结构。
4、代码质量度量:功效性 可靠性 可用性 |有效性 可维护性 轻便性
第十三次课11.18 单元测试
1、单元测试主要性
时间方面——节约 测试效果——显著 测试成本——较低 产品质量——直接
2.1 单元测试定义
单元测试又称模块测试,是最小单位测试,其依据是详细设描述,对模块内全部主要控制路径设计测试用例,方便发觉模块内部错误。
单元测试多采取白盒测试技术
2.2 单元测试对象
结构化程序,单元测试所说单元是指函数,
面向对象程序,单元测试单元通常是指类。
2.4 单元测试人员:开发人员
3、单元测试内容
模块接口: 检验进出程序单元数据流是否正确。
局部数据结构: 必须测试模块内部数据能否保持完整性。
边界条件测试:主要检验临界数据是否正确处理。
独立路径测试:单元测试中最主要测试。
犯错处理:要求能预见犯错条件,并设置适当处理对象,确保其路径正确性。
1、 输出错误信息难以了解。
2、 统计错误与实际碰到错误不符。
3、 在程序自定义犯错处理运行之前系统介入。
4、 异常处理不妥。
5、 错误陈说中未能提供做够定位犯错信息。
6、
4.、单元测试方法
5、单元测试流程 计划单元测试 设计单元测试 执行单元测试 评定单元测试
(1)驱动模块(Drive) 用来模拟被测试模块上一级模块,相当于被测模块主程序。它接收数据,将相关数据传送给被测模块,开启被测模块,并打印出对应结果。
(2)桩模块(Stub) 用来模拟被测模块工作过程中所调用模块。它们通常只进行极少数据处理。
5.3 执行单元测试(1)设置测试环境(2)将测试环境初始化(3)执行测试过程。
5.4 评定单元测试(1)测试完备性评定 (2) 代码覆盖率评定
第十四次课11.21 单元测试-JUNIT
惯用断言方法
断言方法
描述
assertEquals(a,b)
测试a是否等于b
assertFalse(a)
测试a是否为false,a是一个Boolean值
assertNotNull(a)
测试a是否非空,a是一个对象或者null
assertNotSame(a,b)
测试a和b是否没有都引用同一个对象
assertNull(a)
测试a是否为null,a是一个对象或者null
assertSame(a,b)
测试a和b是否都引用同一个对象
assertTrue(a)
测试a是否为true,a是一个Boolean值
第十五次课11.25 集成测试
1、集成测试又称组装测试,集成测试是在单元测试基础上,将全部模块按照设计要求组装成子系统或系统进行测试活动。
2、集成测试目标
确保各单元组合在一起后能够按既定意图协作运行,并确保增量行为正确,所测试内容包含单元间接口以及集成后功效。
3、集成测试层次
(1)模块内集成测试(2)子系统内集成测试(3)子系统间集成测试
4、集成测试流程
5、集成测试方法:
1)静态测试 只要指对概要设计测试。
2)动态测试:以黑盒测试为主,需要了解内部细节时结合白盒测试
6、集成测试策略
n 非增量式集成:对全部模块进行个别单元测试后,按照程序结构图将各模块连接起来,把连接后程序看成一个整体进行测试。
n
关键模块特征:
① 满足一些软件需求;
② 在程序模块结构中位于较高层次(高层控制模块);
③ 较复杂、较易发生错误;
④ 有明确定义性能要求。
n 增量式集成:逐次将未曾集成测试模块和已经集成测试模块(或子系统)结合成程序包,再将这些模块集成为较大系统,在集成过程中边连接边测试,以发觉连接过程中产生问题。
方法: 1、自顶向下增量式测试 深度优先 广度优先。
2、 自底向上增量式测试
3、混合增量式测试
7、不一样集成测试方法比较
第十六次课11.28 功效测试
1、 确定功效测试需求
功效测试基本目标:从用户需求出发,尽早发觉不满足用户需求,与产品说明书不一致全部问题。
(1) 程序安装开启正常,有对应提醒框,错误提醒。
(2) 每一项功效能正常运行,输出结果正确。
(3) 能处理各种不正常操作,对异常数据输入能够进行提醒容错处理等。
(4) 系统界面清楚美观。
(5) 菜单按钮正常、灵活。
(6) 软件升级后能继续支持旧版数据,支持各种应用环境。
2、 功效测试内容:
(1) 界面测试:指系统界面整体布置合理性,以及是否能清楚美观。
(2) 数据测试:能够正确数据输入,对异常数据输入有提醒和容错处理。
(3) 操作测试:全部菜单按钮设计符合操作习惯,能对操作有正确响应。
(4) 逻辑测试:合理清楚、流畅,不复杂。
(5) 接口测试:与硬件设备接口 第三软件接口 公共接口。
3、全部测试方法都能够使用:比如等价类、边界值、因果图、决议表、场景。
第十七次课12.2
1、 可用性测试
2、 安全性测试
3、 兼容性测试
4、 指标/协议测试
5、安装 /卸载程序测试
6、软件当地化测试
展开阅读全文