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

本文分享了测试工程师如何参与开源社区的方法及注意事项。介绍了参与社区的好处、思路与实践案例,包括Docker与Ltp社区的具体参与流程。同时给出了社区贡献的技巧与避免的误区。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

幻灯片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个

红包金额最低5元

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

抵扣说明:

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

余额充值