质量保证框架之预防与检测
质量是不能通过评估已经生产出来的产品来达到的,因此,目标应该是首先去预防产品缺陷的产生,并且使产品可以通过质量保证度量进行评估。
质量保证度量包括运用软件开发标准将开发过程结构化,并在开发过程中运用方法、技术和工具。软件中没有检测出来的缺陷可能会带来几百万元的损失,因此有必要发展独立的测试,并且应该由公司来执行,而不是有软件系统的开发人员来执行。
质量管理程序,不仅有必要进行产品评估,过程评估也同样非常必要,例如编码标准的文档化,标准、方法和工具的规定和使用,数据备份的规程,测试方法,变更管理,缺陷记录和修正等。
有效质量管理的全部成本是由以下4部分成本的总和构成:预防、检测、内部故障和外部故障。
预防成本是有初为防止缺陷出现而采取的一系列行动产生的。
检测成本是由测量、评估、审计带来的。其目的是使产品或服务符合标准和规范。
内部故障成本是用来解决在发货前发现的缺陷时发生的成本。
外部故障成本则是用来解决产品发布以后才发现的缺陷时产生的成本。
质量保证框架之验证与确认
验证贯穿在整个开发生命周期中,用来评价产品是否满足了在前面一些已经正确完成的活动中定义的需求,而确认发生在生命周期的末尾,用来检查系统是否满足了客户的需求。
与验证相比,测试产品的创建与确认的关系更加紧密。从传统意义上讲,软件测试一直被认为是一个确认过程,也是说,被当做生命周期的一个阶段。
如果把验证整合到测试过程中, 测试将贯穿产品开发的整个生命周期。实践证明,为了获得好的结果,在测试过程中可以把验证与确认结合在一起。在软件开发的生命周期中,验证包括评审、分析和测试的系统化过程,从软件需求阶段一直到代码编写阶段。验证保证了软件开发与维护的质量。同时,验证使得开发过程变得更加有组织、更加系统化,从而使开发出来的应用程序很容易被第三方理解和评估。
验证为紧密监控软件开发项目提供了一个有效的方法,也为随时了解项目详细状态提供了管理手段。
对于验证,也有一种批判的观点,认为它会相当程度地带来软件开发成本的增加。然而,如果考虑从一开始到后系统废弃的整个生命周期中软件开发的成本,实际上,验证能够减少软件的总体成本。
老实说,在国内,估计很少公司能做到这点,口头可能会说说,但是实施起来发现项目是项目,不是产品。项目生命周期其实也不是很长,验证所带来的成本增加可能尤为明显。
我所在的公司,因为软件开发基本是遵循瀑布开发,很多过程也能做到文档化和评审。部门内部也有质量保证人员,来检查每个阶段和文档的评审情况。公司也有独立的质监部门来检查项目开展情况。老实说句,效果我认为只有一半,有一半流于形式了。??不是不重视,是因为项目太多,项目所需的时间太短??大家觉得这样的情况,应该怎么保证呢???