聊聊软件测试的几大误区
我们暂且不去评析软件测试在当今it公司中的地位,只说大家对软件测试的认识。基于我短暂的经验,我总结出软件测试几个最常见的误区,供大家研究:一大误区:测试简单,对技术要求不高
这是对测试最通常的评价,如果一个开发人员转做测试,那么别人通常认为,他是不是开发能力不够,或者是他是不是不愿意吃苦之类。我们先引用Google的 Patrick Copeland对一个卓越的测试员所应有品质的评论:
“那是心态与激情。从我所做过的100个访问来看, “卓越”可以被提炼为:1)一种发现问题的独特敏感性;以及2) 伴随这种敏感性产生的对于测试的激情。换句话说,他们喜欢测试而且善于做这件事。他们也明白测试带来的挑战往往等于或者大于编程所带来的挑战。一个拥有测试基因与正确态度的测试员总能找到工作。他们是金子。”
在我个人理解中,测试反而对技术要求更高。这里的"高"不是说一定多么精于某一门技术,自动化测试工具而是需要更广的技术能力。比如简单的功能测试,我们需要需求分析能力和业务能力,当然还有相应的测试技术;进行白盒测试,我们需要拥有一定的代码阅读能力和编写能力;安全性测试,我们需要一定的网络安全知识和数据库分析能力等等。
二大误区:测试无聊
一件单调且无聊的事,作为测试的一个传闻,频繁见诸于主流媒体文章中,这些文章把测试者比作软件产业的装配线工人。而事实上,测试工作每天都呈现给我们新的令人兴奋的挑战。Michael Bolton(注:DevelopSense校长,Rapid Software Testing的作者之一)的一段精彩摘引很好的概括了这一点:
“测试是一件我们以寻找新信息为动机所做的事。测试是一个探索、发现、调查、学习的过程。当我们以评估,或者认知预料之外的问题为目的地配置、操作、和观察一个产品的时候,那么我们在测试。当我们尽力去寻找产品及其设计的程度和限制的时候,当我们被那些尚未回答甚至尚未问过的问题所驱使着的时候,我们在测试。”
三大误区:测试人员与开发人员很难相处
这个论调的提出貌似很有普遍性,而实际上就我这几年的经验,无论做开发还是做测试,都没有与任何的同事产生难于相处的问题,反而都成了很要好的朋友。尽管测试与开发在工作性质上有着“形”的区别:开发人员是在构造项目,而测试人员是在破坏开发人员已构建好的项目;而实际上,本质并不冲突,都是为了项目的“成”和质量服务的。至少我认为在大部分公司中,这个论调是不成立的。
四大误区:总有一天,机器自动化将代替手工测试
这是业界很多人所津津乐道的话题,记得曾经去某个外包公司谈合作,其经理很得意的告诉我们他们的目标就是未来以自动化取代手工测试,每个项目只需要一两个自动化测试工程师就ok了。
当然,我不否认自动化测试的作用,甚至我自己也在津津乐道于测试框架开发等工作,但是自动化代替人工测试?恐怕我得说“NO”。不是难于实现,而是根本不可能。
软件的最终使用者永远是人,所以只有人才能真正了解人的需求。例如用户体验,common sense等等,这是机器永远不能代替的。
测试自动化常被用来解决庞大的问题。因为要做的太多, 这庞大的范围使得自动化脆弱而不可靠。有些特定的事情自动化擅长而有些特定的事情人更擅长,这样看上去一个结合二者的方法也许更好. 我想要的是自动化使我的,作为一个人的,工作更加简单。自动化更擅长分析数据与注意模式。 它并不善于确定相关性和判断调用。 幸运的是人类擅长判断。
以上是我总结的几个误区,如果你还有其他补充的,那么欢迎留言讨论。
页:
[1]