57

eBay测试老兵的“三步走”策略:如何从测试小工晋升为测试架构师?

 5 years ago
source link: http://www.10tiao.com/html/49/201806/2652180790/1.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

新书

速递

吴老的java版《selenium webdriver 实战宝典》和python版《selenium Webdriver 3.0 自动化测试框架实战指南》出版了,代码拿来就能用。

文 | 茹炳晟

你好,我是eBay中国研发中心测试基础架构技术主管,茹炳晟。今天想和大家聊聊我近16年的测试经历及软件测试的修炼之道。

我从2002年开始做软件开发,2005年时转型成为测试工程师,算起来已经在这个行业摸爬滚打了16年。2005年的时候,软件测试还停留在重复性手工测试的阶段,而且受重视程度远不如软件开发,所以当时的我就像一个测试“小工”

可,我很快就意识到,要真正把测试这件事做透做精,并不是那么容易,这中间有太多技术需要去研究和探索。

很多人第一印象会觉得做测试比做开发简单很多,但是我想说,在这个世界上,你想把任何一件事做好、做到极致都没那么容易,都需要付出比别人更多的努力。不管是一万小时定律还是厚积薄发,当你把知识积累到一定程度的时候就会发现,原来软件测试的世界这么有意思。

是国内最早一批从事测试自动化的工程师,并经历了软件测试技术从“原始社会”向“现代文明”发展的整个历程,也经历了从“测试不受重视”到“测试和开发同等重要”的行业理念转变。目前我正在探索由Google等一线互联网巨头主导的“去QE,开发自己测试”的全新模式,也有了很多的感悟和思考。

在这期间,我经历了自动化测试用例设计与开发、测试框架选型、测试框架自行研发、测试基础架构设计以及最新的测试服务化(Test as a Service,TaaS)等一系列技术的变革与发展。

我带领过的测试项目也几乎涵盖了所有种类,包括嵌入式系统测试、金融平台单元测试、平台SDK测试、轨道交通安全软件测试、Web Service测试、大型电商网站GUI自动化以及性能全链路压测等。

由此,我个人也完成了从“小工”到“专家”的蜕变,成为了一名资深的测试架构师。

我的心路历程,我这么多年来积累的经验和教训,我对测试的看法、学习方式,我对企业级项目实战案例深度剖析等等,我都想分享给你,希望之前我走过的坑,你不要再经历。于是有了《软件测试52讲》专栏,专门为测试开发者而准备的专栏,现正在极客时间App上线。



我会用通俗易懂的语言,以知其然知其所以然的思路,为你系统梳理软件测试的知识体系,深入讲解自动化测试、性能测试和测试架构设计的核心原理,助你从软件测试的“小工”进阶为“专家”。

再和你聊聊,面对势不可挡的ABC(AI + Big Data + Cloud)技术浪潮和软件测试的变革,我给你的三点总结和建议


第一,自动化测试在软件质量工程中的地位发生了质的变化,从原本的“以自动化测试为辅”变成了“以自动化测试为主”。

所以,你不仅需要从业务本身出发来对软件进行手工测试验证,还需要掌握完整的自动化测试开发技术来设计自动化测试用例


第二,传统软件企业的产品发布通常以“月”为单位,因此,测试执行总时间不会成为关键问题。但是,对于互联网企业,尤其是大型电商网站,产品上线周期通常都是以“天”甚至是以“小时”为单位留给测试的时间非常有限,这也就对测试执行总时间提出了极大的挑战。为了解决这个难题,你需要一套完善的高并发测试执行基础架构的支持

所以,作为测试工程师,你就必须掌握设计开发测试基础架构的关键技术


第三,随着自动化测试的规模化,测试数据准备的各种问题被逐渐暴露并不断放大,成为影响自动化测试效率以及稳定性的“拦路虎”。早期的传统测试数据准备方法,无论是从测试数据准备的时间成本,还是从测试数据的稳定性和测试数据创建的便利性上看,都已经很难适应大规模自动化测试的要求。

所以,你必须系统性地思考如何才能将测试数据的准备工具化,服务化,最终实现平台化

通过这个专栏的学习,我希望你能够对这些趋势与挑战应对自如,并能时刻紧跟测试技术发展的新趋势。

理想是美好的,但道路往往是曲折的,因为你和我都非常清楚,技术人想要“一口吃成胖子”几乎是不可能的。但是,不要气馁,在这个专栏里,我根据多年的从业经验,给你总结了下面这个三步走的策略,助你破茧成蝶。



第一步,成为互联网时代合格的测试工程师。

如果你是入行不满3年的测试工程师,一定对此有迫切需求。此时,你必须具有快速学习的能力,能迅速掌握被测软件的业务功能与内部架构,并在此基础上运用各种测试方法,尽可能多地发现潜在缺陷,并能够在已知缺陷的基础上进一步发现相关的连带缺陷。

从知识体系上看,你需要有比开发人员更全面的计算机基础知识,还需要了解互联网的基础架构、安全攻击、软件性能、用户体验和常见缺陷等知识。从测试技术上看,你需要能够使用常见的测试框架或者工具,需要具有一定的自动化测试脚本的开发能力,这可以把你从大量重复的工作中解放出来,然后你才能有时间去做更有意思的工作。



第二步,成为互联网时代优秀的测试工程师。

如果你想从“合格”变为“优秀”,那必须先认识到两者的差距在哪里。

首先,合格的测试工程师关注的是纯粹的测试,而优秀的测试工程师关注更多的是软件整体的质量,需要根据业务风险以及影响来制定测试策略,有效控制测试的时间和成本,并且能够对测试框架以及工具做出适合项目需求的选型

以新房装修为例,合格的测试工程师就是各个工序的装修师傅,他们只管按照设计要求做好自己的工序,而优秀的测试工程师更像是个包工头,他们关心的是整体交付的质量。

其次,优秀的测试工程师不仅可以娴熟地运用各类测试工具,还非常清楚这些测试工具背后的实现原理,以及多个同类测试工具各自的优缺点和适用场景。

在遇到问题时,你还需要能够通过二次开发解决工具和框架层面的问题,对于没有合适可用工具的场景,可以自行设计开发一些小工具来更好地展开测试工作。

当然这个阶段,你很有可能会接触到一些代码级的测试,这就要求你具有一定的开发背景,并能够很好地理解代码级的测试技术。

最后,随着自动化测试用例的不断增长,自动化测试的关注点也从原本的“如何把手工测试步骤用自动化脚本实现”变成了“如何构建低维护成本,可以灵活组装的自动化脚本”,这就要求你理解自动化脚本的分层设计、页面对象模型以及业务流程模型,并且能够把这些设计应用到你的测试框架里。


第三步,成为互联网时代的测试架构师。

当你经历了各种类型的测试项目,就会发现这些项目本身虽然差异巨大,但是有很多东西是相通的。

比如,面对大量测试用例的执行,无论是GUI还是API,都需要一套高效的能够支持高并发的测试执行基础架构;再比如,面对测试过程中的大量差异性数据要求,需要统一的测试数据准备平台。

这样的例子还有很多,如果你已经能够站在这样的高度看待软件测试,那么恭喜你,你已经具备了测试架构师的视野。当然,你还必须对一些前沿的测试方法和技术有自己的理解,并能够在恰当的时候、因地制宜地把它们应用到实际项目中。

这就是我给你总结的“三步走”进阶策略了。千里之行始于足下,接下来我会从测试基础知识讲起,结合实际案例,由浅入深地带你温故知新,提升自己的软件测试技能。

未来的四个月,我将和你一起探讨交流测试世界里各种有意思的技术,也希望四个月后,你我都能遇见更好的自己。

欢迎订阅我的专栏--《软件测试52讲》,分享给你从小工到专家的实战心法

点击阅读原文,浏览或订阅此专栏 喜马拉雅app搜索并收听“光荣之路”电台 光荣之路 招聘|征稿|合作 |QQ群 [email protected] python群:457561756 性能群:415987441 招聘群:203715128







About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK