大家有没有想过这个问题:软件测试中有哪些误区呢?想起这个题目,是因为最近遇到好几次关于这方面的讨论。发觉即便做过几年测试的老员工也或多或少有些这方面的困惑。当然一家之言,仅作抛砖引玉之谈。
误区一:测试就是保证软件无故障运行
对这个,我只想说这个观点只是出于测试人员美好愿望。再牛的测试员也不可能保证他所测的软件就能无故障运行。只能说在他所测的范围内,软件能按预先定义的需求运行。这个误区的一个潜在问题是,秉承这一观点的测试人员可能更期望自己的测试对象能“顺利”运行,而不是尽力发现产品中的问题。
误区二:测试的环境就选用户的环境
我想说的是:不可能!好吧,也许对于一些具有固定用户,特别订制的特定环境下的软件产品,你很好找到用户的环境。不过对于大部分的软件产品而言,我想说即便你知道了用户甲的环境,你也不一定搞清楚用户乙的环境。即便同一个甲,可能他今天和明天的环境也不一定相同。那结果,你选择哪个环境作你的测试环境呢?
这个问题我想说的是用户的某些典型环境可以在测试中进行优先考虑,但真正的测试环境永远应该是那个你认为能更好暴露产品问题的环境。
误区三:测试自动化更为高效
说句心里话,我并不是反对这个观点,不过这观点是有商量余地的。自然,这里是拿自动化测试和手工测试作为对比的。也许自动化有诸多的优点,比如能够不厌其烦执行枯燥的动作;能够精确的定位时序动作;能够长时间工作;能够快速执行等等。不过自动化测试的缺点也是有的,比如需要开发成本;需要对产品行为的明晰定义。
说到这点,也就是说采取测试自动化是有条件的。并不是它就一定适应你的测试,何论高效。其实自动化测试更多的是应用在回归测试场合,更多的bug事实上是在手工测试中发现的。虽然这个事实不一定是你希望看到的。
误区四:开发人员更适合做测试
测试圈内的一个共同认识是从事测试的人员技术上总比开发人员差,开发人员能更好的应用技术去测试;开发人员更能了解开发,所以更能了解问题的所在。
不过,开发组转过来从事测试的同事绩效并不怎么理想。这个误区的问题在于过于简单的看待测试的技能需求。一般而言,测试工程师需要三维的技能:技术,业务领域知识和软技能。其中技术不仅仅是开发,还包括测试技术。从开发转作测试的人员,不一定具备这些能力,而且从某种程度,他们更专注在开发技能,可能更喜欢的是工具的实现和代码的审核。从整体上来说,开发人员的技能并不一定就能完全胜任测试工作。
误区五:Bug越多测试越有效
估计很多的经理会有这个观点,很多同行估计也深受这个指标考核之苦。不过,如果打个不恰当的比方,说:GDP越高经济越有效。我想很多人也就明白个大概了。
Bug的出现有多方面的因素,并不一定需要多有效的测试。犹如上策伐谋一样,有效地测试最好将bug消灭在未成的时候。对产品报bug已经是到了最后的保障环节,成本已经相对变高——相对于需求分析和设计阶段。只有到了最后阶段,同样情况下才是有效地。不过这并不一定是好度量的。