软件测试工程师的坎坷独行之路

前言

“长江后浪推前浪,前浪死在沙滩上”,曾经一句让人会心一笑的调侃,而今变成了软件测试行业的真实写照。由于软件测试行业入门门槛低,薪资报酬高,不断有新鲜血液冲刷着软件测试行业的“前行者”们,给我们带来了非常大的压力。

当我看到这句话的时候我真的相信我能把前浪轻易地拍在沙滩上,年轻人的傲气让我顿时热血沸腾,我坚信自己能走到那一步,而我也真的走到了哪一步,只不过我终究低估了路途的艰辛,趟过了不少的坑。现在回想起来也真的是一路坎坷。

一、初识测试

15年7月份,通过校招入职搜狗,刚入职时,主要负责搜狗浏览器相关的一些功能及兼容性测试,如:微门户、搜狗理财、导航、信息流等。入职一个月,开发了测试文章数据抓取功能,供组内成员每日阅读,同时也锻炼了自己的编程能力,掌握了爬虫相关技能。入职2个月时,逐渐适应了项目的测试流程,包括需求评审、测试方案、测试用例编写、用例评审等等,接触了jira、fiddler、git、jenkins等这些工具。

9月份搜狗商城需求的提出,为我提供了一个完整项目测试的机会。刚开始测试时,负责商城PC端测试,才发现自己用例设计覆盖度不完善,特殊测试点不能够充分考虑,一轮测试后,组织组内成员进行随机测试,发现了许多bug,是设计用例时未思考到的点,第一次负责功能如此多的完整项目,后续不断积累总结测试点,小编想提醒初入职的小伙伴,设计用例也需要总结积累的,可以参加他人的bug总结,吸取经验,避免在我们自己的项目中漏测。

后续逐渐负责起商城的接口及服务端测试,接触了postman、maven、Spring Boot框架、nginx等,转为服务端测试后接触的项目测试流程也更加完善,比如会关注代码review、代码质量等等,也为之后独立负责商城服务端测试做了铺垫。

二、接口自动化测试实践

为了提高测试效率,我们针对商城做了接口自动化测试,采用的框架:Unittest + Requests + HTMLTestRunner,极大地节省了测试回归时间,提高了版本迭代效率。后续因接口数量越来越多,case越来越多,所以我们基于Pytest框架,新开发了一套支持并发执行用例的框架:Pytest + Request + Yaml + Allure,以便提高case执行效率。

此处提醒大家,做接口自动化时需要依据具体项目,择优选择。比如业务逻辑、case数量、执行效率、编写难易度、可复用性等等进行考虑。如果后续使用过程中再更换框架,会导致工作量增加,所以在最初选择框架时尽可能选择一套适合项目的框架。

三、微服务测试的思考与实践

商城最初开发时为一个整体服务,后续进行了微服务的拆分,每个服务运行在其独立的进程中,服务与服务之间采用轻量级的通信机制互相沟通(通常是基于 HTTP 的 Restful API)。针对商城微服务的拆分,我们做了调研,测试策略进行了变更,针对各个服务内部接口进行了自动化测试,测的更细,了解的内部逻辑也变得更多更全。

四、持续集成实施与推动

持续集成对于整个团队来说,好处与挑战并行。频繁部署、快速交付以及开发测试流程自动化都将成为未来软件工程的重要组成部分。软件个人开发的部分和测试脚本部分向软件整体部分交付,频繁进行集成以便更快地发现其中的错误。我们的初衷,是提高版本迭代效率,及时发现问题,随时随地可交付。

在接口自动化运行比较稳定的时候下,我们推进了CI的实施,推动开发进行单测,将接口测试、代码覆盖率、代码监控引入CI中,代码覆盖率作为测试度量指标之一,辅助我们进行测试。后续计划将增量代码覆盖率引进来。我们的持续集成流程包括:代码push、构建、单测、静态代码扫描、部署、接口测试、邮件通知。

总结下CI需要具备

全面的自动化测试:这是实践持续集成与持续部署的基础,同时,选择合适的自动化测试工具也很重要;

版本控制工具:如 Git,SVN等;

自动化的构建和软件发布流程的工具,如 Jenkins等;

反馈机制:如构建/测试的失败,可以快速地反馈到相关负责人,以尽快解决达到一个更稳定的版本,目前我们是通过邮件进行通知。

五、总结

从我的角度出发,总结了一下作为测试人员在日常工作中需要注意的事项:

用例设计:设计合理性,具有结构化以及覆盖完整性,在工作中可能会遇到用例设计后,其他人来执行的情况,所以要保证我们的测试用例是完整有效的。另外服务端的测试,对于产品需求及业务逻辑是需要极为熟悉的,这样才能更有效的进行相关测试。

bug提交和跟踪:刚开始提交bug时,复现过程描述不完善,导致开发总是来询问,耽误时间,所以在提交时,要尽可能地将复现流程描述清楚,方便开发进行重现修复。

bug总结:要善于进行bug总结,以及听取他人的bug总结,吸取经验,尽可能避免后续测试过程中漏测情况的发生。

执行力和反馈:有计划的进行测试,测试时间也需要预留一部分时间,防止突发情况的产生,如果觉得不能够按时完成的一定要及时反馈给老大,方便协调,否则可能会导致项目延期上线。在工作中,尽可能做到凡事有交代,件件有着落,事事有回音。

时间管理能力:每周将下一周的任务计划好,每天将自己的时间安排好,然后按照计划来做,每天下班前总结下今日的工作及学习,如若完不成,分析原因和改进。

沟通能力:与开发、产品、设计、老大、同事等都需要沟通,有效的沟通往往会事半功倍,记得之前沟通过程中,理解错意思,也没继续询问,产生了歧义,耽误了后续任务的进行,想说的是,一定要沟通清楚,不能怕问,这样才能更好的开展工作。

学习能力:保持学习能力,不断扩大知识面,尽可能避免做一个只会点点点的测试。

不断的总结和改进:工作中需要不断总结,然后分析原因和改进,这样进步的会特别快。

分享:分享的前提是学习、总结,在分享时可能会得到一些极好的建议,同时也可能帮助他人解决困境,知识总是共享的。

下面是测试资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

这一份216页软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。

学习不要孤军奋战,最好是能抱团取暖,相互成就一起成长,群众效应的效果是非常强大的,大家一起学习,一起打卡,会更有学习动力,也更能坚持下去。相信你们有人也加了不少的技术交流群,我这里就不分享了,如果没有群的也可以扣我。

结语

1、进入任何行业都需要不断地学习和努力,软件测试工作也不例外,后期的你如果能学习计算机、数据库、开发等知识,将对你的个人提升有极大帮助。

2、时刻保持对行业的热情,既然想在这个行业混,那就就得多去了解行业的新动态,更新自己的技术。你得知道想要站得更高,就需要学习更高水平的技术。

希望有勇气改变的你,能发展得更好,持续学习必不可少,不要让自己很容易被替代!!!

努力的人有的是机会,但不努力的人是一定没机会的!!!

喜欢软件测试的小伙伴们,如果我的文章对你有帮助的话,那请你帮忙 “点赞” “评论” “收藏” 一键三连哦!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值