我的软件测试修炼之道

我就职于一家传统IT企业,工作时间五年半,从事测试的时间不长,四年半。在这四年多的时间里,我实现了三级跳,我相信国内很多从事传统IT测试的人看了之后会更有体会。以我们企业的软件测试为例,有几个特点:

1、测试主要分为三类:集成测试、系统测试、交付测试;偏黑盒测试类型居多;做单元测试的比较少,大部分都是开发简单联调一下,就开始集成测试了,集成测试主要以自动化测试为主,主要保证版本的持续迭代和交付;系统测试主要分为两部分,一部分是自动化测试,一部分是手动测试;交付测试主要以在用户现场或真实用户场景的测试为主,目的就是交付用户;

2、自动化测试也是偏黑盒测试的多,基本上就是手工测试的自动化脚本实现,有一个相对实用的架构,包括用例选择、测试输入、系统配置、测试输出、结果比对、日志定位、报告输出等几个模块;常用的脚本程序会独立成类或者函数来封装,具体测试的时候直接输入参数调用即可;部分特殊用例场景的测试需要根据产品特性编写特定的程序来补充完善;

3、因为产品面对的用户更多是企业、政府、银行等,交付测试有时候占的比重比较多,很多时候需要通过用户要求的各项测试,同时上线时也需要专人配合;这点与互联网差异还是比较大的,他们的用户量会非常大,用户就是我们每一个人普通人;

4、整个工作节奏偏慢,以“周”甚至“月”为周期来迭代新版本;受限于测试环境、客户应用、开发思维、行业现状等,与互联网偏快的节奏对比还是差不少;

5、测试人员的技能特点上涉猎比较广,但是深度不够,因为传统IT企业的技术相对比较成熟,应用更新也不快;

6、产品大部分是软硬件一体的(不管是通用的硬件平台还是专用的平台,亦或是通用的软件还是专属的软件),总归是比较实际的可以看得见的东西;互联网的东西偏纯软件的多,平台则是通用的,而且软件大部分是应用类的;

以上差不多就是比较典型的特点,个别单位情况会稍有不同,不再细细阐述。

至于我,三四年的时间里如何实现了三级跳,有一定的机会成份,最重要的还是靠自己的努力。下面介绍下我的历程,希望对各位有些帮助。

第一跳:初入测试,变成了一名测试工程师,从交付测试开始做起,在客户现场完成并通过了两个项目,也算入门了;这个跳跃经过了一年的时间;测试入门本身还算简单,对于我来说也比较成功;这点大家体会应该都比较深刻。

第二跳:独挑大梁,变成了一名核心测试工程师,独立负责并完成了一个交付测试项目,外加部分的系统测试,变成了一名相对优秀的测试工程师,锻炼了自己的各项能力;这个跳跃同样经历了一年的时间;从入门到胜任自己角色,并升级成核心测试工程师;有机会就把握住,我相信大家在测试过程中肯定会遇到独挑大梁的时候,那就是你发光发热的舞台,证明自己最好的机会。

第三跳:难以想象,变成了测试部门负责人,负责测试部的管理和项目工作;刚开始,由于各种原因,大部分的精力还是做项目,测试管理投入很少,接连完成了两个超级难的项目,期间抽空研究了非常多的测试技术和管理知识,顺理成章的成为了测试部的真正负责人;我比较特殊的是,先被提拔上来,后慢慢做的项目证明自己各项能力,当时情况也比较特殊;这个跳跃一直到现在,在从事测试两年多之后就被任命测试部负责人,其实算挺快的,后来经过两个大项目的负责和实践,完善了自己各项技能,又持续了一年多;从去年下半年到现在更多的是在做测试管理工作,自己也在持续的学习管理知识并落地实践,取得了很多的成果。

总结,我是从交付测试起步,一直到了系统测试、测试管理等。可见,你最开始从事的是什么角色,与你最终所能达到的高度其实是没有强相关的,所以大家如果起点低的话,千万不要气馁。首先,你一定要把眼前的事情做好,这是成功的基础,只有这样,你才能有可能从事更加有挑战的任务;其次,一定要不断的学习和成长,这是成功的必备条件,我刚开始做测试的时候其实认识不深,直到越来越喜欢测试之后才发疯似的研究各种东西,琢磨做事的方法;最后,机会出现的时候,一定要把握住,且要努力的证明自己就是最适合的那一位。

软件测试大的方向有两类:技术和管理;管理的职位相对比较少,如测试经理、测试主管、测试项目经理等;技术类方向比较多,如系统测试工程师、性能测试工程师、可靠性测试工程师、可用性测试工程师、测试开发工程师、集成测试开发等,比较高级的有测试架构师、测试开发架构师等。对于我来说,工作了四五年,也逐步找到了自己喜欢和适合的方向,那就是管理。除了在测试部进行实践之外,我还参与部门的一些管理。企业的核心是人,人的核心就是管理。最近一两年,研读了不少管理类的书籍,如大学经典教材(管理学、企业管理)、企业经典培训教材(高效人士的七个行为习惯、卓有成效的管理者等)、质量管理类(质量免费、第一次把事情做对、戴明新经济观、转危为安、朱兰质量手册、质量总监成长记、人人都是首席质量官等)、测试管理类(测试价值提升之路、测试架构师修炼之道等),同时也利用碎片的时间研读了很多微信、网站上很多管理类的文章,给我的感觉就是当你阅读足够多的时候且不断的思考,一定会由量变到质变。刚开始可能会有点看不懂,或者说理解不到位,但是随着工作实践的增多,很多东西会慢慢到浮现到你的脑海里,这时候需要“反刍”一下,就这样循序渐进的往前走,终究有一天你会发现自己好像已经领先同龄人很多了。

之前购买了极客时间上“软件测试52讲”的系列文章, 作者是茹炳晟,对于互联网行业,他经历了从一个小工到专家的跳变,对于这个行业有很多自己的认识,现引用如下,想了解互联网行业的测试发展,可以参考。我感觉作者的分析及认识还是非常的到位。我认为传统行业与互联网行业的差异性还是比较大的,但是大的方向上也在逐步的靠拢,如自动化测试的发展趋势、测试人的递进方式还是非常的有相似性。感兴趣的可以购买相关系列文章,也不贵,一顿饭钱吧,坚持阅读相信你会有很多收获。我只是觉得测试界相关愿意分享的专家还是太少,所以一旦有高手我就强烈的推荐给大家。

引用如下:

结合趋势总结了以下三点。

第一,自动化测试在软件质量工程中的地位发生了质的变化,从原本的“以自动化测试为辅”变成了“以自动化测试为主”。所以,你不仅需要从业务本身出发来对软件进行手工测试验证,还需要掌握完整的自动化测试开发技术来设计自动化测试用例。

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

第三,随着自动化测试的规模化,测试数据准备的各种问题被逐渐暴露并不断放大,成为影响测试效率以及稳定性的“拦路虎”。早期的传统测试数据准备方法,无论是从测试数据准备的时间成本,还是从测试数据的稳定性和测试数据创建的便利性上看,都已经很难使用大规模自动化测试的要求。所以,你必须系统地思考如何才能将测试数据的准备工具化,服务化,最终实现平台化。

总结了下面这个“三步走”的策略,助你破茧成蝶。

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

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

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

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

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

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

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

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

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

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

当你经历了各种类型的测试项目,就会发现这些项目本身虽然差异巨大,但是有很多东西是相通的。如果你能够站在这样的角度看待软件测试,那么恭喜你,你已经具备了测试架构师的视野。当然,你还必须对一些前沿的测试方法和技术有自己的理解,并能够在恰当的时候、因地制宜地把它们应用到实际项目中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值