软件测试分析与设计过程
软件测试的门类五花八门,最关键的是:在系统或非系统学习了软件质量与测试理论之后,要明白在什么阶段下、什么情况下,主要使用什么工具、什么方法做软件测试。
1.以是否执行程序:静态测试、动态测试。
静态测试:桌面检查、走查、审查、软件评审、静态代码扫描(SonarQube)。
动态测试:
黑盒测试:等价类划分法(输入条件、结果或二者之间无过多联系)、边界值分析法(等价类加强版,侧重等价类的边界)、因果图法(输入条件、输出或者二者之间联系紧密)、判定表法、场景法(侧重业务流程)、错误推测法等。
白盒测试:语句覆盖法、判定覆盖法、条件覆盖法、判定/条件覆盖法、条件组合覆盖法、路径覆盖法、基本路径覆盖法、程序插桩测试法、程序变异测试法、循环语句测试法、代码检查法(含:代码评审[静态测试方法]、基于缺陷模式测试等)等。
(白盒测试)
2.以是否重点关注程序内部程序或外部输出结果分:黑盒测试与白盒测试。
3.以时间阶段划分:单元测试 / 集成测试 / 系统测试 / 验收测试
|
单元测试 |
集成测试 |
系统测试 |
主要测试方法 |
白盒测试方法 |
灰盒测试方法为主, 白盒测试为辅 |
黑盒测试方法 |
测试依据 |
详细设计说明书 |
概要设计说明书 |
需求规格说明书 |
考察范围 |
主要测试单元内部的数据结构、逻辑结构、逻辑控制、异常处理等,对程序代码的覆盖程度 |
主要测试模块之间的接口和接口数据传递关系以及模块组合后的整体功能接口 |
主要测试整个系统相对于需求的符合程度 |
主要实施策略 |
判定覆盖法、条件覆盖法、路径覆盖法、基本路径覆盖法、程序插桩测试法、代码评审。 |
等价类划分、边界值分析、因果图、场景法 |
功能测试、性能测试、界面测试、配置测试为主,压力测试、安全性测试、可维护性测试、易安装性测试、 |
一般性的时间 先后顺序 (假设为瀑布软件开发模型时) |
最先 |
其次 |
最后 |
软件质量保证与测试知识域
以音频转换通系统之测试过程为例,示范一般的软件测试过程: