" 阅读本文大概耗时8分钟 "
前言:先简单介绍一下自己,工作经历大概是,我毕业后就直接入职搜狗,成为了一名测试开发工程师,然后历经2年的测开成长
到目前为止在搜狗工作马上2年,主要负责搜狗商城服务端的测试,见证了搜狗商城的从无到有,现在搜狗商城的技术、服务与产品逐渐完善并趋于稳定
在这里将近2年测试工作做个总结分享给诸位,如有描述不恰当的地方,还请大家多多包涵指正
01初识测试
18年7月份,通过校招入职搜狗,刚入职时,主要负责搜狗浏览器相关的一些功能及兼容性测试,如:微门户、搜狗理财、导航、信息流等
入职一个月,开发了测试文章数据抓取功能,供组内成员每日阅读,同时也锻炼了自己的编程能力,掌握了爬虫相关技能
入职俩个月,逐渐适应了项目的测试流程,包括需求评审、测试方案、测试用例编写、用例评审等等,接触了jira、fiddler、git、jenkins等这些工具
九月份搜狗商城需求的提出,为我提供了一个完整项目测试的机会。刚开始测试时,负责商城PC端测试,才发现自己用例设计覆盖度不完善,特殊测试点不能够充分考虑
一轮测试后,组织组内成员进行交叉测试,期间发现了许多bug,是当初设计用例时未思考到的点,后续不断的学习他人的测试思路以及积累总结测试点,
小编想提醒初入职的小伙伴,设计用例也需要总结积累,与同行测试人员相互学习,可以多参加他人的测试思路,吸取经验,避免在我们自己的项目中漏测。
后续逐渐负责起商城的接口及服务端测试,接触了postman、maven、Spring Boot框架、nginx等,转为服务端测试后接触的项目测试流程也更加完善,比如会关注代码review、代码质量等等,也为之后独立负责商城服务端测试做了铺垫。
02接口自动化测试实践
为了提高测试效率,我们针对商城做了接口自动化测试,采用的框架:Unittest + Requests + HTMLTestRunner,极大地节省了测试回归时间,提高了版本迭代效率。
后续因接口数量越来越多,case越来越多,所以我们基于Pytest框架,新开发了一套支持并发执行用例的框架:Pytest + Request + Yaml + Allure,以便提高case执行效率。
此处提醒大家,做接口自动化时需要依据具体项目,择优选择。比如业务逻辑、case数量、执行效率、编写难易度、可复用性等等进行考虑。如果后续使用过程中再更换框架,会导致工作量增加,所以在最初选择框架时尽可能选择一套适合项目的框架。
03微服务测试的思考与实践
商城最初开发时为一个整体服务,后续进行了微服务的拆分,每个服务运行在其独立的进程中,服务与服务之间采用轻量级的通信机制互相沟通(通常是基于 HTTP 的 Restful API)。
针对商城微服务的拆分,我们做了调研,测试策略进行了变更,针对各个服务内部接口进行了自动化测试,测的更细,了解的内部逻辑也变得更多更全。
04持续集成实施与推动
持续集成对于整个团队来说,好处与挑战并行。频繁部署、快速交付以及开发测试流程自动化都将成为未来软件工程的重要组成部分。
软件个人开发的部分和测试脚本部分向软件整体部分交付,频繁进行集成以便更快地发现其中的错误。我们的初衷,提高版本迭代效率,及时发现问题,随时随地可交付。
在接口自动化运行比较稳定的时候下,我们推进了CI的实施,推动开发进行单测,将接口测试、代码覆盖率、代码监控引入CI中,代码覆盖率作为测试度量指标之一,辅助我们进行测试。
后续计划将增量代码覆盖率引进来。我们的持续集成流程包括:代码push、构建、单测、静态代码扫描、部署、接口测试、邮件通知。
总结下CI需要具备:
1. 全面的自动化测试:这是实践持续集成与持续部署的基础,同时,选择合适的自动化测试工具也很重要;
2. 版本控制工具:如 Git,SVN等;
3. 自动化的构建和软件发布流程的工具,如 Jenkins等;
4. 反馈机制:如构建/测试的失败,可以快速地反馈到相关负责人,以尽快解决达到一个更稳定的版本,目前我们是通过邮件进行通知。
05总结
从我的角度出发,总结了一下作为测试人员在日常工作中需要注意的事项:
1. 用例设计:设计合理性,具有结构化以及覆盖完整性,在工作中可能会遇到用例设计后,他人来执行的情况,所以要保证我们的测试用例是完整有效的。
另外服务端的测试,对于产品需求及业务逻辑是需要极为熟悉的,这样才能更有效的进行相关测试。
2. bug提交和跟踪:刚开始提交bug时,复现过程描述不完善,导致开发总是来询问,耽误时间,所以在提交时,要尽可能地将复现流程描述清楚,方便开发进行重现修复。
3. bug总结:要善于进行bug总结,以及听取他人的bug总结,吸取经验,尽可能避免后续测试过程中漏测情况的发生。
4. 执行力和反馈:有计划的进行测试,测试时间也需要预留一部分时间,防止突发情况的产生,如果觉得不能够按时完成的一定要及时反馈给老大,方便协调,否则可能会导致项目延期上线。
在工作中,尽可能做到凡事有交代,件件有着落,事事有回音。
5. 时间管理能力:每周将下一周的任务计划好,每天将自己的时间安排好,然后按照计划来做,每天下班前总结下今日的工作及学习,如若完不成,分析原因和改进。
6. 沟通能力:与开发、产品、设计、老大、同事等都需要沟通,有效的沟通往往会事半功倍,记得之前沟通过程中,理解错意思,也没继续询问,产生了歧义,耽误了后续任务的进行,想说的是,一定要沟通清楚,不能怕问,这样才能更好的开展工作。
7. 学习能力:保持学习能力,不断扩大知识面,尽可能避免做一个只会点点点的测试。
8. 不断的总结和改进:工作中需要不断总结,然后分析原因和改进,这样进步的会特别快。
9. 分享:分享的前提是学习、总结,在分享时可能会得到一些极好的建议,同时也可能帮助他人解决困境,知识总是共享的。
10 .思考力:多思考,这是我一直所欠缺的,总结了一下,除了自己知识匮乏,欠缺思考力。
最近在看《麦肯锡思维》,其中很重要的一条原理叫做金字塔原理,它的核心是层次化思考、逻辑化思考、结构化思考,懂得正确的思考方法,会让你更有职场竞争力。有需要的也可以看一下哦。
THE END
题图:本文来源于网络,文章所包含的文字来源于原作者。内容以及排版做了相对的修改,如因内容或版权等问题,请联系Python测试社区进行删除
希望各位能在本文能够学习他人在日常测试工程中积累下的好的点
在各自的项目复盘期间可以这些建设性对于项目团队有利的经验,分享给你的伙伴,一起成长,充分表现测试在项目中的核心立力
另外提前预祝大家端午快乐,阖家欢乐,幸福安康