软件工程第三次作业-质量保障初探
1、对教材与参考资料阅读后关于软件质量保障你的体会是什么?(40分)
(1)什么是软件质量保障
软件质量保证是建立一套有计划,有系统的方法,来向管理层保证拟定出的标准、步骤、实践和方法能够正确地被所有项目所采用。软件质量保证的目的是使软件过程对于管理人员来说是可见的。它通过对软件产品和活动进行评审和审计来验证软件是合乎标准的。软件质量保证组在项目开始时就一起参与建立计划、标准和过程。这些将使软件项目满足机构方针的要求。
在本书中利用了软件=程序+软件工程的公式导出软件质量=程序质量+软件工程质量。
(1) QA(QUALITY ASSURANCE,中文意思是"质量保证",其在ISO8402:1994中的定义是"为了提供足够的信任表明实体能够满足质量要求,而在质量管理体系中实施并根据需要进行证实的全部有计划和有系统的活动"。有些推行ISO9000的组织会设置这样的部门或岗位,负责ISO9000标准所要求的有关质量保证的职能,担任这类工作的人员就叫做QA人员 .
(2)在CMMI中,QA的主要工作是过程评审和产品审计。从实践经验来看,QA只完成这两项工作很难体现出QA的价值。为了让QA组织的产出大于组织的投入,实现增值,就应该根据企业需要适当增加QA的职责,比如过程指导、过程度量和过程改进等。过程指导主要是项目前期辅助项目经理制定项目计划(包括辅助定义或修改项目过程和过程模型、协助项目估计、建立项目验收准则、设置质量目标等),对项目成员进行过程和规范的培训以及在过程中进行指导等。过程度量(包括产品度量)在CMMI中已经成为CMMI ML2级中一个单独的过程域,但却是对所有过程的一个共性要求。特别是成熟度越高,对度量的要求也越高,难度也越大。这就要求有专业的人员来负责,QA就是一个很好的选择。主要职责包括收集、统计、分析度量数据,以支持管理信息需求。过程改进在CMMI中主要是EPG的职责。但事实上,QA更接近于过程实施的环境,更了解过程运行的情况,也就更容易发现“木桶中最短的那块”。同时,QA也是改进过程实施的重要推动力量。
在了解了QA的这些工作以后,是否认为每个企业的QA职责应该都一样或者差不多呢?目前国内不少企业的现状确实是这样,这也是QA整体效果低下的一个很重要的因素。我们在确定QA职责的时候应该考虑自身的需要和环境,主要包括业务需求、过程成熟度水平和企业文化。
业务需求主要是确定了QA需要完成哪些方面的工作,比如执行同行评审过程中,QA可以协助评审和组织会议;在存在外包的情况下,可能需要QA在监控外包方方面发挥作用。
3、如果你是一个项目经理,那么你认为这你的项目中需要专职的QA么?还是只需有Test即可?如果一旦出现问题,你如何界定由谁担责?(30分)
我觉得是不需要全职的QA的,因为有的QA是不懂得开发的,不懂开发的人必然做不好测试。就像不懂开发的研发经理必然管不好研发团队一样。这样出现问题智能是开发者来承担责任。