技术测试

因此,我正在为FutureLearn进行技术测试,他们非常友好地表示,我可以将我的工作公开发布在GitHub上,我已经迅速完成了该工作:

https://github.com/tansaku/tictactoe

我想到目前为止,我已经花了大约3个小时,主要是在不同的休闲中心,教堂和礼堂里等我的孩子完成体育活动。 我在星期二,星期三和星期四有45分钟的时间,而我分别等待他们完成WoodCraft,足球和空手道比赛; 在此期间,我可以专注于笔记本电脑而不会受到太多干扰。 昨天,我在Ruby中为CodeMentor创建了一个计算器,今天早上得到了批准,这让我想起了去年的一段时期,当时我得了肺炎,花了三周的时间躺在床上,除了CodeWars上的衣服外,几乎什么也没做。 有趣的是,我在CodeWars的CodeMentor技术测试中遇到了一些变化。 如果您想擅长于技术测试,那可能比花一些时间在CodeWars和其他网站(例如HackerRank)上通过kata进行黑客攻击还要糟糕。

其他创客团队最近都超过了我的CodeWars得分,但是我认为CodeWars刚刚调整了计算结果,而且我似乎跳回了榜首:

这给了我可笑的幼稚乐趣。 我是如此肤浅……(垂头丧气)。 即使我解决了所有的1-kyu katas(1-kyus是最难的),我仍然对无法在CodeWars上达到1-kyu感到沮丧。 看起来现在有一些新的1-kyu和2-kyu kata,这使我无需做许多简单的kata就可以达到1-kyu。 如果我还有另一种大病,也许我会明白的。🙂无论如何,技术测试是一头奇怪的野兽-编码难题,公司将这些难题交给潜在的员工来测试其编码技能。

我之所以加入CodeWars,是因为我是MakersAcademy的教练时推荐这样做的,在训练营中,我们专注于帮助培训人员以应对公司毕业后提供的技术测试。 我之前曾为那里的学生进行过有效的技术测试,您可以在此处查看其代码:

https://github.com/tansaku/vending-machine-kata

我还录制了自己做所有事情的屏幕录像,试图揭示我经历的过程。 我对此没有很好的反馈。 一名下级工作人员告诉我,他认为代码使他“难过”,尽管有许多其他争论,但我始终没有发现是什么让他为此感到难过。 另一位更高级的工作人员说,一个学生在听视频时觉得这太停止/开始了,我对很多人说“嗯”,我完全可以相信。 我认为,这为Makers每周进行的挑战提供了一些脚本编码的屏幕录像,最终使学生更加赞赏。

因此,为FutureLearn进行此TicTacToe技术测试很有趣,我采用了由外而内的方法,通过接受测试来驱动代码,然后进行一些集成和单元测试。 在单个整体文件中,我得到了某种或多或少有效的方法,只是推动了Sandi Metz的100行限制。 对于我来说,这是一件令人不安的事情,我是受过培训的学者,正在使用这些行业技术测试。 我一直在寻找那个行业的“特殊调味料”。 造就出色编码人员的东西。 目前,我最好的猜测是,它实际上是在发挥作用,而不是为关键的特定代码风格而战。

令我感到困惑的是,我们有这样的指导,例如“做最简单的事情”,“总是先编写测试”,“红绿重构”,“您将不需要它”以及其他指导,但是当您把这些都推向逻辑极限时,人们似乎会感到不舒服。 这个TicTacToe问题显然受到很大的限制,因此可以采取的另一种方法是构建一个TicTacToe引擎,通过单元测试来驱动设计,然后再进行验收测试(如果有的话)。 我从来都不是那种方法的忠实拥护者,因为我担心我会花太多时间写不需要的东西,他们说只花几个小时就可以了。

我选择执行RSpec驱动的整个过程,以避免在Cucumber上花费大量时间,并且想知道是否可以在命令行上为输入/输出编写完整的验收测试,因此我以这种方式开车,得到了我的单片类。 目前,我有一个大致可运行的系统,但仅适用于一些硬编码的游戏。 计算机当前的策略是固定的,我不处理标记的冲突,因此游戏不是完全通用的。 目前,技术测试是对我进行各种测试,获得大致运行系统的能力的合理证明,但我突然对这种代码是否会以某种不确定的方式使更多人“伤心”而产生偏执,我仍然将无法获得使人们“高兴”的版本的示例。

我可以想象再做一次,从单元测试开始(借助最初的经验),使引擎成为一个很好的因素。 我还可以对某些验收测试进行分层,以确保解决其他高级故障,例如处理冲突等,或者可以继续使用现有测试重构代码。 我使用现有的测试套件来消除一些不需要的代码,并使方法名称更容易解释。 但是人们会对缺乏评论感到如何? 我喜欢集中精力使方法和变量名能够自我记录。 到目前为止,我觉得直到玩完全通用的游戏我才会感到高兴。 我知道我今天会花更多时间在发送FutureLearn链接之前🙂

  • “马丁·福勒” Scrum
  • “肯特·贝克” Scrum

最初发布于:http://nonprofits.agileventures.org/2017/02/10/tech-tests/