测试工程师如何参与到开源社区

简介: ![幻灯片01.jpg](http://ata2-img.cn-hangzhou.img-pub.aliyun-inc.com/5f7ebaed5b223dde9c580426c01074fe.jpg) 通过这篇文章与大家分享一下测试工程师参与开源社区的方式和注意事项。 ![幻灯片02.jpg](http://ata2-img.cn-hangzhou.img-pub.aliyun-in

幻灯片01.jpg

通过这篇文章与大家分享一下测试工程师参与开源社区的方式和注意事项。

幻灯片02.jpg

将从以下方面展示本文的主题。

  • 参与社区开发的好处
  • 社区参与的思路
  • Docker社区参与实践(github)
  • Ltp社区参与实践(send-mail)
  • 社区参与常见问题

幻灯片03.jpg

很多学生在校期间就开始参与到开源社区的贡献,毕业之后直接获得了知名企业的offer。其中有些人一入职就获取到了较高的职位。和内源社区相比,开源社区的maintainer有更多的经验,非常有利于贡献者自身水平的提高。而且开源社区的参与没有任何学历上的门槛,很多社区在引导贡献者一步步的投入到社区中。

幻灯片04.jpg

首先你需要根据自己的业务特点选择对应的开源社区。我是做容器测试方面工作的,主要涉及到docker社区和ltp(全称是linux test project,是linux内核的测试社区)社区。

其次,你需要熟悉的注意事项和参与方式,阅读社区的userguide文档是必要的。

对于ltp社区,你可以通过邮件或github参与贡献,需要注意的是,社区更愿意接收来自邮件的贡献。如果你在github中提交pull request,可能会很长时间得不到响应。

而docker社区只接收来自github的贡献。社区有maintainer和contributor角色。没有严格意义上的committer角色。

kernel社区只接收来自邮件的贡献。虽然github中也有kernel的源码,但只是作为源码同步使用。社区中有maintainer、committer、contributor角色。maintainer可以合入代码,committer有权限合入一些特性或非关键性代码。contributor只可以贡献代码,没有权限合入代码。

如果在社区中发现缺陷或提出问题,需要在社区issue中提供较为详细的信息和bug复现方式。

如果想参与社区,需要寻找patch点,也就是社区中可以接收新贡献的部分。

幻灯片05.jpg

根据patch点编写代码后制作patch并等待社区反馈。如果patch和社区的方向不符,可能被拒绝。如果社区觉得需要修改,会反馈给你。

幻灯片06.jpg

参与docker社区时,首先要fork项目到你自己的名下。代码经过测试后需要进行文件格式的修改。之后参考图中所示的命令行提交即可。

幻灯片07.jpg

贡献ltp社区时,需要配置send-mail工具。

幻灯片08.jpg

需要在添加测试用例时加入公司的版权信息,要确认用例在编译时不会有任何warning信息。在提交代码前要使用checkpatch.pl进行格式检查。

例子:
https://github.com/linux-test-project/ltp/blob/master/testcases/kernel/containers/userns/userns01.c

幻灯片09.jpg

对于非原则问题,不要和maintainer进行过分争吵。曾经有人对于变量名等非原则问题进行过争吵,导致maintainer说今后不会接收其任何代码。

如果有不同意见时,讲话要委婉。不要用No way. I disagree with you.等带有明显否定意味的语句。

要用比较委婉的语句。如In general, I agree with you. But in this case, …
Maybe …

对于其他人的帮助,感谢的语句要有区别。

比较小的帮助使用:Thanks
比较大的帮助使用:Many thanks
特别有价值的帮助使用:Thank you very much.

目前还没有一个能够准确量化个人开源贡献的方式。将社区的patch数量刷上去很容易,可以通过修改文档或注释就可以完成,然而提升社区影响力就并不容易了。

以下贡献社区的方式对社区的影响力由高至低。

  • 改变系统架构
  • 添加新的特性
  • 修改bug
  • 修改拼写错误或打印语句错误

在和maintainer的协同过程中要注意搞好关系并取得其信任。

在社区中不要提出低级问题,凡是谷歌和百度能够查到的问题不要到社区中问,否则会对公司和个人名誉造成影响。

不要在一个patch中包含多个特性的测试,要把patch细分,分别提交,以减少单次review的工作量。早先出现过将几百个用例打包成一个文件发给社区的情况。patch发完后就石沉大海了,因为没有人愿意一次投入这么大的工作量去review这个大体量的patch。

幻灯片10.jpg

要了解maintainer的个性。每个maintainer审查代码的严格程度不同,如果你对这个代码没有太大把握,想要经过更严格的评审,就把patch发送给代码审查严格的maintainer;如果你只是想让自己的patch尽快让社区接收,就把patch发给审查力度比较宽松的maintainer。

当patch发送后很长时间(通常为2周以上)没有任何答复时,可以通过irc(社区中常用的一个聊天工具)ping maintainer,这个方式往往立竿见影。也可以将邮件抄送给更多maintainer。

如果你想根据他人的想法编写代码,一定要事先征得其同意。

幻灯片11.jpg

最后希望大家更多的投入到开源社区贡献中。

目录
相关文章
|
10月前
|
Linux 网络安全 iOS开发
Metasploit Framework 6.4.95 (macOS, Linux, Windows) - 开源渗透测试框架
Metasploit Framework 6.4.95 (macOS, Linux, Windows) - 开源渗透测试框架
1083 1
Metasploit Framework 6.4.95 (macOS, Linux, Windows) - 开源渗透测试框架
|
11月前
|
Linux 网络安全 iOS开发
Metasploit Framework 6.4.90 (macOS, Linux, Windows) - 开源渗透测试框架
Metasploit Framework 6.4.90 (macOS, Linux, Windows) - 开源渗透测试框架
611 1
Metasploit Framework 6.4.90 (macOS, Linux, Windows) - 开源渗透测试框架
|
11月前
|
安全 Linux 网络安全
Metasploit Framework 6.4.88 (macOS, Linux, Windows) - 开源渗透测试框架
Metasploit Framework 6.4.88 (macOS, Linux, Windows) - 开源渗透测试框架
716 0
|
10月前
|
人工智能 自然语言处理 测试技术
让AI帮你跑用例-重复执行,不该成为测试工程师的主旋律
测试不该止步于重复执行。测吧科技推出用例自动执行智能体,通过AI理解自然语言用例,动态规划路径、自主操作工具、自动重试并生成报告,让测试工程师从“点点点”中解放,专注质量思考与创新,提升效率3倍以上,节约人力超50%,重构测试生产力。
|
12月前
|
算法 测试技术 API
从自学到实战:一位测试工程师的成长之路
在技术快速发展的今天,自动化测试已成为提升职场竞争力的关键技能。本文讲述了一位测试工程师从自学到实战的成长之路,分享他在学习UI、APP和API自动化过程中遇到的挑战,以及如何通过实际项目磨炼技术、突破瓶颈。他从最初自学的迷茫,到实战中发现问题、解决问题,再到得到导师指导,逐步掌握测试开发的核心思维,并向测试平台建设方向迈进。文章总结了他从理论到实践、从执行到思考的转变经验,强调了实战、导师指导和技术服务于业务的重要性。最后,邀请读者分享自己的技术突破故事,共同交流成长。
|
Linux 网络安全 iOS开发
Metasploit Framework 6.4.63 (macOS, Linux, Windows) - 开源渗透测试框架
Metasploit Framework 6.4.63 (macOS, Linux, Windows) - 开源渗透测试框架
306 4
Metasploit Framework 6.4.63 (macOS, Linux, Windows) - 开源渗透测试框架
|
人工智能 自然语言处理 JavaScript
测试工程师要失业?Magnitude:开源AI Agent驱动的端到端测试框架,让Web测试更智能,自动完善测试用例!
Magnitude是一个基于视觉AI代理的开源端到端测试框架,通过自然语言构建测试用例,结合推理代理和视觉代理实现智能化的Web应用测试,支持本地运行和CI/CD集成。
2728 15
测试工程师要失业?Magnitude:开源AI Agent驱动的端到端测试框架,让Web测试更智能,自动完善测试用例!
|
12月前
|
Prometheus 监控 Cloud Native
测试开发工程师的必备法宝:性能监控与分析工具全面指南
在软件开发高速迭代的今天,性能问题直接决定着产品质量和用户体验。作为测试开发工程师,熟练运用专业的性能监控与剖析工具,不仅能精准定位系统瓶颈,更能为优化决策提供可靠依据。本文将系统解析当前主流的性能监控与剖析工具及其应用场景。
|
人工智能 Java 测试技术
Java or Python?测试开发工程师如何选择合适的编程语言?
测试工程师如何选择编程语言?Java 还是 Python?多位资深专家分享建议:Python 入门简单、开发效率高,适合新手及自动化测试;Java 生态成熟,适合大型项目和平台开发。建议结合公司技术栈、个人基础及发展方向选择。长远来看,两者兼通更佳,同时关注 Go 等新兴语言。快速学习与实践才是关键。
|
人工智能 自然语言处理 监控
一文看懂开源Coze如何让测试效率飙升
Coze是测试工程师的AI引擎,支持私有部署与零代码测试,提升效率并降低成本。覆盖智能用例生成、数字员工值守、缺陷分析、多模态报告与安全测试五大场景,助力测试智能化转型。