分享我在京东的6年的测开经验

前言:

先给大家简单的介绍一下我,我从南开大学毕业后就直接入职京东,成为了一名测试开发工程师。截止目前为止在京东工作马上6年啦,主要负责京东金融服务端的测试,见证了京东金融的从无到有,现在京东金融的技术、服务与产品逐渐完善并趋于稳定。这次把这将近6年测试工作做个总结记录下来,如有描述不恰当的地方,还请大家多多包涵指正。

学习资料
在职期间我也在学习巩固自动化测试知识,我为各位想要学习或者是了解测开的朋友整理了一套学习资料和大厂的面试题,因文章篇幅有限,我都给放在我自己的公众号【程序员阿信】里面了,关注之后回复66即可获取。

1、刚接触测试

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

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

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

2、接口自动化测试实践

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

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

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

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

4、持续集成实施与推动

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

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

总结下CI需要具备:

  • 全面的自动化测试:这是实践持续集成与持续部署的基础,同时,选择合适的自动化测试工具也很重要;
  • 版本控制工具:如 Git,SVN等;
  • 自动化的构建和软件发布流程的工具,如 Jenkins等;
  • 反馈机制:如构建/测试的失败,可以快速地反馈到相关负责人,以尽快解决达到一个更稳定的版本,目前我们是通过邮件进行通知。

总结

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

  • 用例设计:设计合理性,具有结构化以及覆盖完整性,在工作中可能会遇到用例设计后,他人来执行的情况,所以要保证我们的测试用例是完整有效的。另外服务端的测试,对于产品需求及业务逻辑是需要极为熟悉的,这样才能更有效的进行相关测试。
  • bug提交和跟踪:刚开始提交bug时,复现过程描述不完善,导致开发总是来询问,耽误时间,所以在提交时,要尽可能地将复现流程描述清楚,方便开发进行重现修复。
  • bug总结:要善于进行bug总结,以及听取他人的bug总结,吸取经验,尽可能避免后续测试过程中漏测情况的发生。
  • 执行力和反馈:有计划的进行测试,测试时间也需要预留一部分时间,防止突发情况的产生,如果觉得不能够按时完成的一定要及时反馈给老大,方便协调,否则可能会导致项目延期上线。在工作中,尽可能做到凡事有交代,件件有着落,事事有回音。
  • 时间管理能力:每周将下一周的任务计划好,每天将自己的时间安排好,然后按照计划来做,每天下班前总结下今日的工作及学习,如若完不成,分析原因和改进。
  • 沟通能力:与开发、产品、设计、老大、同事等都需要沟通,有效的沟通往往会事半功倍,记得之前沟通过程中,理解错意思,也没继续询问,产生了歧义,耽误了后续任务的进行,想说的是,一定要沟通清楚,不能怕问,这样才能更好的开展工作。
  • 学习能力:保持学习能力,不断扩大知识面,尽可能避免做一个只会点点点的测试。
  • 不断的总结和改进:工作中需要不断总结,然后分析原因和改进,这样进步的会特别快。
  • 分享:分享的前提是学习、总结,在分享时可能会得到一些极好的建议,同时也可能帮助他人解决困境,知识总是共享的。
  • 思考力:多思考,这是我一直所欠缺的,总结了一下,除了自己知识匮乏,欠缺思考力。最近在看《麦肯锡思维》,其中很重要的一条原理叫做金字塔原理,它的核心是层次化思考、逻辑化思考、结构化思考,懂得正确的思考方法,会让你更有职场竞争力。有需要的也可以看一下哦。

猜你喜欢

转载自blog.csdn.net/qq_40214204/article/details/111473821