6、软件测试
分类
动态测试(需要依赖计算机运行)
白盒测试【结构测试】
关注内部结构与逻辑
主要用于单元测试阶段
- 控制流测试【逻辑覆盖测试(语句覆盖最弱、路径覆盖最强)】
- 数据流测试
- 程序变异测试
黑盒测试【功能测试】
关注输入输出及功能
主要用于集成测试、确认测试和系统测试阶段
- 等价类划分:不同等价类,揭示不同问题;有效等价类/无效等价类
- 边界值分析:1<=x<=10,可取 x 的值为 0、1、10 和 11 作为测试数据
- 错误推测:依靠测试人员的经验和直觉
- 判定表:最适合描述在多个逻辑条件取值的组合所构成的复杂情况下,分别要执行那些不同的动作
- 因果图:根据输入条件与输出结果之间的因果关系来设计测试用例
- 灰盒测试:介于白盒测试和黑盒测试之间
- 自动化测试:先写脚本 -> 自动化执行【不适合项目周期短,需求频繁变动】
静态测试(人工监测和计算机辅助分析)
- 桌前检查
- 代码审查
- 代码走查
都是【静态分析】
静态分析
- 控制流分析:是否存在没有使用的语句 / 无法到达的语句 / 调用并不存在的子程序
- 数据流分析:引用未定义的变量 / 对以前未使用的变量再次赋值
- 接口分析:模块之间接口的一致性 / 子程序和函数之间的接口一致性 / 函数形参与实参的数量、顺序、类型的一致性
- 表达式分析:括号不配对 / 数组引用越界 / 除数为零
阶段
先从局部 再到整体
单元测试
依据【详细设计】
模块测试、模块功能、性能、接口等
集成测试
依据【概要设计】
模块间接口
策略

系统测试
依据【需求文档】
包括功能测试、性能测试、确认(验收)测试、压力测试等
性能测试
- 负载测试:各种工作负载下系统的性能
- 压力测试【测上限】:系统的瓶颈或不能接受的性能点
- 强度测试【测下限】:系统资源特别低的情况下运行
- 容量测试【并发测试】:同时在线的最大用户数
- 可靠性测试:MTTF 之类的参数
确认(验收)测试
依据【需求文档】,验证软件与需求的一致性。
内部确认测试、Alpha 测试、Beta 测试、验收测试
其他测试
AB 测试
多版本同时使用,利于收集各版本的用户反馈,评估出最好版本。也算是一种【网页优化方法】
Web 测试
Web 系统测试与其他系统测试内容基本相同,只是测试重点不同 Web 代码测试包括:源代码规则分析、链接测试、框架测试、表格测试、图形测试等方面
链接测试
分为三个方面:
- 测试所有链接是否按指示的那样链接到了该链接的页面
- 测试所链接的页面是否存在
- 保证 Web 应用系统上没有孤立的页面
表单测试
验证服务器是否能正确的保存这些数据,后台运行的程序能否正确解释和使用这些信息。测试提交操作的完整性
回归测试
测试软件变更之后,变更部分的正确性和对变更需求的符合性