基于CMMI的软件工程及实训指导第13-16章读书报告
软件测试
软件测试是为了发现程序中的错误而执行的过程。测试只能证明软件有错,而不能保证软件程序没错。
1. 软件版本
-
Alpha版——公司内测版本
-
Beta版——对外公测版本
-
发布版——正式发布版本
2. 软件缺陷
- 软件未达到产品说明书(SPEC)标明的功能。
- 软件出现了产品说明书指明不会出现的错误。
- 软件功能超出产品说明书指明范围。
- 软件未达到产品说明书虽然未指出但应达到的目标。
- 软件测试员认为软件难以理解、不易使用、运行速度缓慢,或者最终用户认为不好。
3. 软件缺陷的原则、特点
- 不可能找出软件的所有缺陷
- 软件测试是有风险的行为,针对风险需要作出明智抉择,去粗存精
- 软件测试无法显示潜伏的软件缺陷
- 并非所有的软件缺陷都能修复
4. 软件测试分类
4.1 按软件测试特性分类
- 白盒测试:语句测试、分支测试、路径测试、条件测试、目测。
- 灰盒测试
- 黑盒测试:功能测试。
4.2 按软件开发过程分类
- 单元测试
- 集成测试
- 系统测试
- 用户验收测试
- 回归测试
4.3 按软件测试要求分类
- 全面测试
- 基准测试
4.4 按软件特性分类
- 功能测试
- 非功能测试
系统实现与测试过程
系统实现与测试过程阶段对应于CMMI中技术解决方案(Technical Solution, TS)过程域、验证(Verification, VER)过程域、产品集成(Product Integration, PI)过程域。
- 准备工作
- 搭建开发环境:《开发环境配置表》
- 确定相关规范:《研发所用规范列表》
- 细化项目进度表:《角色职责对照表》、《编码安排表》、《代码检查安排表》
- 产品实现
- 单元测试 《单元测试用例列表》、《单元测试管理列表》
- 缺陷管理与改错 《系统集成计划表》、《缺陷统计报告》
- 系统集成与系统测试 《集成测试计划表》、《集成测试报告》
- 建立产品支持文档 《支持文档编写表》、《用户操作手册》、《系统维护手册》、《培训教材》、联机帮助、系统安装包
系统测试
系统测试对应于CMMI中的确认(Validation, VAL)过程域。系统测试的目的是对最终软件系统进行全面的测试,确保最终软件系统满足产品需求并遵循系统设计的标准和规定。
系统测试采用黑盒测试的测试方法,主要包括功能性测试、健壮性测试、性能-效率测试、用户界面测试、安全性测试、压力测试、可靠性测试、安装/反安装测试等。