其实这些话并非官方定义,而是我这些年来的经验总结,之所以发在这里,实在是因为找不到更好的板块,有些东西还是希望从新手阶段就认清楚,对以后的发展会有好处。
警告:以下内容有可能引起各位思维混乱,务必当作学术研究,头脑风暴,而不可当作金科玉律,否则死了不管埋。
软件测试的目的是什么?为什么要有软件测试?
我刚刚参加测试工作的时候就被问到这个问题,当时的回答是不知道,哈哈。
另一个让人很尴尬的问题是:当软件出了问题,经常会有人说,你们做测试的是干什么吃的?
本文力图让你明白,你没那么伟大,也没那么全能,我们都只是测试员而已。
去年跳槽,被一个测试经理面试,她先问的不是这个问题,而是:你如何保证产品质量?
我当时就头大了,本着负责的态度,只能从头讲起,从软件的本质,到软件生命周期,到开发模式,到各个阶段的质量保证,测试被抽象成一个小步骤。我讲完了,小姑娘听蒙了。
然后她继续按照模板问下一个问题,直到她问,软件测试的目的是什么?
我想了想,试着说帮助开发组提高产品质量?她说对啊,你如果早说不就明白了?
于是我也明白了,我和她对软件测试的认识根本不一样,以至于她认为很简单的一个问题,对于我来说非常的复杂。
很冗长的前言,但是很重要,这体现了通常对软件测试的认识与我的认识有多大的差别。
软件测试是什么?软件测试是质量保证体系的一部分。CMMI中对产品质量保证工作有两个过程,验证和确认,简称V&V。二者非常类似,在其实践和子实践中,使用两种方法,一个叫做软件测试,另一个叫做同行评审。
在瀑布式模型中,软件生命周期分为需求,设计,开发,测试,部署五大阶段。
于是你明白歧义在哪儿了,有两个软件测试,一个是测试组实施的软件测试活动,另一个是作为项目的一个阶段由整个项目组一起实施的软件测试。
这两个软件测试的目的截然不同,而正是由于这种模棱两可,致使很多人误解了软件测试。
好吧,分析也够冗长的。如果你足够耐心,我们可以继续往下写:
整个项目组一起实施的这个测试阶段,其目的就是保证产品质量符合需求规格和行业规格。这个过程是通过不断提高产品质量实现的,其中包括BUG修复,代码重构,调试,测试,评审,试运行等等。所以当初我遇到的那个让我尴尬的问题,提问者预设的答案就在这里。
可是还记的那个问题是什么么?“你如何保证产品质量?”
质量保证啊,在CMMI里我只能给她讲V&V的过程,贯穿项目始终啊,从投标阶段就开始的技术委员会评审,到上线后商业beta,哪能光靠一个小小的测试阶段啊?(还好明确了产品质量,否则连过程质量都讲,那他么就得面试个两三天)
而软件测试,不过是质量保证体系与生产体系的一个小小的交集,将这么大的任务交给测试组,俺们肩膀稚嫩,担当不起啊。
上面说了软件测试阶段的目的,那么,软件测试的目的是什么?
很多软件测试的书籍里都会谈到这个问题,标准答案出现在很多公司的面试题里:
为了找BUG