一、对教材与参考资料阅读后关于软件质量保障的体会
(一)软件质量的定义
(1)软件需求是度量软件质量的基础,与需求就一致就是质量不高。
(2)指定的标准定义了一组指导软件开发的准则,如果没有遵守这些准则,几乎肯定会导致质量不高。
(3)通常,有一组没有显式描述的隐含需求(如期望软件是容易维护的)。如果软件满足明确描述的需求,但却不满足隐含的需求,那么软件的质量仍然是值得怀疑的。
影响软件质量的主要因素,这些因素是从管理角度对软件质量的度量。可划分为三组,分别反应用户在使用软件产品时的三种观点。①正确性、健壮性、效率、完整性、可用性、风险(产品运行);②可理解性、可维修性、灵活性、可测试性(产品修改);③可移植性、可再用性、互运行性(产品转移)。
很多时候,说起软件质量,就会提到QA和QC。
QA即英文QUALITY ASSURANCE 的简称,中文意思是质量保证
QC即英文QUALITY CONTROL的简称,中文意思是质量控制
(二)软件测试和软件质量保证工作的概念
软件质量保证(Quality Assurance):软件团队为了让软件达到事先定义的质量标准而进行的所有活动,包括测试工作。
软件测试(Test):运用一定的流程和工具,验证软件能实现预先设计的功能和特性,工作的流程和结果通常是可量化的。例如,测试用例、Bug、代码覆盖率、MTTF、软件效能的参数,等等。正因为流程和结果是明确定义的、可量化的,所以很多测试工作可以自动化。
二、如果我是一个QA,我的工作职责范围是什么
我理解的QA就是品质管理。因为QA结合了管理、分析、测试三大行业的知识。
QA需要管理自己内部和整个研发团队的资料,公司的研发进度、初期的标准制定及后期的研发都需要QA的参与。QA可以有效的控制研发的进度和每个环节的质量。不管任何的产品,都是以适合人使用为前题的。在产品初期制定设计标准的时候,QA能够站在消费者的角度来看待这个产品,让产品更人性化。设计阶段,QA成为一个测试者,验证每一个环节的质量,是否达到了设计标准所规定的。用当局者迷,旁观者清来形容再贴切不过了,QA就是这个旁观者。任何产品不可能十全十美,出了问题,设计者不可能一一来查找问题,因为很难有单独一个人完成整个产品设计,这时候QA就是一个分析师,查找在哪部分出了问题,节约研发的时间,解决不必要的麻烦。
任何的公司都有自己的产权,而QA能很好的保护公司的产权。健全的公司,QA有很大的权力控制公司的所有技术资料。任何设计工程师不可以私自给客户公司的技术资料,这些管理都是由QA来完成的。
在网上看到的一句话:要成为一个优秀的测试者,要有灵活的头脑,用逆向思维来思考如何做测试,如果不能做到与常人不同的角度去想问题,就不可能成为一个好的测试者。
三、项目中是否需要专职的QA,如发生问题谁来担责
我觉得还是需要专职的QA。文章上说不懂开发的人必然做不好测试,就像不懂开发的研发经理必然管不好研发团队一样。所以我觉得需要的是一个全面的真正懂专业知识的QA,正所谓当局者迷,旁观者清,不管是什么产品,都需要一个能够站在外人角度看问题的人,QA就担任这个旁观者的角色,他可以验证质量是否达到了设计标准,查找出现的问题,缩短研发时间,更可以让产品更加人性化。QA要懂代码,这点我很赞同。并非要让QA去品尝自己做出来的产品失败 或者有bug是什么滋味。而是只有懂的了,才能够真正的从逻辑上面去分析测试路径,分析测试方向。这样才不会让别人感觉到只是片面的黑盒测试罢了。
针对可能发生的问题,一定要在事前详细定责,出了问题可以明确到个人,而不是互相推脱。
QA和TEST都是不可或缺的,就像男女搭配一样,分工不同但互相配合,书上说分工是社会和行业进化的结果,因为有了分工,出了问题就可以很好的去定责了,分工也不会让人产生懈怠感,正因为怕被追责,所以每个人一定尽心尽力的去完成本职工作。