当与开发人员谈起版本控制时,你一般会听到他们说,Git 是一种工作流工具,而 GitHub 是一个存放代码和个人简历的地方。而对于测试人员或业务分析人员来说,Git 是启动构建和产生缺陷的神秘之源。测试人员也应该来使用 GitHub,不管是出于个人目的还是项目的需要,并成为现有项目的贡献者。
来自 Excelon 的总经理 Matt Heusser 和来自 Laurel & Wolf 的测试工程师 Chris Kenst 在 2017 Spring 在线测试大会上呈现了有关成为GitHub 贡献者的演讲。
Heusser 和 Kenst 以如何创建 GitHub 账号作为开场。因为他们的演讲视频可以重复播放,所以观众可以重复观看视频内容,并在观看过程中暂停视频,然后照着视频中的命令进行操作。
在演讲结束后,InfoQ 采访了 Heusser 和 Kenst,谈论如何在代码之外使用 GitHub、测试人员如何从 GitHub 中得获益,以及如何鼓励测试人员使用 GitHub 和其他开源工具。
InfoQ:你们提到说,GitHub 不仅仅可以用于存放代码,还有其他很多用处。你们能举一些例子吗?
Matt Heusser: 当然。任何一个测试相关的资源——测试计划、会议纪要、简明指南都可以放到版本控制系统里。而规范文件(假设它们是 HTML 或 MS Word 格式的)可以放到 GitHub 上。
Chris Kenst: 探索性测试章程(exploratory charter)、清单、速查手册、数据,甚至是 Reddit 风格的问答(Ask Me Anything,AMA)。我们还能通过 GitHub 页面来创建网站(测试人员应该给自己创建在线资料),并在上面撰写和发布书本作品。只有你想不到的,没有你做不到的!
示例可以激发创造力,所以我举了一些例子。下面是我创建过的测试资源,它们都很有用。第一个是关于如何使用 Elisabeth Hendrickson 所倡导的格式来编写探索性测试章程的描述和示例。第三个是一个字符串清单,你可以把它们用在基于字符串的输入字段上,有助于你找出系统的错误,很有意思!
有很多例子说明如何通过 GitHub 页面来创建一个网站(对于测试人员来说,这是一个很好的选择)。第一个地址是 GitHub 产品经理 Ben Balter 的个人主页和博客。第二个地址是一个非常简单的个人主页,上面汇聚了很多个链接,它们分别链接到不同的社交媒体网站。GitHub 有个很有意思的地方,如果你喜欢什么,你就为它拉取一个分支,然后做一些修改,把它变成你自己的!第三个地址是一个由社区驱动的开源网站,包含了软件测试大会和研讨会的信息。如果你想成为 GitHub 的贡献者,可以看看这个:成为测试大会的贡献者。
InfoQ:如何使用 GitHub 来处理非代码对象?可以在这些对象上使用 GitHub 所有的功能吗?
Kenst:所有的项目享受同等待遇。在创建仓库后,你可以使用 GitHub 所有的主要功能,包括版本控制、问题管理、Wiki,等等。即使是非代码对象,你也可以提交拉取请求并作出增量性的变更。
Heusser:是的。除了二进制文件的合并和冲突处理,其他的都是一样的。不过,类似从两个分支中选择最新版本的操作对于 MS Word 文档来说是行不通的。
InfoQ:测试人员能够从 GitHub 中获得哪些好处?
Heusser:首先,你可以了解到开发人员的工作流,然后使用他们喜欢的方式与他们进行沟通。这样会减少测试人员与开发人员之间的摩擦。其次,你离构建资源和代码更近了。如果你看得懂代码,你就可以在代码级别找出一些错误。这样会提升你阅读代码的能力,或许还能参与到代码审查过程当中。Chris 一定会说,你也可以使用 GitHub 来组织自己的工作流——审批推送请求、记录缺陷,等等。另外,拥有一个 GitHub 账号并成为一个贡献者可以让你更容易找到工作,而且对于客户来说风险更小。
Kenst:没错。不管是盈利组织还是非盈利组织(比如 Selenium 项目),他们都在使用 GitHub 来托管他们的代码。
首先,这意味着软件人才会越来越多地使用 GitHub。代码变更是通过拉取请求来提交的,测试人员和开发人员可以看到代码的变更情况,在合并到生产环境之前,可以分别对它们进行测试。在系统的各个层面进行自动化测试给团队带来了优势。就像 Matt 说的那样,测试人员也可以参与到代码审查过程当中,并通过 GitHub Issues 来提交缺陷。
其次,这意味着组织和招聘者会越来越多地通过 GitHub 账号来物色候选人。如果有了 GitHub 上能够显示技术能力的东西,为什么还要去看简历呢?尽管这些东西可能会包含一些无关紧要的项目或非日常工作相关的资料,但它们都比单纯的简历要来得有价值。
InfoQ:你们在大会上演示了如何注册一个 GitHub 账号和启动一个项目,然后做了相应的解释。你们为什么要采取这样的方式呢?
Kenst:我们演示的主要目的是要确保观众能够真正地了解如何创建一个 GitHub 仓库并成为一个贡献者。基于这个原因和时间上的限制,我们决定先做演示,然后再说明一些背景信息和额外的例子。
Heusser:在开始的时候,演示花了很长的时间,而额外的一些补充花的时间更长,我们担心会超时。不过我们还是紧凑地完成了任务。
InfoQ:人们应该如何鼓励测试人员使用像 GitHub 这样的开源工具?你们有什么建议吗?
Heusser:这个问题问得很好。说实话,我听到很多领导或教练说一些“放手去做”之类的话,他们还质疑“为什么测试人员用不了新工具”。我建议让测试人员结成对,让他们使用新工具来完成工作,不管是使用 GitHub 还是 Selenium,或者其他的什么。你可能会觉得这比你想象得要困难一些,需要一些时间和帮助,又或者你觉得这个很容易,结对有助于减小阻力。不管是哪一种情况,你都赢了!
这里有一些给实践者的建议:启动一个项目,学习一些编码招式(katas)。对于编程语言来说,通过 Google 搜索到的建议与深度的专业知识之间是有很大区别的。一些技巧经过反复练习就会变成专业技能。从给我的 katas 仓库拉取分支开始,然后使用 katagenerator.rb 创建你自己的招式。其中有一个转化器是最简单的,它将罗马数字转换成小数。做一些修改,然后提交,你就知道该如何向一个项目提交代码了。
将来如果你需要其他软件,却因预算问题而烦恼时,可以考虑寻找开源的项目。例如,Selenium 可以用来替换 UFT。找到这个项目,看看能不能加入其中,或者仅仅是报告一些缺陷。报告缺陷是 Git 的另一个工作流,学习起来非常简单,而且开发者会因此而感激你!
Kenst: 在软件测试工具方面,过去十年的最大进展来自开源社区。 Selenium 成为 Web 测试的标准(并即将成为 W3C 标准), Appium 似乎也会成为移动自动化测试的标准。我们所使用的那些优秀的浏览器和浏览器工具都得益于开源社区(如 Chrome)。作为最流行的版本控制系统之一的 Git 也是开源的。
为了保持与时俱进,测试人员需要关注这些项目(以及其他相关的项目),而这些项目都在 GitHub 上。
查看英文原文: GitHub for Testers
评论