第二篇:项目计划——质量计划
一、质量概述:
质量是产品或者服务满足明确和隐含需要能力的性能特性的总体。
质量是满足要求的程度,包含符合规定的要求和客户隐含的需求。
1、软件质量定义
- 软件质量是软件满足明确说明或者隐含的需求的程度。
- 软件质量不是代码正确的程度。
软件质量反应以下3方面问题:
- 软件需求是软件质量的基础,不满足需求的软件就不具备质量。
- 不遵循各种标准中定义的开发规则,软件质量就得不到保障。
- 只满足明确定义的需求,而没有满足应有的隐含需求,软件质量也得不到保证。
2、质量与等级
区别:
- 高等级(无数的功能点)高质量 !=(没有明显问题,具备可读性强的用户手册)
- 低等级(有限的功能点)!= 低质量(问题多,用户文件混乱)
- 不管等级高低都可以在自己的等级中做到最高质量。
几个概念:
- 质量标准: 是企业、国家或者国际规定的对某个方面的规范,与质量政策相比,更侧重质量的细节特征,数据微观的范畴。
- 质量策略:是某个组织针对自身要求制定的一种质量指导方针,更侧重于指导思想,属于宏观的范畴。
- 质量责任:是整个组织都对项目质量负有的责任,但是如果没有明确和细化责任,就会形成人人有责,人人不负责的局面。所以质量责任包含管理层的责任、最终责任、首要责任等。
3、质量成本
质量成本:由于第一次工作不正常而衍生的附加花费。包括预防成本和缺陷成本
(1)预防成本(一致性成本):本着预防重于事后检查的原则,预防成本应大于缺陷成本
是为确保项目质量而进行预防工作所耗费的费用。
- 评估费用:使项目符合所提要求(第一次)检测缺陷所衍生的成本,如质量审计、测试等。
- 审计是对过程或产品的一次独立质量评估
- 预防费用:使项目符合所提要求预防失败所衍生的成本,如用户满意确定,过程评审、改进。
(2)缺陷成本(非一致性成本):
是为确保项目质量而修复缺陷工作或耗费的费用。
- 内部费用:对于不能符合所提要求、尚未发行的软件(反工)所衍生的费用,如缺陷标记、反工、重新测试等。
- 外部费用:对于已经发布但不符合要求的软件所衍生的费用,如技术支持、问题估计、修正、索赔等。
(3)其他点:
- 一个高质量的产品是开发出来的,后期的测试不能真正提高产品的质量,产品的质量只能靠前期的质量预防和质量检测保证
二、质量模型:
1、Boehm质量模型:
定量评估软件质量的概念,首次推出软件质量的层次模型
(1)软件的可使用性
(2)软件的可维护性
(3)软件的可移植性
2、MaCall质量模型
列出了影响质量的因素是 分别反应用户在时使用软件产品时的三种不同倾向或观点。
(1)产品运行
(2)产品修改
(3)产品转移
3、ISO/IEC 25010 质量模型:评价软件质量的国际标准
将质量特征分为外部特征和内部特征。
是一个“质量特性—质量子特性—质量因子”的三层结构模型。
只有质量要素才值得开发人员花费精力去修改
质量要素包括两个方面的内容:
(1)从技术角度讲,对软件整体质量影响最大的那些质量属性是质量要素。
(2)从商业角度讲,客户最关心、能够成为卖点的质量属性是质量要素。
三、质量管理活动:目标是满足项目地需要
总是围绕着质量保证和质量控制过程两个方面进行。
1、质量保证(Quality Assurance,AQ)
- 通过定期的地评估项目地整体性能以确保项目满足相关的质量标准。
- 它贯穿整个项目生命周期的系统性活动。
(1)软件过程审计:需求过程审计、设计过程审计、编码过程审计、测试过程审计 等。
(2)软件产品审计:需求规格审计、设计说明书审计、代码审计、测试报告审计 等
2、质量控制(Quality Control,QC)
- 通过控制特定项目的状态保证项目完全按照质量标准完成,同时确定质量改进的方法。
质量控制技术:技术评审、走查、测试、返工 等。
3、质量保证于质量控制的关系
质量保证是审计产品和过程的质量,保证过程被正确执行,确认项目按要求进行,属于管理职能。
质量控制是检验产品的质量,保证产品符合客户的需求,是直接对项目工作结果进行把关的过程,属于检查职能。
四、敏捷项目的质量活动
1、结对编程(Pair Programmig)
- 能用较少的时间生产更高质量的代码。
- 自己会更勤奋和更聪明地工作,不让同伴失望。
- 比一个自己的时候更专注、有效率、有纪律地工作,而且这个过程是持续的。
- 在紧张的时间和繁重的工作压力下,独立工作的学生容易蜕变为没有纪律的程序员。
- 知识共享
2、测试驱动开发(Test Driven Development , TDD)
明确要开发某个功能后,首先思考如何对这个功能进行测试,先完成测试代码的编写。
3、持续集成与测试(Acceptance Test Driven Development , ATDD)
要求频繁地讲工作集成到整体系统中,进行重新测试
4、不同层面自动化测试
5、验收测试驱动开发
首先讨论验收标准,创建测试用例,编写足够代码进行自动化测试,以满足标准要求
6、迭代评审
迭代后向相关人员展示迭代版本地运行情况,得到反馈。
7、迭代回顾会议
迭代后,评审本次迭代,确定是否进行过程改进
8、重构
先完成代码的正常功能,然后逐步地提高代码的质量。
五、软件项目质量计划
1、质量计划
确定项目应达到的质量标准,以及决定如何满足质量标准的计划安排和方法。
确定质量,保证人员的特殊汇报渠道。
2、编制质量计划的方法
(1)实验设计
(2)基准对照
(3)质量成本分析
(4)测试与检查的规划
(5)各种数据分析图示:因果分析图、流程图、思维导图。
3、质量计划的编制
质量计划应满足下列要求:
- 应达到质量目标和所有特性的要求。
- 确定质量活动和质量控制程序。
- 确定项目不同阶段的职责、权限、交流方式及资源分配。
- 确定采用的控制手段、合适的验证手段和方法。
- 确定和准备质量记录