1、我过去是怎么做的(或者我过去看见谁是怎么做的)
过去我认为当程序发布给顾客使用后,每一次进行“程序维护”后,bug会越来越少。
2、结合书中所讲,说明为什么这样不好
书中讲到:对于一个广泛使用的程序,其维护总成本通常是开发成本的 40%或更多。令人吃惊的 是,该成本受用户数目的严重影响。用户越多,所发现的错误也越多。
程序维护中的一个基本问题是——缺陷修复总会以(20-50)%的机率引入新的 bug。 所以整个过程是前进两步,后退一步。
为什么缺陷不能更彻底地被修复?首先,看上去很轻微的错误,似乎仅仅是局部操作上的失败,实际上却是系统级别的问题,通常这不是很明显。修复局部问题的工作量很清晰, 并且往往不大。但是,更大范围的修复工作常常会被忽视,除非软件结构很简单,或者文档 书写得非常详细。其次,维护人员常常不是编写代码的开发人员,而是一些初级程序员或者 新手。
3. 提出一个解决办法,避免再次掉入陷阱
作为引入新 bug 的一个后果,程序每条语句的维护需要的系统测试比其他编程要多。 理论上,在每次修复之后,必须重新运行先前所有的测试用例,从而确保系统不会以更隐蔽 的方式被破坏。实际情况中,回归测试必须接近上述理想状况,所以它的成本非常高。
显然,使用能消除、至少是能指明副作用的程序设计方法,会在维护成本上有很大的 回报。同样,设计实现的人员越少、接口越少,产生的错误也就越少。