软件质量保障
1、对教材与参考资料阅读后,关于软件质量保障的体会
在讨论软件质量保障之前,首先讨论一下什么是软件质量。在教材中,给出这样一个归纳,即软件要符合用户、利益相关者的需求。在开始学习软件工程之后,我们认为软件=程序+软件工程。套用这个公式,可以得出软件质量=程序质量+软件工程质量。所以,下面要分开讨论程序质量和软件工程质量。
程序质量,即主要体现在软件外在功能的质量,当然,对于用户体验的质量、国际化的质量标准、安全性的质量等,都可以作为软件质量的评判标准。
软件工程质量:即体现在软件的功能、成本、时间这三方面的质量。
对比于程序质量和软件工程质量,可以发现二者的侧重点不同。通俗来讲,程序质量是开发人员通过控制代码的质量来实现控制整个程序的质量。而软件工程质量则是管理人员,通过掌控整个开发过程,来实现软件工程质量的保障。
我个人认为,要想保证程序质量,则需要开发人员与测试人员的共同合作才能完成。 / *对于软件测试,我对一些观点有不同的看法,我认一个合格测试人员是懂代码的,了解整个软件开发的流程,甚至在一些方面了解的要比开发人员多。专职的测试是有必要的,有些人认为开发人员就可以进行测试,试问有这种观点的人,每一次考试自己都会检查,为什么没有得满分???开发人员去测试自己的代码,往往会因为一些思维定式,发现不到程序中的一些逻辑问题。所以专职的测试是有必要的 * / 而对于软件工程质量,则需要专职的QA保证,软件工程的质量,是贯穿整个软件的开发周期的,在项目的前期,就需要对开发过程的可见性、风险控制、成本控制等进行分析和及时的调控。我认为QA是属于控制整个项目开发流程的一个职位,需要对项目的所以参与者协调及管理,其中也包括测试。
2、如果是一个项目的QA,工作职责范围
保障软件组织流程体系得到遵守;
促使软件组织过程改进;
指导项目实施流程;
增加开发活动透明度;
评审项目活动;
审核工作产品;
协助工作产品问题解决;
度量数据采集分析,提供决策参考;
进行缺陷预防;
实现质量目标。
3、如果是一个项目经理,项目中需要专职的QA么?还是只需有Test即可?如果一旦出现问题,如何界定由谁担责?
我认为项目中是否需要专职的QA最大的取决因素要看项目、公司的规模。一些初具规模的公司都会使用CMMII模型管理项目,CMMI的等级越高,QA的存在性就越重要。通俗的来讲,一个只有10个人组成的小公司,专职的QA显得就不是特别重要了,这种规模的公司大都是员工身兼数职,通常QA的工作需要Test和PM完成。而一个百人以上的大公司,角色职位分工相当的明确,大家各尽其责,只需要处理好自己负责的部分就好,这时QA和Test则是独立出来的,往往QA需要了解和安排Test的工作。(需要注意的是,有些人认为QA和Test是不懂代码不懂开发的,认为没有必要设置专职的职位,我一直认为,一个合格的QA和Test是一定能看懂代码、了解整个开发过程的,所以这里讨论的是否应设置专职的QA,我默认是一个合格的QA)
我认为责任的界定,需要看项目的阶段。在项目开发阶段,责任主要是开发人员承担。一旦项目上线,责任的定责则是:QA>Test>开发。但需要注意的是,这不是绝对的,因为软件项目是一个系统工程,软件质量牵扯到多个部门和人员,以及需求分析、设计、编码、测试等各个环节和过程。一旦出现问题,其实大家都是有责任的,只是孰轻孰重而已。