第 10 章 设计质量贯穿始终(1)
张刚
没有人会认为质量不重要——但是落实到具体行动上就不尽然了。在项目进度的压力之下,牺牲质量,特别是牺牲外部看不到的可理解、可演进和可复用能力,是不少开发者和开发团队下意识的选择。这种做法本质上是饮鸩止渴,也是没有深入理解软件开发的一种表现。
质量免费。对软件开发来说,质量不仅免费,还是持续发展的源泉。质量是软件资产必须满足的特征,质量有问题的软件资产不叫资产。只有真正意识到质量价值的人和团队,才会真正注重质量的投入。
如何最有效地达成质量目标呢?仅仅是做更多的测试吗?并不是。高质量源自优秀的设计实践,包括合理的开发过程、良好的编程习惯、有效的工具等。本章将首先介绍质量内建的概念,然后分别介绍各种主要的质量保障实践。
10.1 质量内建
质量管理的一代宗师戴明博士曾经提出过非常著名的“戴明质量管理十四条”[44],其中有一条论断是:不能依靠检验来达到质量标准。换句话说,如果一个企业需要依赖检验达成质量目标,就等于它已经接受了“生产的东西一定会包含次品”这个假设。检验有成本,检验出的次品无论是抛弃还是修复也都意味着成本。更好的做法应该是改良生产过程,尽量少生产次品。
质量内建意味着质量来自持续改进的生产过程,而不是检验。
第 1 章曾经介绍了缺陷成本递增曲线(图 1.2),其形象地解释了质量内建的价值。质量内建使得缺陷在注入时刻就被发现,从而降低了由缺陷导致的成本。
公开
同步至部落
取消
完成
0/2000
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
![](https://static001.geekbang.org/resource/image/d0/e4/d0880927e2a522a038be2d04bf19dfe4.png)
本文深入探讨了质量内建、防御式编程和自动化测试等概念在软件开发中的重要性和具体应用。质量内建强调质量来自于持续改进的生产过程,而不是依赖检验,契约式设计和防御式编程被介绍为保障和检验契约的手段。同时,高质量的自动化测试被认为是可持续软件开发的根本保证,需要在合适的粒度上进行高质量的测试,并关注外部契约而非内部实现。文章还强调了关注外部契约而非内部实现的重要性,以及避免自动化白盒测试的危害。总的来说,本文通过介绍这些概念,强调了质量内建对软件开发的重要性和具体应用,为读者提供了对软件质量保障的深入理解和实践指导。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《软件设计:从专业到卓越》
《软件设计:从专业到卓越》
立即购买
登录 后留言
精选留言
由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论