冷雨萱

又一个WordPress站点

冷雨萱武侠篇:怎么样做一个好测试-中国软件测试联盟

冷雨萱武侠篇:怎么样做一个好测试-中国软件测试联盟

冷雨萱


天下大势,分久必合,合久必分。
世上本没有软件测试工程师,挖的坑多了,自然就需要有人背锅,软件测试工程师应运而生。
说背锅是开个玩笑,但有些锅是不得不接的。比如有个按钮404,软件测试作为大众眼中的职业页面点击手没有发现这种bug还能说什么?其实这种问题完全是可以避免的,比如用基于selenium的自动化回归测试,前提是舍得投入。
很多入行不久的朋友会把selenium和自动化之间划等号。表面上看是这样,实际并不是,这会在后续的文章中详细讨论。本文不讲具体技术,玩的是意识流~

想成为一个好的软件测试工程师怎么的也得像王语嫣那样,知道各种招式,给开发表哥们以提醒。然而仅仅知道是远远不够的,开发表哥们对你的指指点点会感到愤怒。You can you up , no can no BB!这很容易理解,你可以质疑我,但不能质疑我的代码。
所以,一个好的软件测试工程师必然要经过实践的磨练。要是能成为李秋水这样的超级大神那是最好。所谓殊途同归,万道归一,做到极致了也就没多大区别了。

然而做到极致毕竟是很难的,当今IT技术增长的速度就像费波纳兹数列一样。那两只可恶的兔子就是两个数字,“0”和“1”。发展至今,IT相关的书籍连起来已经可以绕地球一圈。这样一来,做到极致基本上是不可能了。我们就要在承认自己能力有限的前提下把事情做到最好。怎么做呢?
首先当然是要提高自己的技术水平。李秋水是学不成了,慕容复还是要努力去学一学的。从编程语言到数据库,从操作系统到TCP/IP,从数据结构到算法,怎么的都要系统学一遍。学过之后可能会忘,而忘记和没看过是有本质区别的。当然要是能啃下龙书是最好,到时你看各种编程语言的视角会有很大不同。光看也是不行的,需要动手。

眼过千行,不如手敲一行啊。有人说,一个软件测试工程师看这些干嘛?我只能告诉你,这些都是《易筋经》,学了之后受益无穷。
之后呢,要学一些工具,现在流行的什么框架之类的说白了其实就是工具啦。工欲善其事,必先利其器。工具包括开发工具和测试工具,开发工具像spring、hibernate这种,测试工具比如selenium、junit这种。我知道肯定有人想问,我要是spring这些都会了,我就去做开发了,还做测试干嘛。我想说连自己都看不起自己,还怎么指望别人尊重你。测试行业就是被像这样的人给拖累了!退一万步讲,你连别人的代码都看不懂,还测试个毛嘛。
然而,技术学多了是会走火入魔的。慕容复不就疯了么,这是一个悲伤的故事......就好比一说到提取数据就要ORM,一说到代码调用就要依赖注入。我承认测试代码也可以玩出花来。
然而技术存在的意义是降低成本、提高效率、保证质量,并不是让你玩出花,或者挂在嘴边吹。Talk is Cheap。技术只是手段,测试工程师最重要的能力是分析问题的能力。

无论是遇到bug还是有新的feature,测试工程师首先要做的就是分析问题。如果是bug,你首先要清楚bug所处的流程是怎样的一种逻辑,是如何实现的。了解了之后,有些bug可以直接通过抓包、看日志或者debug代码定位到,到时候再谦虚地提醒开发表哥,他们会很乐意的。
如果是新feature,同样要了解逻辑和实现,列出测试要点。测试要点不仅体现在feature功能上,还体现在环境的配置上,流程的规范上。当然也可以编写测试用例,但在对敏捷开发的测试中,测试用例一般就是自动化用例了。
要做到以上两点,前提是你对开发技术有一定的掌握,如果要定位一些比较古怪的bug,比如一些性能问题引起的功能bug,还需要对相应技术有比较深的学习。当然了,闻道有先后,术业有专攻。可能并不是你每次去分析都会有用,但是养成分析的习惯是成为一个好测试的前提条件。

以上两点测试和开发其实都适用,区别测试和开发的根本的是测试用例。有人说,现在不都是有TDD了么,那岂不是测试和开发就没区别了。开发和测试其实只要用心,都是可以相互转换的。然而你看到国内用TDD的企业多吗,退一步讲,写单测的多吗?也正如你看到很多企业测试都是大量的人力叠加。
那么什么才是好的测试用例呢,我认为好的测试用例要具备以下三点:针对性、代表性、有效性。所谓针对性,好比边界值测试,即测试的目的很明确。代表性,类似于等价类测试,但又不同于等价类。还需要对测试的功能点进行取舍,测试用例不能写的不痛不痒,一定要抓住核心。
有效性,即基于对功能的理解编写测试用例,要是业务功能都不理解,写的测试用例又是然并卵了。很多人对边界值、等价类这些概念不屑一顾,认为根本没什么卵用。其实,在我们测试的时候会大量用到这些理论,只是你自己没有发现。大音希声,大象无形啊。

很多人都说,做技术跟练剑是一样的。开始会一点技术,就是手中有剑,心中无剑。这时候还不能很熟练地用技术达成自己的目的。然后技术学的深了,就是手中无剑,心中有剑。技术的实现已不成问题,但思维还是拘泥于技术。最后才是手中无剑,心中亦无剑。人剑合一!
此时必然是在技术上研究很深,思维却不再被技术限制,一切技术的选择都为了创建可靠的应用,不拖泥带水。正如西门吹雪,杀人只需要一剑。

我本以为成为一名好的测试要像西门吹雪,现在想来,应该要像陆小凤。END
长按二维码关注,查看最新文章!