皇上,还记得我吗?我就是1999年那个Linux伊甸园啊-----24小时滚动更新开源资讯,全年无休!

测试人员的GitHub

作者 Ben Linders ,译者 薛命灯

当与开发人员谈起版本控制时,你一般会听到他们说,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

转自 http://www.infoq.com/cn/news/2017/08/github-testers