【复习】软件测试
软件测试复习
- 试题分布
- 软件测试绪论
- 软件测试定义
- 软件测试分类:
- 软件测试目的:
- 测试与开发的关系
- 过程和流程:
过程和流程是对同一事物不同级别的描述,并不是包含关系。过程抓大放小,流程事无巨细。 - 白盒测试(结构化测试)
- 动态测试执行被测代码;静态测试不执行(借助测试工具进行测试,但是不直接执行被测代码)
- 覆盖率:评估测试对于被测代码的覆盖程度。
评估测试方案的质量。 - 语句覆盖 < 条件组合覆盖
- Fixture:配置整个测试环境
- Runner:运行器
不只有一种运行器,对于不同的单元测试方式,对应不同的运行器。 - Assert:断言验证
- TestResult:收集管理结果
- TestCase:测试用例
- Suite:测试套件
- Parameters:参数化测试
- Junit运行示例:
-
- 必须在测试之前,使用@Before创建实例。
使用assertxxx进行断言。具体有:
1. assertEquals(val, 测试类方法);
2. assertTrue(测试类方法);
3. 在测试启动类上加上 @Runwith(Parameterized.class) 注解 - 参数化测试,可以在@SuiteClasses后面加上想要测试的类。
注意事项:
1. 这种必须使用Collection<Object[] data>进行接收测试参数。
2. 使用Arrays.asList(new Object[][]{})进行设计测试参数
3. 在参数设计的类上加上 @Parameters 注解
4. @SuiteClasses 上面一定加上 @Runwith(Suite.class) 表明调用Suite的测试启动器。
解释:
添加多个测试类:
- 必须在测试之前,使用@Before创建实例。
- 白盒测试(结构测试)方法——主要用于单元测试(逻辑覆盖)大部分情况使用基本路径测试法
- 语句覆盖:
让每一条语句都执行一次 - 判定(分支)覆盖:
让每个判断真和假至少经历一次。
让全是、全否都走一遍。
-
- 只要满足了判定覆盖标准就一定满足语句覆盖标准。
- 条件覆盖
只看每个条件(判定中的小条件,而不是整个判定P1/P2)
- 判定条件覆盖
判断和条件的真假,都要取到。
- 条件组合覆盖
- 路径覆盖
- 覆盖标准的关系
- 基本路径法
这个路径的数量就是环路复杂度。
- 黑盒测试(功能测试)
- 功能测试方法:
-
- 等价类划分
-
-
- 等价类表
- 测试用例表
- 等价类表
-
-
- 边界值分析法
-
-
- 取值范围
- 测试用例
- 取值范围
-
-
- 判定表方法
-
-
- 就是输入条件的完全排列组合
- 判定表设计
-
-
- 正交实验法
-
-
- 正交表的选择
- 例题
- 原则
- 正交表的选择
-
-
- Pair-wise方法
-
-
- 定义
- 例题
- 定义
-
-
- 因果图法
-
-
- 例题
- 步骤
- 例题2
- 例题
-
- AR测试步骤:
-
- 制定计划
- 录制测试脚本
- 增强脚本
- 运行脚本
- 分析结果
- 增强测试脚本的目的?
如果没有增强,这个脚本不算完整意义上的功能脚本。
检查点是连接实测结果和预期结果之间的桥梁。
测试结果的通过与否,是与检测点的预期结果和实际结果是否一致息息相关的;如果一致,测试通过;不一致则测试不通过。 - 进行功能测试,使用什么方式进行增强脚本(增加检测点)?
- 检测点的类型?
文本、网页、数据库、表格 - 良好的测试脚本,测试数据怎么设计?
比如白盒测试,使用条件组合覆盖。使用更多的数据驱动完成测试。 - 参数化测试:
测试数据和测试逻辑分开。 - 性能测试
- 练习题
-
- 白盒测试
- 画流程图
- 题解
条件覆盖:
- 将所有的条件摘出来
- 写出他们的反方面
如果判定条件有两部分组成,那就拆开为两个独立的判定条件。 - 写出两个测试用例,满足他们
每个测试用例满足的是一组(正+反是一组)中的其中一个。
- 练习5:
- 练习6:
- 各种测试方法对应的工具