[观点]软件测试的核心价值是什么?
关键词:软件,核心,价值 | 作者:天彤 | 收藏这篇资讯 导读:这篇文章是淘宝测试团队天彤写的一篇关于探讨软件测试核心价值的文章,以下是全文:
既然是“核心价值”,就应该能用一句话说清楚。关于软件测试的核心价值是什么,各种观点争论了很久,似乎很难得出一个明确的结论。这里有个很重要的原因,就是我们都深陷在测试工作的细节里面,没办法看清自己的位置和价值。不识庐山真面目,只缘身在此山中。
要想搞清楚这个问题,我们必须走出围城来进行分析,如果把软件测试看成一种服务,那么从客户的视角来评判,最合适不过了。下面讲一件真实的事情。
有一次我回家跟老友一起吃饭,聊起最近的工作。老友的单位是一家大企业,几个月前委托一家软件开发公司,开发了一套很大的企业管理软件。现在软件已经开发完成,进入了验收阶段。现在问题来了,负责验收软件的是信管部,部门老大非常担心软件的质量,希望能在验收签字前,把软件的严重质量问题都找出来,可是又不知道该从哪下手,如果能有一个权威的软件评测机构,对软件进行专业的测试,就最好了。
“你们淘宝的软件测试,应该做的很专业吧,能不能帮我们来测试一下这个软件?你们接这种业务么?”老友提出这个问题。
虽然淘宝测试现在还没有这种外接服务,不过这是一个难得的,饶有趣味的话题。
“那你想要我们来测试哪些东西呢?哪些地方最担心?”
“主要是性能吧,如果全公司人一起来用,不知道会不会出问题。还有就是数据的安全方面,公司的重要数据一定要绝对安全,不能被挖走。”
“那软件的功能呢,功能需不需要我们来测一下?”
“功能就不用了,我让我们部门的人来点点就行了。”
听到这话我有点觉得不爽,不过想想倒也没必要跟老友去争辩这个问题,其实这确实是很多人对软件测试的看法。后来这个话题被岔开,没有继续谈下去了。
所以下面的谈话并没有真实发生,是我用推理的方式,把讨论继续了下去,非常有趣。
“功能测试并不是随便点点这么简单,淘宝的测试非常专业的,因为我们…”
大家注意,精彩的地方到了,当我说出一个原因,并且能让老友信服,那就说明,这就是软件测试的核心价值了。
“…我们的工程师对需求理解得很透彻,对业务很精通。”
“我们部门的人对需求也很清楚的,因为他们就是最终的用户。”在平时的项目里我们也发现,无论需求分析做得多细致,软件交付以后,用户总能提出很多问题和改进意见,这是正常的,大可不必因此责怪测试工程师,因为没有人比用户更了解需求。最重要的是,不要让用户发现既严重又初级的Bug。
“…我们编写的测试用例、文档非常专业非常完整,能够保证测试的质量。”
“很好啊,你们很专业,不过这是你们内部的工作方式,我不是很关注的。”这里并不是否定测试文档的作用,只不过测试文档是测试团队的过程产物,无法直接给用户带来价值。
“…我们对软件的架构设计非常了解,可以提前发现软件设计中的重要缺陷,避免返工。”
“嗯,这个非常好,不过现在他们已经开发完了,要是在他们编码之前,请你们来对设计方案把把关,就好了。”用户非常希望能控制软件开发的全过程,而软件设计是最重要的里程碑,设计是否合格,直接影响后面的工作。
“…我们能看懂代码,找出代码里的问题,不仅如此,我们还能修复Bug。”
“好是好,不过代码量那么多,你们需要多少人来做啊?至于修复Bug,还是让他们自己改吧,不然我花那么多钱请他们干吗?”
“…我们现在用的最好的测试管理工具,还有最好的自动化测试工具,可以把测试完全自动化。”
“挺好,不过我还是担心需要的资源太多,自动化测试是挺好,你说说具体好在哪里呢?如果比手工测试成本低,就行。”同样的,用户对我们用什么方式测试并不特别关注,成本才是关键。
“…我们的工程师工作效率很高,测试速度非常快,比你们部门的人要快50%。”
“厉害!不过我们这里的薪水都比较低的,你们都是高薪IT,人月成本这么高,如果测的结果差不多,还是我自己找人来做吧。”
“…我们的工程师都是专业人员,你的人只能发现一些表面的Bug,而我们能找出隐藏很深,并且很严重的Bug,这些Bug提早发现,能减少很多损失。”
“有道理,其实我也担心他们这样点点,有些深层次问题发现不了,要是上线一段时间以后,大家才发现,那改都来不及了。”
好了,这段虚拟的对话就到此为止,下面我们来做一些分析。先看一下最开始提到的性能测试和安全测试,这两个测试类型有一定的技术壁垒,因此性能和安全的Bug,不是每个人随便就能发现的。另外虚拟对话中提到,发现软件设计方案中的问题,也非常有难度。而功能测试的门槛相对较低,即使没受过训练,一般人也能发现一些初级的Bug,这让很多人产生一个错觉:“一般人”都能做功能测试。
要证明这个错觉不成立,其实也挺容易,那就是看测试人员所发现的Bug,与“一般人”有哪些不同。如果找不到明显的不同,那错觉就变成了现实,如果测试人员没发现的Bug,让一般人或者用户发现,那就更杯具了。由此我们推理出测试的核心价值:
能发现一般人发现不了的Bug!
这句话看起来非常简单朴实,但是包含了很多因素。目前淘宝测试团队所设定的金Bug大奖(Gold Bug Award),就是为了鼓励测试工程师体现这一核心价值。
有的测试工程师,由于项目时间太紧,开发匆忙赶出的代码质量又不合格,所以大部分时间都纠缠在初级的Bug里面,根本没时间、没精力去关注深层次Bug,虽然做的很辛苦,也做了很多项目,但是成长很慢,原因就在这里。
要解决这个问题,测试工程师一方面要加强对开发技术的学习,了解软件程序的内部结构,为发现深层Bug创造必要条件;另一方面,要想办法推动开发提高代码质量,让自己从初级Bug里解脱出来,为自己赢得更多的时间,来寻找深层Bug,并且总结发现Bug的技巧和经验。
到这里我们对测试核心价值的讨论可以告一段落了,软件测试要体现核心价值,自说自话是没有意义的,只有把测试作为一种服务提供给客户,让客户来评判,测试才能发展得更好。现在淘宝测试团队也专门成立了TAAS团队(Testing As A Service),在测试服务化上进一步探索。这篇文章送给淘宝测试团队,也特别送给文朗,与你讨论总有很多收获。
原文链接:http://qa.taobao.com/?p=11320

« 由 仙外仙 最后编辑于 2011-01-31 16:51:55 。 »