一、对于软件质量保障的体会
1.通过对软件质量保障这一章及相关参考文献的阅读,首先我认为软件质量保障是一项十分重要的工作,软件就像建筑一样没有质量保障一切都是空谈。然而软件质量保障工作就是软件团队为了让软件达到事先定义的质量标准而进行的所有活动,包括测试工作。只有良好的软件保障工作才能更好的确保软件质量,然而软件质量保障工作应该怎样做才能更佳合理,又是一直存在着很大的争议。
2.什么是软件的质量?教材中给出 ,软件质量=程序质量+软件工程质量;那么无论多优秀的软件在上线前,即使经过在精密的测试,在正式上线时还是会一些Bug有些Bug十分影响用户体验,就拿我个人经常接触的游戏来说,一个新游戏在上线当天服务器一般都会瘫痪,这种现象是游戏运行商的饥饿营销?还是游戏上线前工作人员对用户和数据的估算失误导致服务器崩溃。我之前玩过的一款游戏刚上线时最大的问题就是特别卡以及优化做的非常差,人物动作就像做了慢放一样,而且有时在游戏中获得的物品还会莫名的消失,那么我们有专业的QA和测试人员如果连软件的运行流畅都确保不了那这些测试人员存在的意义又是什么呢?
3.QA与Test,我认为QA与Test的工作要高效结合起来,既然Test做了程序Bug的测试,那么QA又何必重复Test做过的工作且这类工作可以使用自动工具化进行。我认为QA应该更加注重软件的用户体验,和可操作性,这些是自动化工具所做不到的,也是对软件质量十分重要的一项评估。软件开发出来最终都是要上线的,上线的最终目的就是为了保障用户满意,只有用户满意我们的软件质量才是合格的,从而才能带来最佳的效益。
4.软件测试人员与开发人员的协调,软件开发向来不是一个人的工作他需要各个部门的相互协调,然而在明确分工之后容易形成各管一摊,人人个扫门前雪的情况,这样就失去了软件开发过程中明确分工的意义,非但没有更加高效的完成工作,反而可能会影响软件开发进度和质量。所以我认为在软件开发中,需要各部门相互沟通和协调而不是相对独立和各管一摊。这个道理就像现代化作战一样,美军在伊拉克战争中就充分体验了多兵种协调作战的优越性,在美军地面部队进驻伊拉克之前,美军的导弹部队和空军已经扫除了伊拉克所有地面防御措施,所以美军在地面部队在进驻伊拉克时才能有那么低的伤亡率,又一次给全世界诠释了什么是现代化战争。所以我们在软件开发时道理也是一样,如果我们各个部门能够分工明确相互协调可以大大提高我们软件开发的效率,和大大的降低开发成本。
二、QA的工作职责范围是什么?
1.首先我认为如果我作为一个QA我在测试的同时应该要懂得开发。就像艺术品鉴赏一样如果你不懂它,你又怎么去评价它的好坏与否,就拿梵高的《向日葵》来说大家都说它好,但说实话我真的没有看出来它哪里独特,有时候甚至会觉得它很丑,如果换做一个艺术家来欣赏,它肯定会津津乐,赞不绝口。这就是我们平时所说的会看的看门道,不会看的看热闹,如果作为一个QA对软件只停留在看热闹的阶段,我想那样做出来的测试一定不会是很完美的。所以我认为如果我作为一个QA懂测试的同时也必须要了解软件的开发。
2.我在教材和资料中看到QA更多的和测试一起出现,我很疑惑如果QA的工作是测试为什么不直接叫做Test而叫做QA。然而QA是软件质量保障工作的英文简写。从字面理解QA需要做的就是软件质量保障工作,软件质量保障很重要的一项工作就是Test,它的这一性质也就很难避免两者的重复。然而除了测试之外QA更多的需要做些什么让我很困惑,我大胆的猜测如果我作为一个QA我应该做的事情是在CMMI的标准下降低开发成本的同时保证软件质量,做好两者之间的平衡。所以如果用更低的成本和更高的效率开发出质量更加有保障的软件是作为一个QA职责。
3.作为一个优秀的QA我认为在做好之间工作的同时,应该去了解软件开发的过程,甚至参与进软件的开发。只有真正的了解了软件的每一块这样不仅能够有更好的大局观去协调和保障软件开发的质量更能深入的和一线开发人员进行交流与探讨,从能够减少一些不必要的麻烦,也能够更好的提高软件开发的效率。
三、如果你是一个项目经理,那么你认为这你的项目中需要专职的QA么?还是只需有Test即可?如果一旦出现问题,你如何界定由谁担责?
1.我认为软件开发项目中需要QA , 因为软件的质量需要有专业人员负责监督,如果只有程序员和测试人员的话这样很容易闭门造车,无法从第三方的角度来评价软件的质量,从而导致软件质量评估的局限性,自己写的程序很容易出现自己觉得都是对的这种情况,只有从第三方的角度来观察才能从种找到更多的问题,所以我认为QA的存在是必要的。但QA的工作不能仅仅局限于测试,QA工作是保证质量,但如QA只是在做测试,软件质量是测试出来的吗?如果不从需求分析,软件设计,代码实现上做好控制,到测试的时候你还怎么保证质量呢?所以我认为QA不仅仅要懂测试更要懂开发,去了解软件的需求和实际开发中的困难,才能给出更合理的测试和建议。
2.QA的存在不仅仅能够保证软件的质量,更能减轻程序员的负担,如果开发人员既要开发又要测试那必然是一件很痛苦的事情,但程序员也要适当的参加进测试中这样才能更深刻的了解到自己代码中存在的问题,和带来的痛苦从而得到更多的锻炼。
3.我认为在软件上线前软件出现程序上的Bug是由程序员的编码失误造成的,那么责任应当在程序员。QA和测试人员应该合理的给出修正和改进建议。上线后的软件应当经过相当严谨的测试和可行性分析,如果上线后出现问题应该,由QA来负责,如果什么原因都由程序员来负责,那么QA存在的意义又何在,我们在给予QA足够权利的同时QA就应当肩负起同等的责任,这样能够保证QA在工作时认真,严谨负责。