如何保证软件的质量一直就是令人头疼的事,这里列了一个自己实际运作的一套用于保证软件质量的体系,还望大家多加指点。
软件的质量保证的关注点主要分为三个方面:
1、对于需求的满足
保证软件的设计/实现对于需求是满足的。
2、对于设计的满足
保证代码的实现是遵循设计的。
3、代码的质量/性能
避免代码实现造成的性能或其他的一些非功能性问题。
为了保证这三点的达成,在实际的项目/产品中采用了一套这样的方法,涉及到的角色有项目经理/开发经理/需求人员/设计人员/开发人员/测试人员:
1、对于需求的满足
在对于需求的满足上,为避免代码的设计/实现与需求出现大的偏差,要求由需求人员提供验证的场景,同时根据每天早会大家的计划在下班时对计划的完成根据验证场景进行验证。
涉及到的角色:需求人员(负责验证场景的提供和需求实现的验证)
测试人员(根据验证场景进行验证)
2、对于设计的满足
在对于设计的满足上,为避免出现代码和设计严重偏离的现象,要求设计人员和开发人员频繁的交流,确信开发人员对于设计意图的理解,开发人员在进行代码实现时根据设计人员提供的概要设计完成详细设计,在开发过程中采用TDD的方式进行,确保代码对于设计的符合,这样并不是说设计是不可修改的,但设计和代码的实现需要是可映射的。
要求设计人员对开发人员的代码进行频繁的Code Review,确定设计被正常的实现。
涉及到的角色:设计人员(提供对于设计验证的方法)
开发人员(TDD)
3、代码的质量/性能
为保证代码的质量,在PP不能完全执行的情况下也要求尽量的多采用PP的方式进行开发,同时通过设计人员对于开发人员以及开发人员互相的Code Review来保证代码的质量。
对于代码的性能更多的是通过单元测试执行的耗时来分析。
对于设计以及代码进行重构来提升代码的质量和性能。
涉及到的角色:设计人员(Code Review、性能分析、设计重构)
开发人员(PP、Code Review、代码重构)
4、任务完成情况/差距分析
为保证软件开发顺利完成,应不断的对任务完成的情况进行差距分析,以尽早做出应对措施并调整。
涉及到的角色:项目经理/开发经理
在开发过程中首先要求的是高质量的测试代码(满足需求/设计) ,之后才是高质量的实现代码,对于实现代码在有了测试代码的情况下更多的可以通过重构去达到高质量。
总体而言,在软件开发过程中最重要的就是要保证各种角色人员的接口的明确、交流/反馈的畅通,同时采取小步前进的方式,通过重构来达到目标。