第一章
概述
- 什么是软件质量(SQ)->满足需求
- 从客户角度:适合使用
- 从生产者角度:满足功能和需求
- 特点:
- 1.满足用户需求;
- 2.建立合理的进度、成本与功能的关系;
- 3.具备扩展性和灵活性;
- 4.能有效的处理例外情况;
- 5.保持成本和性能的平衡
- SQC(Software Quality Control):控制、产品
- 为了达到产品的品质要求所采取的作业技术和活动。
- SQA(Software Quality Assurance):保证、过程
- 为了确保软件开发过程和结果符合预期的要求,而建立的一系列规程,以及依照规程和计划采取的一系列活动,以及结果评价。
- 软件测试:有计划并尽可能达到高覆盖化。
- Software Defect:软件产品中所存在的问题,最终表现为用户所需要的功能没有完全实现,没有满足用户的要求
- Error 错误:代码层面【静态】
- Fault 故障: 错误未传出【动态】
- Failure 失效: 错误已传出
- Incident 事故: 失效导致的后续问题
- Function Testing
- Verification 验证: The software should conform to its specification 【判断是否是正确的(与规约相比)】【在软件开发周期中】
- Validation 确认 : The software should do what the user really requires【从用户角度的需求】【在软件开发过程末】
- 发现错误:减少软件不工作的概率
- 软件测试:使用或评估一个系统或系统部件的过程,通过人工或自动化的方法来验证满足规定的要求或识别预期和实际结果之间的差异。
- 静态测试:从代码层面找到关键模块
- 动态测试:不同的输入改变软件运行状态。输入激活缺陷从而引发故障
- 软件测试越早发现问题,可能产生的代价越小
- 软件测试的停止程度
- 测试用例:测试系统的输入,以及如果系统按照其规格运行,这些输入的预期输出。
- 测试用例设计规则:
- 避免模糊的测试用例。
- 类似的功能应该被抽象和分类。
- 避免复杂的测试用例。
软件质量控制 Quality Control
- 基本结构
- 基本方法
- Goal question metric approach
- Risk management approach
- PDCA quality control approach
GQM
- GQM(Goal question metric approach):是一种系统的方法,它将一个整体的目标裁剪并集成为可度量目标,并将其细化为可度量的值。
- 过程:
- 制定一套公司、部门和项目的生产力和质量目标,例如,客户满意,提高质量
- 提出问题,以量化的方式尽可能完整地定义这些目标
- 指定需要收集的度量来回答这些问题,并跟踪过程和产品是否符合目标
- 开发机制用于数据收集
- 实时收集、验证和分析数据为项目提供反馈改进措施和分析数据事后剖析的方式来评估符合目标和未来的改进提出建议。
- 过程:
- goal的属性:
- 感兴趣的对象是什么
- 研究感兴趣的对象的目的是什么
- 关于感兴趣的对象的特征重点是什么
- 谁的观点应该得到目标的支持
- 在什么背景或环境中是研究对象
RM
- 风险定义:
- 不确定度对目标的影响(ISO)
- 不幸发生的可能性
- 实现某一事件不希望发生的负面后果的可能性
- 面对一个不确定的命题(如损失的发生)
- 活动的后果和相关的不确定性
- 活动的后果的不确定性和严重性与人类重视的事物有关
- 活动的某些特定后果的发生和相关的不确定性
- 与参考值的偏差和相关的不确定性。
- 风险管理的两个组成:
- 风险评估(risk assessment):是识别软件风险来源、分析或评估其潜在影响并对其进行优先排序的发现过程。
- 风险控制(risk control):是开发软件风险解决方案,监控风险状态,实施风险解决方案,并纠正偏离方案的过程。
- 风险管理过程
PDCA
PDCA循环是一个持续改进的过程,它由四个部分组成:Plan计划,Do执行, Check检查和 Action行动。
- Plan计划:建立必要的目标和过程,以按照设定的要求交付结果。在这个阶段,您需要计划整个PDCA过程。
- Do执行:执行计划的过程,在可控的情况下采取小步骤。
- Check检查:在实施计划过程后,应对结果进行研究。需要根据目标和具体要求对过程和结果进行监测和评价,并需要结果报告。
- Act行为:在检查步骤之后,必须采取基于前一步骤研究的行动,以达到必要的改进。
steps | activities | process |
---|---|---|
Plan | ||
Do | ||
Check | ||
Action |
TSQC
Total Statistical Quality Control(全面统计质量控制)Model based on PDCA
- 质量控制模型中的参数不是孤立的,而是具有相关性。
- 在质量控制中需要对这些参数进行综合调节、平衡。
- 参数
- 产品:所有可交付物
- 过程:所有活动的集合
- 资源:活动的物质基础(人力、技术、设备、时间、资金等)
软件质量保证 Quality Assurance
为确保项目或项目符合既定技术要求而采取的所有必要行动的计划和系统模式。
- 内容:
- 审查和审核软件产品和活动,以验证它们符合适用的程序和标准。
- 向经理和软件项目团队成员提供这些评审和审核的结果。
- 特点:
- 由一种监视软件工程过程的方法和用于确保质量的方法组成。
- 它通过质量管理体系的审核来实现这一点,在质量管理体系下创建了软件系统。
- 这些审核有一个或多个标准支持,通常是ISO 9000或CMMI
- 方法:PPQA 审计
- 过程和产品质量保证
- 是确保过程和工作产品符合商定的过程的活动。
- 活动:
- verification and validation
- test
- review
- audit
- inspection
- 角色:
- 从长远的角度,在工厂所有软件项目的过程中,找到更好的方法
- 以更好的方式教育所有参与开发产品的人。
- 质量成本COQ:Quality Costs
- C O Q = C O F + ( C O A + C O P ) COQ=COF+(COA+COP) COQ=COF+(COA+COP)
- Prevention预防:为防止或避免错误而产生的成本
- Appraisal评估:尝试检测错误所产生的成本。
- Failure失败:由于其他尝试不成功而产生的成本
COP Prevention Costs | COA Appraisal Costs | COF Failure Costs |
---|---|---|
training | reviews | correction and re-work |
standard,procedures | walkthroughs | customer complaints |
planning | testing | supply failure |
quality improvement | supplier monitoring | equipment failure |
audits | manpower failure | |
analysis | legal fees | |
lost benefits |
软件质量标准
- 标准:
- ISO: International Organization for Standards 国际标准化组织
- CMM: Capability Maturity Model for Software 能力成熟度模型
- CMMI: Capability Maturity Model Integration 能力成熟度模型集成
- IEC: International Electro technical Commission 国际电工委员会
- TR: Technique Report 技术报告
- CMMI的五层成熟度级