软件测试概述
- 驱动模块是用以模拟被测模块的上级模块,它接收测试数据,传送数据给被测模块,启动被测模块,最后输出实测结果
- 桩模块用以模拟被测模块工作过程中所调用的子模块
- 使用质量特性:有效性、效率、满意度、抗风险、周境覆盖
- 产品质量特性:功能性、性能效率、兼容性、易用性、可靠性、信息安全性、维护性、可移植性
- 测试过程模型:
- 组织级测试过程
- 测试管理过程
- 测试策划过程
- 测试设计和实现过程
- 测试环境构建和维护过程
- 测试执行过程
- 测试事件报告过程
- 测试检测和控制过程
- 测试完成过程
- 静态测试过程
- 测试规程是详细描述测试用例设计方法、测试方法、测试工具、测试环境和测试数据以及能把某个或某一组测试用例应用 到被测软件上完成某项测试的一系列操作步骤的文档。
- 特征集是测试项需被测试的特征的逻辑分组,应包括如下内容:唯一标识符、目标、测试优先级、具体策略和可追溯性。
- 常用的测试设计技术
- 基于规格说明的技术:
- 等价类划分
- 分类树
- 边界值分析
- 语法测试
- 组合测试设计技术
- 完全组合测试
- 成对测试
- 单一选择测试
- 基本选择测试
- 判定表
- 因果图
- 状态转移测试
- 场景测试
- 随机测试
- 基于结构的技术
- 语句测试
- 分支测试
- 判定测试
- 分支条件测试
- 分支条件组合测试
- 修正条件判定覆盖测试
- 数据流测试
- 全定义测试
- 全计算使用测试
- 全谓词使用测试
- 全使用测试
- 全定义-使用路径测试
- 基于经验的技术
- 错误猜测法
- 基于规格说明的技术:
- 不同边界值法的用例数量:输入N的变量
- 二值基本边界值分析:4N+1
- 三值基本边界值分析:6N+1
- 最坏情况边界值分析:
- 健壮最坏情况测试:
-
表 5-6 部分 ASCII码表
字符
ASCII码
字符
ASCII码
字符
ASCII码
字符
ASCII码
/
47
8
56
@
64
y
121
0
48
9
57
A
65
Z
122
1
49
:
58
B
66
{
123
在 ASCII码表中, 我们常用的0~9数字所对应的 ASCII码值是 48~57, 大写字母 A~Z对应65~90, 小写字母a~z对应97~122。 按照ASCII码顺序, 字符“/”在数字0的前面,而字符“:”在数字9的后面;字符“@”在大写字母A的前面,而字符“[”在大写字母 Z 的后面;字符“`”在小写字母 a的前面, 而字符“{”在小写字母 z的后面。这些情况都代表了次边界条件。
如果测试进行文本输入或文本转换的软件,在定义数据区间包含哪些值时, 如果测试的文本框只接受用户输入字符A~Z 和a~z,就应该在非法区间中包含 ASCⅡ码表中这些字符前后的值。
-
各个组合测试的区别:
-
单一选择:所有参数取值范围内的任意取值至少呗一个用例覆盖
-
基本选择:针对一个参数,该参数取值变化,其他参数取值相同
-
成对组合:取值范围内的任意一对参数有效值至少被一个用例覆盖
-
全组合:所有参数取值范围内的人员有效值组合至少被一个用例覆盖
-
K强度组合:任意K个参数取值范围内的任意有效值组合至少被一个用例覆盖
-
-
因果图关系符号
- 因果图约束符号
- McCabe圈复杂度和线性无关路径
- McCabe圈复杂度:
- V(g) = 边的数量 - 节点数量 + 2
- V(g) = 判断节点数 + 1
- V(g) = 封闭区域数 + 1
- 线性无关路径(独立路径)
- 是指包括一组以前没有处理的语句或条件的一条路径。
- McCabe圈复杂度:
-
# C语言,范例代码 int function(bool a,bool b,bool c) # 第1行 { # 第2行 int x; # 第3行 x = 0; # 第4行 if(a && (b || c)) # 第5行 { # 第6行 x = 1; # 第7行 } # 第8行 return x; # 第9行 } # 第10行
-
- 谓词使用:使用变量来确定判断条件(谓词)的结果
- 计算使用:一个变量作为其他练练定义说输出的结果
-
基于数据流设计用例的测试覆盖项 全定义测试 全计算使用路径 全谓词使用测试 全使用测试 全定义-使用路径测试 测试覆盖项 从变量的至少一个定义到任意使用的控制流子路径 从变量定义到所有计算使用的控制流子路径 从变量定义到所有谓词使用的控制流子路径 从变量定义到每个使用的至少一条控制流子路径 从变量定义到每个使用的所有控制流子路径