《Software Testing》第二十一章 – 软件质量保证

Quality Is Free – 质量是免费的。

质量为什么是免费的呢?因为其实一个公司可以不花费额外的开销就能生产出一个高质量的产品。回到前面书中已经提过了,越晚发现缺陷,付出就越大,而且这个不是呈现线性增长,而是指数增长。

把达到高质量产品的花费划分为两种不同类型,一种是conformance cost另一种是nonconformance cost。conformance的开销是指-计划测试并且运行一次测试证明软件是正常工作的,对于这些活动的总开销,就是conformance cost。如果软件存在缺陷,那么投入到隔离缺陷,提交缺陷报告,回归测试等相关活动的开销,就算是nonconformance cost的一部份。以上的错误都是在产品发布之前发生的,所以归类未内部错误(internal failures),而且总体的付出的不多的。

如果在测试的过程中没有发现缺陷,而是由我们的用户来发现的话,那么花费就是巨大的,用户会打电话过来质疑或者寻求帮助,然后再让测试人员提交缺陷报告并且由开发人员修复,还要重新测试来确定那些缺陷已经被修复了,重新发布产品。更糟糕的是有可能要召回所有产品并且惹上官司。这一类的问题就被称为外部错误(external failures)。在正常情况下,外部错误的开销要比因为内部错误而产生的开销要大。所以要尽可能避免外部错误的出现。

Testing and Quality Assurance in the Workplace – 在工作中,有很多名词可能都用来描述测试,例如Software Testing, Software Quality Assurance, Software Quality Control, Software Verification and Validation, Software Integration and Test。大多数情况下他们是可以替换的,但是其实他们有各自的含义,这部分主要讲述了两个最常见的名词的区别Software Testing, Software Quality Assurance。软件测试和软件质量管理。

Software Testing – 软件测试。强调了一下软件测试人员的目的:The goal of a software tester is to find bugs, find them as early as possible, and make sure they get fixed 简单来说软件测试可以描述为“评定,报告,跟踪”。作为一个软件测试员,有一个非常重要的特征“你不需要为软件的质量负责”。因为软件测试员只负责测试软件,提交缺陷报告并且跟踪,仅此而已。就好像一个医生不能单靠给病人量体温就能治好病人的感冒一样。

Quality Assurance – 质量保证。一个QAer,他主要负责检查和度量软件开发过程并且能改进之,使其达到防止缺陷发生的目的。QA是对软件质量负责的人员之一。很多公司可能都不分QA和测试,肯能广告是打个QA听起来比较牛吧。呵呵。

Test Management and Organizational Structures – 测试管理和组织架构。不同的架构有不同的优点缺点,这都要看哪种适合自己的公司了。最常见的是开发经理带着开发人员和测试人员一起工作,这种组织方式的好处就是开发和测试合作比较紧密,但是不好的地方就是很容易产生一种矛盾。开发经理的目的是按时完成任务,如果投入资源到测试中,测试人员就能发现更多的缺陷,这也意味着开发人员要干更多的活,那么什么时候才能发布产品呢?这种组织架构要求开发经理要十分了解开发和测试的关系,才能胜任。另外一种结构就是由一个项目经理,分别带着开发团队和测试团队,每个团队有个lead或者经理。这种组织架构的好处就是测试和开发有同等的发言权。但是缺点就是基本上什么事情都是由PM来敲定,在一些高风险的项目中,质量保证团队的声音应该更加强。所以就有另外一种组织。一个执行经理,手下有开发经理测试经理和项目经理。在这种组织下,可以简历起一系列的标准。

Capability Maturity Model (CMM) – 能力成熟度模型。
Level 1: Initial – 在这一个级别里面,整个项目都是混乱的,随机的,会发生什么事情没人会知道,项目的成功完全靠的运气和个人英雄。
Level 2: Repeatable – 这是一个项目级别的思想。基本的软件测试实践会落实到项目当中。
Level 3: Defined – 一个组织级别的思想。文档和计划都是经过评审的,测试和开发是相互独立的。
Level 4: Managed – 开发过程和软件的质量都是受控的,而且在项目过程中可以通过调整来修正问题,从而使得项目成功。
Level 5: Optimizing – 持续优化……

Leave a Reply

Your email address will not be published. Required fields are marked *