系统测试与维护
第六章-系统测试与维护
本章概要
- 测试评审方法
- 验证与确认
- 测试自动化
- 软件调试
- 测试设计和管理方法
一、测试与评审
原则:
- 尚未发现的错误数量与程序已经发现错误的数量成正比
- 修改后应该进行回归测试
- 既要选择有效、合理的数据,也要选择无效、不合理的数据
- 程序员避免测试自己的程序
- 尽早、不断地进行测试
1.1测试类型
1.2测试用例设计
- 黑盒测试法:等价类划分、边界值分析、错误推测(现象看本质)、因果图
- 白盒测试法:基本路径测试、循环覆盖测试、逻辑覆盖测试(语句、条件、判断等逻辑覆盖)
1.3测试阶段
单元测试
集成测试
- 冒烟测试:你真的了解冒烟测试吗
- 一次性组装
- 增量式组装
- 自顶向下
- 自底向上
- 混合式
确认测试(阶段顺序——————存疑、填坑???)
- 内部确认测试
- Alpha测试
- beta测试
- 验收测试
系统测试
- 恢复测试
- 安全性测试
- 压力测试:负载测试、压力测试、性能测试的异同
- 负载测试
- 强度测试
- 容量测试
- 性能测试:在特定环境下测试
- 可靠性测试
- 可用性测试
- 可维护性测试
- 安装测试
V模型:

1.4面向对象测试
- 算法层(单元测试)
- 类层(模块测试)
- 模板层/类树层(集成测试)
- 系统层(系统测试)
1.5测试自动化
- 优缺点
1.6软件调试
调试方法:
- 蛮力法:计算机找错,但是低效、耗时
- 回溯法:按照控制流程人工回溯追踪,但是不适用于大型软件
- 原因排除法:演绎归纳+二分法
测试与调试内涵的异同:
测试在前、调试在后
测试与调试的目标、方法和思路上都不同:
- 测试目标:是否存在错误
- 调试目标:定位错误+修正错误
测试始于已知条件;调试始于未知条件
测试在时间和过程上是可预知的;调试不可预知
1.7软件评审
原则
- 关注产品、实质性问题
- 评审工作不可缺省
分类
- 技术评审
- 管理评审
1.8验证与确认
验证内涵
- 整个开发周期,一个给定的阶段的产品,是否达到上一阶段确定的需求的过程
确认内涵
- 开发结束时,评价软件是否和软件需求相一致的过程
二、软件质量管理
2.1质量保证与质量控制
质量保证内涵
- 分阶段、间隔时间进行
- 方法:质量审计和过程分析
质量控制内涵
- 实时监控
- 目的:判断是否复核相关质量标准、制定有效方案、消除产生质量问题的原因
联系
- 质量控制的成果是质量保证的审计对象之一
- 质量保证的成果又可以指导下一阶段的质量工作(质量控制、质量改进)
三、软件改进过程
3.1 CMMI(目的是为软件改进)
连续式和阶段式同时也是评估的两个不同角度,用连续式评估,企业会得到很多个PA的Level,用阶段式评估,企业会得到一个整体的Level。
- 组织能力成熟度——阶段式
- 等级由低到高:初始级、已管理级、已定义级、定量管理级、优化级
- 软件过程能力——连续式
四、软件开发环境与工具
软件开发支持环境
- 环境机制
- 界面:用户界面规范
- 过程:过程控制和消息服务
- 库:环境信息库
- 工具集
- 系统规划工具
- 建模工具
- 分析设计工具
- 编程工具
- 测试工具
- 项目管理工具
软件生存期支持环境
五、系统运行与评价
5.1系统转换计划(有新|旧系统)
新旧系统转换策略
- 直接转换策略
- 并行转换策略
- 分段转换策略

数据转换与迁移
ETL:Extract-Transform-Load
- 抽取:旧数据库
- 转换:
- 工具迁移(系统切换前)
- 手工录入(系统切换前)
- 新系统生成(系统切换后)
- 装载:新数据库
5.2系统运行与维护
软件维护的特点:
- 是整个生命周期完整的一部分
- 软件维护定义:需要提供软件支持的全部活动
- 交付前:交付后运行的计划和维护计划
- 交付后:软件修改、培训、帮助资料等

四类维护的内涵:
- 正确性维护(改正性维护):改正测试阶段尚未发现的错误
- 适应性维护:外部环境(信息技术变化)和管理需求变化进行的修改
- 完善性维护:扩充功能+改善性能
- 预防性维护:为适应未来软硬件环境的变化,主动增加预防性新功能
5.3系统审计
审计准备阶段:
- 合同及相关准备
- 审计计划
审计实施阶段:
- 系统规划、分析阶段
- 系统设计、实现阶段
- 系统运行、维护阶段
- 系统项目管理规范
审计报告阶段:

5.4系统评价
分类
- 性能、效益、建设
流程
- 组织成立
- 收集资料
- 评价报告
- 公布+建立评价项目档案