软件质量保证与测试 基本内容
软件质量工程体系
软件质量控制和软件质量保证体系
1.软件质量控制的基本方法:
- 目标问题度量法:规定目标,度量收集
- 风险管理法:识别风险,评估,风险排序,制定计划(避免,弱化,承担,转移)
- PDCA质量控制法:Plan,Do,Check,Action
(我国最常用模型:基于PDCA的全面服务质量管理)
2.软件质量保证体系SQA:
评审审计验证是否合乎标准;项目开始时制定计划、标准和过程;使软件项目满足机构方针的要求
CMM 2级的一个重要关键作用区域,CMM中重要角色
目的是向管理者提供对软件全面监控的手段。
※软件质量保证(SQA)实现的具体实现方法:
定义项目类型和生命周期
建立SQA计划,确定项目审计内容
生成SQA计划
审计SQA报告
独立汇报
软件质量保证(SQA)基本目标和任务:
目标:
- 软件质量保证活动是有计划的
- 软件产品和活动与适用的标准、规程和需求的符合性要得到客观验证
- 相关小组和个人要被告知软件质量保证的活动和结果
- 高级管理者处理在软件项目内部不能解决的不符合问题
任务:
- 提供成员与管理阶层客观洞察流程与相关工作产品
2.实施CMM必要性:
- 实施CMM是改进软件质量的有效方法:控制软件生产过程,提高软件生产者组织性和软件生产者个人能力的有效合理的方法。
- 主要涉及领域因素:需求工程,软件复用等
CMM核心:把软件开发视为一个过程,监控研究,科学化标准化……
CMM五个层次:
初始级:过程没有定义,控制很差,反应式
可重复级:
已定义级:
已管理级:
优化级:
3.软件质量度量:
使用软件质量度量定义CMM:一个系统、组件或过程符合特定需求/客户用户要求或期望的程度。
(软件质量:人、过程和技术的函数)。
4.影响软件质量的因素:
- 正确性
- 可靠性
- 效率
- 完整性
- 可用性
- 可维护性
5.质量保证模型:
McCall模型
Boehm模型:着手于软件总体功效
FURPS模型
ISO9126
6.软件配置管理:
项目计划阶段:
配置控制委员会(CCB)根据项目的开发计划确定各个里程碑和开发策略
配置管理员(CMO)根据配置控制委员会(CCB)的规划,指定配置管理计划交给配置控制委员会(CCB)审核
配置控制委员会(CCB)通过配置管理计划后交项目经理批准,发布实施。
项目开发维护阶段:
主要由配置管理员(CMO)完成的管理和维护工作
系统集成员(SIO)和开发人员(DEV)具体执行软件配置管理策略
变更流程
常用工具:VSS(可分为三个级别)
7.软件可靠性度量和测试
软件可靠性:规定条件和时间内,软件不引起故障的能力
不但与软件中存在的缺陷有关,也与系统输入和系统使用有关。
软件质量特性中重要的固有特性和关键因素。(反应了用户的质量观点)
软件可靠性模型:Musa,Shooman,Coel-Okumoto,测试成功模型,威布尔模型。
提高软件可靠性的方法和技术:
可靠性核心质量标准,指定标准,可分为产品质量,过程质量。
确定质量度量,选择开发方法,软件重用,使用开发管理工具,加强测试,容错设计。
8.软件质量标准:
五个级别:国际标准,国家标准,行业标准,企业标准,项目规范。
ISO9001和9000-3
CMM,CMMI
IEEE
软件评审:
什么是软件评审?
- 关于审查和批准项目计划,项目变更和工作进展评价的一个步骤。
为什么需要进行软件评审?
- 提高项目的生产率:早期发现错误,减少返工和测试时间
- 改善软件的质量
- 使开发团队的其他成员更加熟悉产品开发过程
- 通过评审标志着软件开发的一个阶段完成
- 生产出更易维护的软件。主因:评审者熟悉;生成了证明文档;
软件评审包括:
- 管理评审
- 技术评审
- 文档评审
- 过程评审
软件评审主要有哪些方法?异同点是什么?
- 特别检察
- 轮查
- 走查
- 团队评审
- 检视
测试计划的目的是什么?测试计划文档的内容包括什么?哪些是最重要的?
- 目标:定义每个测试阶段的目标
- 结束准则:规定每个测试阶段合适可以结束
- 进度:每个阶段都要有时间表
- 责任:规定谁来设计
- 工具:确定使用的测试工具
- 计算机时间:每个测试阶段所需的计算机时间
- 硬件配置:如果需要硬件设备的话
- 集成:测试计划的一部分如何组装在一起的方法
- 跟踪步骤:必须跟踪测试中的方方面面
- 调试步骤:必须制定上报已发现错误跟踪错误修改进程以及将修改部分加到系统中的机制
- 回归测试:判断软件改进过程中是否引起了程序其他方面的退步
提高软件可靠性的方法和技术:
- 建立以可靠性为核心的质量标准
- 选择开发方法
- 软件重用
- 使用开发管理工具
- 加强测试
- 容错设计
影响软件质量的因素:
- 正确性
- 可靠性
- 可用性
- 效率
- 可移植性
- 可维护性
简述自动化测试的优点,并例举两种以上的自动化测试工具软件
- 对程序的回归测试更方面:由于回归测试的动作和用例是完全设计好的,测试希望的值也是完全可以预料的,将回归测试自动运行,极大提高测试效率
- 可以运行更繁琐的测试:可以在较少的时间运行更多的测试
- 可以执行一些手工测试困难或者不可能进行的测试:例如大量用户的测试
- 更好的利用资源:提高准确性和测试人员的积极性
- 测试具有一致性和重复性:测试是自动执行的,可以保障,从而达到可重复
- 测试端复用性。
- 增加软件信任度。
C++ Test 和 Visual Unit
软件过程度量的目标、对象、方法和结果
- 软件过程度量的目标:对软件过程的行为进行目标管理,在度量的基础上对软件过程进行控制,评价和改善软件过程度量最终为项目管理和软件过程管理服务。
- 对象:主要包括三个:工作产品、软件项目和过程。
- 软件过程度量的方法:对软件过程度量的方法是过程性方法,软件过程行为是事件行为,对过程的度量也具有过程性了,从制定度量目标到收集数据分析表示了典型的度量阶段。
- 软件度量的结果:软件产品的复杂度模型和可靠性模型。