Q: 对教材与参考资料阅读后关于软件质量保障你的体会是什么?
A: 一个软件质量的如何,可以通过套用下面这个公式来:
在衡量一个软件的质量如何的同时,就需要进行两项工作——软件的质量保障(QA)和软件测试(Test)。那么QA和Test是啥呢?
Test:运用一定的流程和工具,验证软件能实现预先设计的功能和特性,工作的流程和结果是可量化的。
QA:软件团队为了让软件达到事先定义的质量标准而进行的所有活动,包括测试工作。
然而,当前的IT业界经常混用QA和Test这两个名词,很多团队的QA/Test工作是在较低水平上重复。这引发了一些相关的讨论。
- 测试的角色(Test)要独立出来吗?
- 独立出来的测试角色怎么才能发挥作用?
- 有些成功认识或公司认为独立的测试角色不应该存在,你怎么看?
以上是教材中摘出来的内容。
我觉得,之所以会出现上面的这些问题,很大程度上是因为QA/Test的能力跟Dev不在一个水平上,由此大部分团队的QA/Test工作是在做一些重复工作。
在这里我就只说Dev跟QA之间的矛盾(纯粹未经世事的小白菜看法)。
一方面,QA说Dev不懂测试;另一方面,Dev说QA不懂技术。最好的办法,我觉得不应该是去掉专职的QA,专职QA应该存在,只不过应该掌握基本的编程能力;于此同时,一个合格的Dev也应该掌握必要的测试能力。两者各司其职,术业有专攻。这样,在遇到问题的时候,也不会出现Dev不懂测试,QA不懂技术的情况了。
可能我的这个观点,在实际操作中太虚了,但是,我觉得,作为一个合格的IT行业的工作者,我们最不应该缺乏的就是学习的能力。
一些与开发相关的东西,一个IT人员,应该主动自觉地去学习,而不应该出现,遇到问题,不懂的情况。不懂就学,如果不会学,那何必来做IT。
就像现在计算机行业有一个经常说到的职业——全栈工程师。其实,这只是一个头衔,之所以叫全栈,是一名有追求的工程师在自己职位上对自己的要求。他不需要是各种技术的资深专家,但是他需要熟悉到各种技术。
对于一个团队特别是互联网企业来说,有一个全局思维的人非常非常重要。
对于QA来说,他是软件质量保障的专业人员,但他也应该有大局意识,与自己相关的东西,要主动去学习。
Q: 如果你是一个项目的QA,那么你认为你的工作职责范围是什么?
A:
- 保证和提高产品质量
- 组织标准过程和项目已定义过程
- 评审和审计
- 发现和提出过程存在的问题
- 不断学习,提升自己的能力,以及全局思维意识
Q: 如果你是一个项目经理,那么你认为在你的项目中需要专职的QA(quality assurance,即质量保障)吗?还是只需有Test即可?如果一旦出现问题,你如何界定由谁担负责任?
**A: ** 需要。
就像前面说的,QA是在较低水平重复,如果QA自己具有一定的编程基础的话,根据自己的需要开发一些自动化工具,那么不就免去了好多的重复动作了吗?另外,QA跟Test的职责范围是不一样的。Test是对软件开发过程进行监督管理、控制,Test伴随整个软件开发周期,测试开发同步进行,这样有利于尽早发现问题。
如果项目出现了问题,我觉得书中一句话用在这里比较好——各司其职,对项目共同负责(Establish clear accountability and shared responsibility),毕竟最终的目的是让项目尽快上线,满足客户需求。