软件测试
软件测试
1 软件测试类型
1.1 动态测试
1.1.1 白盒测试 :关注内部结构与逻辑
- 控制流分析:是否有无法达到的语句
- 数据流分析
1.1.2 黑盒测试:关注输入输出和功能
- 等价类划分:不同等价类揭示不同问题;走不同分支
- 边界值分析:1<=X<=10 用 0 1 10 11 作为测试数据
- 错误推断:凭经验和直觉
- 判定表:多个逻辑条件取值的组合所构成的复杂情况,分别要执行哪些不同的动作
- 因果图:输入条件与输入结果之间的因果关系来设计测试用例
1.2 静态测试
- 桌前检查:可预见的代码bug检查
- 代码审查(检查别人的代码)
- 代码走查(人工看代码)
1.3 自动化测试
先准备好脚本,然后自动化执行
不适合的场景:项目周期短,需求变动频繁
2 测试阶段
2.1 单元测试
依据 详细设计,测得是一个模块内部的东西,需要知道详细的内容
2.2 集成测试
依据 概要设计
把系统拆分成多个模块,测试模块间的接口通信
策略:
2.2.1 一次性组装
一次性组装所有模块,风险高效率高
2.2.2 增量式组装
一个模块加进去后重新测试,避免全部模块组装完成掩盖了部分问题
相对来说测试更全面,但是效率低,需要多次测试,且测试中需要编写额外的模块
- 桩模块:底层的模块,被测模块的依赖模块
- 驱动模块:顶层的模块,被测模块的调用方
测试方向分为
- 自顶向下(已有驱动模块和测试模块,需要桩模块)
- 自底向上(已有桩和测试模块,需要驱动模块)
- 混合式(都需要)
2.3 系统测试
依据 需求文档
包括
- 功能测试
- 性能测试
- 验收测试
- 压力测试
- 确认测试
2.4 其他测试
- AB测试:多版本同时使用
- Web测试:与其他测试内容基本相同,只是侧重点不同,包括
- 源代码规则分析
- 链接测试
- 框架测试
- 表格测试
- 图形测试
- 链接测试:页面是否正常跳转/存在
- 表单测试:服务器是否正常保存表单数据,
- 回归测试:软件变更之后,测试变更部分的正确性和对变更需求的符合性
3 系统测试
系统构建起来后,完整的测试,分为
- 功能测试
- 性能测试
- 健壮性测试
- 用户界面测试
- 安全性测试
- 安装与反安装测试
其中 性能测试又包括
- 负载测试:各自工作负载(即 特殊场景)下的性能
- 原理测试:上限测试,系统的瓶颈或者不能接受的性能电,在不影响系统资源的情况下测试瓶颈
- 强度测试:下限测试,系统资源特别低的情况下运行,撤掉部分系统资源后测试
- 容量测试:即并发测试,测最大同时在线用户数
- 可靠性测试:MTTF(平均无故障时间)