📔 Part V : Code Improvements 学习笔记
Chapter 20 软件质量概述¶
1. 软件质量的特性¶
软件同时拥有外在和内在的质量特性。 - 外在特性:指的是该产品的用户所能够感受到的部分。 - 正确性 - 可用性 - 效率 - 可靠性 - 完整性 - 适应性 - 精确性 - 健壮性
- 内部特性
- 可维护性
- 灵活性
- 可移植性
- 可重用性
- 可读性
- 可测试性
- 可理解性
质量的外在特性是用户关心的唯一软件特性。
对于程序员来说,除了要关注软件质量的外在特性之外。还需要关注它的内在特性(也就是代码)。
2. 改善软件质量的技术¶
软件质量保证是一个需要预先计划的、系统性的活动,其目标是为了确保系统具备人们期望的特性。
软件质量中的某些因素:
- 软件质量目标
- 明确定义质量保证工作
-
测试策略
- 执行测试可以分为产品的可靠性进行详细的评估。
-
软件工程指南
- 非正式技术复查
- 正式技术复查
- 外部审查
2.1 开发过程¶
-
对变更进行控制的过程
- 有效管理变更是实现高质量的一个关键。
-
结果的量化
- 制作原型
- 制作原型是指开发出系统中关键功能的实际模型。
2.2 设置目标¶
明确设置质量目标是开发高质量软件的一个简单而清晰的步骤,但它常常被忽视。
明确了目标,则可以减少诸多问题,从而达到高质量的目标。
3. 不同质量保障技术的相对效能¶
- 缺陷检测率
- 找出缺陷的成本
- 修正缺陷的成本
4. 什么时候进行质量保证工作¶
缺陷可能在任何阶段渗透到软件中。
- 在早期阶段
- 强调质量保证工作,并且贯彻到项目的余下部分中。
- 在开工阶段
- 应该添加到项目计划中,在项目进行中作为技术脉络的一部分,并应该作为项目的结束点,当整个工作结束的时候检验产品的质量。
5. 软件质量的普遍原理¶
软件质量的普遍原理:改善质量以降低开发成本。
要达到原理,则需要提高生产效率和改善质量。
6. 核对表:质量保证计划¶
- 是否确定出对项目至关重要的特定质量特性了?
- 是否让其他人意识到项目的质量目标了?
- 是否能够区分质量的外在特性和内在特性?
- 是否考虑过某些特性与其他特性相互制约或相互促进的具体方式?
- 在软件开发的每一个阶段,项目是否要求针对不同错误类型使用不同的错误检测技术?
- 项目计划中是否有计划有步骤地保证了软件在开发各阶段的质量?
- 是否使用了某种质量评估方法,并且由此确定质量是改善了还是下降了?
- 管理层是否能理解为了质量保证在前期消耗额外成本,目的就是在项目后期减少成本?
7. 更多资源¶
- 《面向用户的软件质量保证》Ginac, Frank P
- 《软件测试和连续质量改进》Lewis, William E
Chapter 21 协同构造¶
1. 协同开发实践概要¶
“协同构建” 包括结对编程、正式检查、非正式技术复查、文档阅读,以及让开发人员共同承担创建代码及其他工作产品责任的技术。
- 协同构造是其他质量保证技术的补充
- 协同构造有利于传授公司文化以及编程专业知识
- 集体所有权适用于所有形式的协同构造
- 在构造前后都应保持协作