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

简介: ![幻灯片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

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

目录
相关文章
|
1月前
|
机器学习/深度学习 人工智能 算法
新时代软件测试工程师的挑战与机遇
随着科技的飞速发展,软件测试在当今信息化社会中扮演着举足轻重的角色。本文将探讨新时代软件测试工程师所面临的挑战和机遇,分析其发展趋势及应对策略,旨在为广大软件测试从业人员提供启示和指导。
|
7月前
|
测试技术 数据库
腾讯游戏测试工程师的经验心得分享
腾讯游戏测试工程师的经验心得分享
285 0
|
7月前
|
测试技术
华为测试工程师面试必备的问题点
华为测试工程师面试必备的问题点
79 0
|
14天前
|
安全 应用服务中间件 网络安全
渗透测试工程师面试题大全
渗透测试工程师面试题大全
|
7月前
|
Kubernetes 测试技术 应用服务中间件
新来的性能测试工程师工资25K,看了他做的性能测试,我砌底服了
新来的性能测试工程师工资25K,看了他做的性能测试,我砌底服了
|
3月前
|
测试技术
软件测试工程师日常工作中需要拒绝哪些工作?
软件测试工程师日常工作中需要拒绝哪些工作?
|
8月前
|
安全 搜索推荐 测试技术
【实测】用chatGPT来完整的走一次测试流程吧,看看它到底相当于我们什么等级的工程师?
【实测】用chatGPT来完整的走一次测试流程吧,看看它到底相当于我们什么等级的工程师?
|
5月前
|
消息中间件 安全 NoSQL
测试工程师如何帮助开发域的质量变好
测试工程师如何帮助开发域的质量变好
59 0
|
8月前
|
机器学习/深度学习 人工智能 自然语言处理
软件测试|人工智能如何帮助测试工程师解决问题?
软件测试|人工智能如何帮助测试工程师解决问题?
87 0
|
10月前
|
云安全 存储 运维
如何成为一名专业云渗透测试工程师
从宏观层面来看,新基建成为中国经济热词,政府和企业业务上云全面提速,随着云计算技术的快速发展,云安全问题已成为重点关注的领域。但从安全角度来看,这也意味着安全态势变得更加复杂,安全的范畴也变得更加广泛,漏洞存在于每个地方、攻击可以由世界任何一个地方发起,对于网络安全的准确预测成为保障安全的关键前提。