软件测试基础总结
2015-10-04 20:43
246 查看
第一阶段结束了。总结一下自己掌握不太好的知识点
语句覆盖、判定/分支覆盖、条件覆盖、判定-条件覆盖
(1)语句覆盖:是最起码的测试要求,要求设计足够多的测试用例,使得每条语句至少被执行一次。语句覆盖对程序的逻辑覆盖很少,语句覆盖只关心判定表达式的值,而没有分别测试判定表达式中每个条件去不同值时的情况。
优点:检查所有的语句;结构简单代码的测试效果较好;容易实现自动测试;代码覆盖率高;如果是程序模块,则不不考虑程序块中的源代码。
缺点:不能检查出条件语句错误、逻辑运算错误、循环语句错误。
(2)判定/分支覆盖:设计足够的测试用例,使得每一个分支至少通过一次,即每一条分支语句的“真”值和“假”值都至少执行一次。
优点:判定语句要比语句覆盖能力强;执行分支覆盖,也就执行力语句覆盖。
缺点:不能检查出条件语句错误、逻辑运算错误、循环次数错误、循环条件错误。
(3)条件覆盖:不仅每一个语句至少执行一次,使得判定中的每个条件获得各种可能的结果。判定覆盖只关心整个判定表达式的结果,条件覆盖关心的则是每个条件各种取值的结果。
优点:能够检查所有的条件错误。
缺点:不能实现对每个分支的检查;用例数增加。
(4)判定-条件覆盖:设计足够多的测试用例,使得判定中每个条件的所有可能取值至少能够获取一次,同时每个判断的所有可能的判定结果至少执行一次。
优点:既考虑了每一个条件,有考虑了每一个分支;发现错误的能力强于分支覆盖和条件覆盖。
缺点:不能全面覆盖所有路径;用例数量的增加。条件组合覆盖和路径覆盖、各个覆盖之间的关系
路径覆盖:根据程序的逻辑控制所产生的路径进行测试用例设计的方法 。它是从一个程序的入口开始,执行所经历的各个语句的完整过程。完成路经测试的理想情况是做到路径覆盖。
满足条件组合覆盖,一定满足语句覆盖、判定覆盖、条件覆盖、判定条件覆盖
等价类划分、边界值分析、决策表、因果图、状态转换、用例测试/场景法
黑盒用例测试主要方法:
(1)等价类划分法:
就是把程序的输入与划分成若干部分,然后从每个部分中选取少数有代表性数据作为测试用例。
原则:
1) 输入条件为一个取值范围,可以划分为一个有效等价类和两个无效等价类
2) 输入条件规划了输入值的集合,或是规定可“必须如何”的,划分一个有效等价类和一个无效等价类
3) 输入条件为布尔量,划分一个有效等价类和一个无效等价类
4) 输入数据为一组值(假设N个),而程序需要对每一输入值分别处理,划分为一个有效等价类和N个无效等价类
5) 输入数据必须遵循一个有效,若干个无效
6) 已划分等价类中,元素处理程序不同,可以划分为更小的等价类
步骤:
1) 划分等价类
2) 划等价类表
3) 编号
(2)边界值法:选择等价类边界的值作为用例输入
原则:
1) 规定了值的范围,选取边界值——刚等于,刚大于,刚小于
2) 规定了值的个数:选取min、max
3) 输入输出为有序集合,选第一个元素和最后一个元素
(3)因果图:(考虑了情况的各种组合级输入条件之间的相互制约关系)
步骤:
1) 找出原因(输入条件)、结果(输出结果)、标识符
2) 找原因与原因、原因与结果的逻辑关系
3) 添加必要的约束条件
4) 转换成判定表
5) 把判定表的每一列拿出来作为测试用例
(4)决策表
(5)因果图
(6)状态转换
(7)用例测试/场景法
灰盒测试的特性:
1) 灰盒测试同黑盒测试一样,也是根据需求规格说明文档来进行测试用例的设计。但它要深入到系统内部的特殊点来进行功能测试和结构测
2) 灰盒测试通常在程序员做完白盒测试之后在功能测试人员进行大规模集成测试之前进行
3) 灰盒测试需要了解代码工程的实现
4) 灰盒测试是通过类似白盒测试的方法进行的,是通过编写代码,调用函数或封装好的接口进行,但无需关心程序模块内部的实现细节,依然可以把它当成一个黑盒
5) 灰盒测试是由测试人员进行测试的。
灰盒测试的优点:
(1) 能够进行基于需求的覆盖测试和基于程序路径覆盖的测试
(2) 测试结果可以对应到程序内部路径,便于bug的定位、分析和解决
(3) 能够保证设计的黑盒测试用例的完整性,防止遗漏软件的一些不常用的功能或功能组合
(4) 能够避免需求或设计不详细或不完整对测试造成的影响
灰盒测试的缺点:
(1) 投入时间比黑盒测试大概多20%~40%的时间
(2) 对测试人员的要求比黑盒测试高
(3) 灰盒测试要求测试人员清除系统内部由哪些模块构成,模块之间如何协作
(4) 不如白盒测试深入
(5) 不适用与简单的系统
语句覆盖、判定/分支覆盖、条件覆盖、判定-条件覆盖
(1)语句覆盖:是最起码的测试要求,要求设计足够多的测试用例,使得每条语句至少被执行一次。语句覆盖对程序的逻辑覆盖很少,语句覆盖只关心判定表达式的值,而没有分别测试判定表达式中每个条件去不同值时的情况。
优点:检查所有的语句;结构简单代码的测试效果较好;容易实现自动测试;代码覆盖率高;如果是程序模块,则不不考虑程序块中的源代码。
缺点:不能检查出条件语句错误、逻辑运算错误、循环语句错误。
(2)判定/分支覆盖:设计足够的测试用例,使得每一个分支至少通过一次,即每一条分支语句的“真”值和“假”值都至少执行一次。
优点:判定语句要比语句覆盖能力强;执行分支覆盖,也就执行力语句覆盖。
缺点:不能检查出条件语句错误、逻辑运算错误、循环次数错误、循环条件错误。
(3)条件覆盖:不仅每一个语句至少执行一次,使得判定中的每个条件获得各种可能的结果。判定覆盖只关心整个判定表达式的结果,条件覆盖关心的则是每个条件各种取值的结果。
优点:能够检查所有的条件错误。
缺点:不能实现对每个分支的检查;用例数增加。
(4)判定-条件覆盖:设计足够多的测试用例,使得判定中每个条件的所有可能取值至少能够获取一次,同时每个判断的所有可能的判定结果至少执行一次。
优点:既考虑了每一个条件,有考虑了每一个分支;发现错误的能力强于分支覆盖和条件覆盖。
缺点:不能全面覆盖所有路径;用例数量的增加。条件组合覆盖和路径覆盖、各个覆盖之间的关系
路径覆盖:根据程序的逻辑控制所产生的路径进行测试用例设计的方法 。它是从一个程序的入口开始,执行所经历的各个语句的完整过程。完成路经测试的理想情况是做到路径覆盖。
满足条件组合覆盖,一定满足语句覆盖、判定覆盖、条件覆盖、判定条件覆盖
等价类划分、边界值分析、决策表、因果图、状态转换、用例测试/场景法
黑盒用例测试主要方法:
(1)等价类划分法:
就是把程序的输入与划分成若干部分,然后从每个部分中选取少数有代表性数据作为测试用例。
原则:
1) 输入条件为一个取值范围,可以划分为一个有效等价类和两个无效等价类
2) 输入条件规划了输入值的集合,或是规定可“必须如何”的,划分一个有效等价类和一个无效等价类
3) 输入条件为布尔量,划分一个有效等价类和一个无效等价类
4) 输入数据为一组值(假设N个),而程序需要对每一输入值分别处理,划分为一个有效等价类和N个无效等价类
5) 输入数据必须遵循一个有效,若干个无效
6) 已划分等价类中,元素处理程序不同,可以划分为更小的等价类
步骤:
1) 划分等价类
2) 划等价类表
3) 编号
(2)边界值法:选择等价类边界的值作为用例输入
原则:
1) 规定了值的范围,选取边界值——刚等于,刚大于,刚小于
2) 规定了值的个数:选取min、max
3) 输入输出为有序集合,选第一个元素和最后一个元素
(3)因果图:(考虑了情况的各种组合级输入条件之间的相互制约关系)
步骤:
1) 找出原因(输入条件)、结果(输出结果)、标识符
2) 找原因与原因、原因与结果的逻辑关系
3) 添加必要的约束条件
4) 转换成判定表
5) 把判定表的每一列拿出来作为测试用例
(4)决策表
(5)因果图
(6)状态转换
(7)用例测试/场景法
灰盒测试的特性:
1) 灰盒测试同黑盒测试一样,也是根据需求规格说明文档来进行测试用例的设计。但它要深入到系统内部的特殊点来进行功能测试和结构测
2) 灰盒测试通常在程序员做完白盒测试之后在功能测试人员进行大规模集成测试之前进行
3) 灰盒测试需要了解代码工程的实现
4) 灰盒测试是通过类似白盒测试的方法进行的,是通过编写代码,调用函数或封装好的接口进行,但无需关心程序模块内部的实现细节,依然可以把它当成一个黑盒
5) 灰盒测试是由测试人员进行测试的。
灰盒测试的优点:
(1) 能够进行基于需求的覆盖测试和基于程序路径覆盖的测试
(2) 测试结果可以对应到程序内部路径,便于bug的定位、分析和解决
(3) 能够保证设计的黑盒测试用例的完整性,防止遗漏软件的一些不常用的功能或功能组合
(4) 能够避免需求或设计不详细或不完整对测试造成的影响
灰盒测试的缺点:
(1) 投入时间比黑盒测试大概多20%~40%的时间
(2) 对测试人员的要求比黑盒测试高
(3) 灰盒测试要求测试人员清除系统内部由哪些模块构成,模块之间如何协作
(4) 不如白盒测试深入
(5) 不适用与简单的系统
相关文章推荐
- 【设计模式】Template Method模式
- shell练习题讲解
- HDU 5467
- 整理介绍一些技术书籍(应届生求职必备)
- 2015年福州大学第12届程序设计大赛题解
- android开发学习笔记——权限
- kafka入门介绍
- html: Table合并行和列
- DBCP连接池配置参数说明
- 素性测试
- 气象数据格式
- autojump的安装和简单使用(环境:ubuntu14.04)
- 放松完毕回来准备继续...
- html: Table标签的初步使用
- J2EE中关于tomcat的maxIdle、maxActive、maxActive相关配置
- CSDN首页刊发对我的专访:我为什么要选择Rust?
- 软件测试难点总结
- API不是从业务抽象出来的(2)_举例说明
- API不是从业务抽象出来的(2)_举例说明
- API不是从业务抽象出来的(2)_举例说明