软件测试基础知识

什么是软件测试?
软件测试是一种系统性的活动,旨在评估软件产品的质量。其主要目的是发现软件中的缺陷和问题,确保软件在发布和使用时能够达到预期的质量标准。

软件测试的目的是?
1.验证软件实现与需求一致;
2.发现缺陷,提高质量;
3.评估质量(版本的质量情况,能否发布)

软件开发模式: 瀑布、敏捷、DevOps

测试流程(瀑布模式)

测试策略 - 测试设计 - 测试执行 - 测试评估

测试策略

5W1H法(Why,What,When,Where,Who,How)

  1. What(测试什么?) 明确要测试的软件功能
  2. Why(为什么要测试?) 确定测试的目标
  3. Who(谁来测试?) 确定测试人员
  4. When(何时进行测试?) 制定测试的时间表
  5. Where(在哪里测试?) 确定测试环境
  6. How(如何测试?) 确定测试方法和工具

测试设计

1.分析需求
明确测试内容和目标,制定测试计划;
参与需求评审,减少设计阶段的缺陷;

2.设计测试方案
根据需求设计测试方案,包括:

  • 测试环境:操作系统、数据库、组网结构;
  • 测试工具;
  • 测试功能点及场景;
  • 是否需要性能测试、安全测试等;

3.编写测试用例
根据测试方案的场景,编写具体可执行的用例;

测试用例:

  1. 测试目的
  2. 预制条件
  3. 测试步骤
  4. 预期结果

测试执行

4.迭代测试
发现的缺陷修复后重写出包,重复测试;
根据实际情况新增删减用例;

5.验收测试
最后一轮出包,用例全部通过;
性能测试、安全扫描通过;
产品文档资料等验证;

测试评估

6.测试报告
输出测试报告、性能测试报告、安全扫描结果等。

测试报告内容包括

  • 测试产品版本
  • 测试环境信息
  • 测试结论
  • 关键风险
  • 缺陷分析
    • 测试缺陷率 = 发现的缺陷总数 / 测试用例总数 * 100%
  • 覆盖率分析
    • 代码覆盖率 = 被测试代码行数 / 总代码行数 * 100%
    • 功能覆盖率 = 已测试功能点数 / 总功能点数 * 100%
  • 遗留问题

测试分类

按测试阶段分类: 单元测试-集成测试-系统测试-验收测试
按测试类型分类: 功能测试-性能测试-安全测试-可靠性测试等
按测试方法分类: 黑盒测试-白盒测试

黑盒测试

1.等价类划分

有效等价类、无效等价类

2.边界值分析

  • 上点:就是边界上的点,不管是开区间还是闭区间。
  • 内点:就是在域范围内的任意一点。
  • 离点:就是离上点最近的一个点。

如果边界是封闭的,那么离点就是域范围外离上点最近的点。例如取值范围闭区间`[2,8],离点是1和9。
如果边界是开放的,那么离点就是域范围内离上点最近的点。例如取值范围开区间(2,8),离点是3和7。

3.场景分析法

将场景一一拆分,逐条覆盖

4.因果图-判定表法

根据输入条件的组合与输入条件的相互制约关系。

  1. 根据需求说明,分析因和果,画出因果图
  2. 将因果图转换为判定表
  3. 将判定表的每一列设计成一个测试用例

5.正交实验设计法

通过有限的测试用例覆盖尽可能多的软件功能和输入组合。

  1. 确定因素和水平: 假设3个因素(A,B,C),每个因素有两个水平(1,2)
  2. 选择正交表: L4(23)正交表的含义是:4个测试用例可以覆盖所有3个因素的2个水平组合,确保每个因素的每个水平出现的次数相等
  3. 填写正交表: 每行记录就是一条测试用例

白盒测试

  1. 语句覆盖
    每个可执行语句至少被测试一次。
  2. 判定覆盖(分支覆盖)
    每个判断语句的真假值至少被测试一次,即每个分支都要至少走一次。
  3. 条件覆盖(真假值覆盖)
    判断语句中的每个条件的真假值至少被测试一次。
  4. 判定条件覆盖
    判断语句中的每个条件的真假值至少被测试一次,同时,所有判断的可能结果至少执行一次。即条件覆盖+判定覆盖
  5. 条件组合覆盖
    每个条件的各种组合至少被测试一次。
  6. 路径覆盖
    覆盖程序中的所有可能的执行路径。

其他测试

兼容性测试: 软件兼容、硬件兼容、内部兼容、外部兼容
可服务性测试: 可部署、可维护、易用性、全球化
资料测试: 一致性、易用性


参考资料:

  1. 软件测试-因果图与判定表
  2. 测试方法之正交试验法
posted @ 2024-03-01 23:27  rustling  阅读(25)  评论(0编辑  收藏  举报