一、对教材与参考资料阅读后关于软件质量保障你的体会是什么?
1、软件质量的保证工作(Quality Assurance):软件团队为了让软件达到事先定义的质量标准而进行的所有活动,包括测试工作。
2、软件质量这个词究竟有多重要,代码的强壮性,高效性有多重要,我认为软件质量在研发领域几乎可以说是重过其他一切,开发进度来不及可以延期,方案搞不定可以变更,裁决不做,唯有质量不可妥协。
(1) 软件的质量是一个企业项目的代名词,质量都做不好,客户肯定会有不好的体验,并质疑你的能力。
(2) 对于大型的软件工程活动,如果前期版本到处挖坑,那么后期版本将会越做越痛苦,而且定位和解决问题所消耗的时间和金钱将会更多。
(3) 从软件开发的角度来看,越早引入问题,带来的人力消耗和经济损失就越大,举个例子,如果开发阶段,引入一个和其他地方关联性比较强问题,一直没被发现,然后几个版本之后发现,那么可能很多代码都是基于这个错误的逻辑继续开发的,到时候修改起来,很可能会牵一发而动全身。
3、要想做好软件质量保障我总结了以下几点:
(1) 我们要培养质量意识
之所以把这点放在第一位,真的是认为这点是最重要也是最难做到的,可能你自己有质量意识,但是要让整个团队有质量意识还是非常难的,首先要建立大家共有的质量价值观,从软件质量意识植入人心,不然以有些人的“聪明”总是上有政策,下有对策。所以我认为意识和价值观的建立是一切的基础,有了共同的价值才能更好的执行规则。
(2) 有清晰的质量目标和向导
有了软件质量意识,还需要有目标,要用清晰可见的目标来推动我们为质量负责,量化好什么样的代码是质量好的,比如每千行代码少于多少个bug,bug要根据影响划分出不同级别。质量一定要作为一个评价研发人员工作或绩效的重要因素。
(3) 编程规范
这点刚开始学习编程的时候体会不深,随着项目做的越来越多,经验越来越丰富,体会就越来越明显,大型软件的编写不是一个人的事,定位、修改问题,也不是只改自己的部分,我们甚至定位的大部分问题都是老版本和别人的问题,这个时候,如果大家没有一个统一格式的编程规范,就会很难读懂别人的逻辑,会浪费很多时间去读别人的程序。而且好的编程规范确实能让我们的程序可读性更好,更少的犯错误。
(4) 测试甚至调试之前就要保证代码质量
不要过分的依赖测试,测试当然很重要,但这是保证我们质量的最后一道关口,软件的质量要从代码源头进行把控,好的代码应该不需要调试或很少需要调试的。当然不需要调试的代码几乎是不存在的,但是意识上一定是要这样的,最后也应该不会差。
二、如果你是一个项目的QA,那么你认为你的工作职责范围是什么?
1、进行产品质量、质量管理体系及系统可靠性设计、研究和控制;
2、组织实施质量监督检查;
3、进行质量的检查、测试、分析、鉴定、咨询;
4、进行产品认证、体系认证、质量检验机构和实验室考核等合格评定管理;
5、调节质量纠纷,组织对重大质量事故调查分析;
6、研究开发检验技术、检验方法;
7、制定质量技术法规并监督实施;
8、设计、实施、改进、评价质量与可靠性信息系统。
三、如果你是一个项目经理那么你认为这你的项目中需要专职的QA么?还是只需有Test即可?如果一旦出现问题,你如何界定由谁担责?
如果我是一个项目经理,我认为我的项目中不需要专职的QA,只需有技术强硬的Test即可,其是很多公司也都是成立的专门做测试的技术人员,仅测试不开发。QA对于软件开发技术并不熟悉,甚至不懂,不懂开发的人必然做不好测试。就像不懂开发的研发经理必然管不好研发团队一样。我觉得Dev应该是做测试最合适的人选,Dev比QA更了解软件项目的设计和实现,让开发人员自己测试解决问题会更有效率。
如果出现问题,需要承担责任时,则“各司其职,对项目共同负责”。