文本
如何在没有测试的应用程序上构建测试自动化
在现有项目上启动测试自动化似乎是一项不可能完成的任务。不一定非要这样。阅读一下几个小步骤如何在长期中积累起来。
在理想的情况下,您加入的所有项目都已经将测试自动化作为其标准工作流程的一部分。测试套件定期得到维护,当新特性开发出来时,会添加新的测试,并且每个人都遵循已经建立的测试流程。您会对跳入这个项目感到自信,因为测试自动化将在那里保持质量。
不幸的是,现实世界有时是残酷的。基于个人经验,有适当维护测试的项目或者有良好测试习惯的团队是很少见的。许多项目都有不成熟的测试解决方案,失败的或者被遗弃的测试套件,或者团队成员根本不在乎适当的测试习惯。 在某些情况下,您甚至可能会遇到这样的情况: 为现实世界客户服务的现有应用程序自动化为零。这比你想象的要普遍得多。企业通常不理解测试的价值,而且通常,当最后期限迫近时,测试是最先被推到一边的事情之一。最终的结果是,这个项目发展到了一个让人痛苦到无法对自动化做任何事情的地步。 如果现有的应用程序没有测试自动化,那么这将是一场艰苦的战斗。然而,这并不是一个不可能的壮举。通过一致的小动作和足够的耐心,您可以让您的测试回到正轨。本文将介绍几种方法,帮助你完成这个看似毫无希望的任务。 从小事做起,从某个地方开始
如果您希望在现有的应用程序上设置测试自动化,但是没有一个确定的起点,那么前面的工作可能会使您瘫痪。由于没有任何东西可用,这个领域是广阔的,没有明确的道路。你很有可能会想,“我不可能在这里进行任何测试——我甚至不知道从哪里开始。”
通常,这里有一点完美主义。我们开始思考,我们需要从一开始就设置自动化需要的所有东西。但是,当一个已经建立的项目在没有自动化的情况下花费数月甚至数年的时间进行开发时,您不能指望在几天甚至几周内构建一个完整的测试实践。 战胜这些想法的关键是从某个地方开始,做一些小事让你前进。它可以提出团队应该首先自动化的初始测试计划。也许您可以使用现有的手动测试用例,并确定哪些工具可以帮助您开始编写测试。
有这么多事情你可以做,你可能会不知所措和卡住。了解下一步应该做什么的一个很好的方法是问自己一个简单的问题: 我现在能做的一件事是什么,能让我离自动化测试更近一步?这个问题的答案会让你很快摆脱困境。 一旦您开始为您的项目构建测试自动化,您就需要知道应该开始编写哪些测试。正如上面提到的,你不可能同时做所有的事情,所以你需要从某个地方开始。但是,在一张完全空白的石板上,你会从哪里开始呢? 根据自动化的原因,每个人对从哪里开始测试都有自己的偏好。您的组织花时间进行测试的原因在于这个决定,而且还要考虑当前产品开发的情况。大多数项目都有可以从测试中获益最多的领域,因此最好首先关注这些领域。
这里有几个问题可以帮助你找出哪些领域是最适合自动化的: 当开发人员更新代码库或部署到生产环境时,应用程序的哪些部分最容易中断? 测试人员讨厌手动测试哪些应用程序流程,是因为它单调乏味还是过于复杂? 从商业的角度来看,什么功能是最重要的? 如果客户发现漏洞,公司将在哪里损失金钱或声誉? 这些问题将帮助您找到最有价值的自动化测试场景。首先关注这些方面,因为它们是你在这个过程中获得最大收获的测试。
为团队的其他成员设置工具和实践需要时间。首先,将重点放在应用程序的关键领域,这是一种快速显示自动化价值的极好方法。一旦您的团队其他成员认识到自动化测试的有用性,它也可能会促使他们采取行动。 让团队的其他成员负起责任 在项目中实现测试自动化的责任通常由少数团队成员承担。让太多的人参与其中并不特别有用,而且很有可能,在这项工作开始时,其他人并不会太在意你的努力。毕竟,这个项目没有自动化,因为没有很多人首先对设置它感兴趣。 有一段时间,您可以只有几个人——甚至只有一个专门的测试人员——从事自动化工作。在您计划、设置工具和建立实践时,您只需要一些意见就可以使您的测试向前推进。然而,为了扩大您的工作规模,您最终需要让项目团队的其他成员参与进来。 让其他人参与进来意味着让他们参与实际的工作来构建和维护测试套件。对于开发人员来说,这意味着创建自动化的 bug 修复程序和应用程序的新特性。测试人员可以开始自动化他们的一些手工工作,并帮助您的测试计划。无论其他团队成员如何支持您,他们都需要站在您的角落,以获得最佳的测试自动化结果。
你还需要让团队对自己的工作负责。例如,您可以指定某人监视新的代码提交和拉请求,以确保开发人员在可行时创建自动化测试。或者你可以给测试人员一个自动完成特定任务的计划和期限。 这里的关键要点是让每个人对您使用测试自动化所做的工作有一定的主人翁感。太多的团队在这种工作中失败了,因为他们相信其他人正在处理这个问题。当每个人都被期望参与进来的时候,即使只是一点点,你也会避免掉进那个陷阱。 衡量你的进步并展示它 当你全神贯注于工作时,你可能会认为有太多的事情要做,而自己却做得很少。没有什么比缺乏进展更令人沮丧的了。这就是为什么每天衡量你的进步是非常重要的。记录下你一天中做了什么,这样你就能知道未来会发生什么,也不会让你觉得前面的工作有多艰巨。 衡量你的进度不仅仅是为了你自己,也是为了项目中的每一个人。在设置测试自动化时经常出现的一个问题是,没有人知道将要发生什么。只有一个或几个人在做这项工作,很容易把太多精力放在工作上而忘记告诉其他人工作进展如何。你的团队的其他人不会注意,所以你必须以某种方式让他们知道。 在您的自动化之旅的开始,使用度量标准向您的组织的其余部分展示测试自动化是如何影响每个人的工作的。最有可能的是,自动化将对项目的质量产生积极的影响。不要隐藏这些信息。您需要证明测试自动化的重要性,特别是在一个不习惯于测试的环境中。 在建立自动化测试的早期阶段需要展示的一些有用的度量标准是围绕应用程序最重要领域的代码覆盖率,以及跟踪测试的有效性。您测量的内容取决于您的场景,但是请注意不要跟踪那些给出错误安全感的无用指标。 了解您的工作进展情况不仅可以显示您完成了多少工作,还可以作为继续构建您的测试自动化的动力。请记住,并不是所有你能衡量的东西都很重要,所以选择那些能够展示真正价值的度量标准。
提前计划,这样你就不会回到老习惯 一旦您达到了测试自动化工作的阶段,并且团队正在尽自己的一份力量来保持它的运行,那么就是时候祝贺自己了。在一个没有自动化测试的项目中获得自动化测试并非易事。但是不要太舒服。你需要采取一些步骤来确保你的工作保持活跃和最新。 许多团队在他们的工作过了一个特定的点之后会做的一件事就是他们把注意力从这个点上转移开,任由它恶化。对于测试自动化,它表现为没有新的测试,忽略破损的测试套件,或者不保持工具是最新的。在您知道之前,团队停止维护测试套件,并且它崩溃了。 为了避免这种命运,您必须制定一个计划,确保测试成为每个人工作流程中的常规习惯。每一天,团队都需要看到自动化是他们产品健康不可分割的一部分。实现这一点的一种方法是使用您的度量构建一个指示板。如果你已经让你的团队负责定期测试和衡量你的进度,那么这会容易得多。 您还可以为未来做计划,使自动化成为项目计划的重要组成部分。例如,团队可以准备修改其开发周期以包含持续交付。这种方法需要高水平的可测试性,而自动化在实现这一目标中起着关键作用。 无论您选择做什么来确保团队保持您的测试自动化的健康,组织都需要一个激励。如果每个人都有充分的理由去维护一个稳定可靠的测试套件,那么它将长期存在下去。 摘要
加入一个没有任何测试的项目并不好玩。无论是由于整个组织中根本不存在的测试文化,还是由于管理层的时间压力太大,或者仅仅是缺乏关心,这都可能看起来是一项毫无希望的任务。但这并不意味着不可能启动测试自动化,即使在开始时什么都没有。原子习惯》一书的作者詹姆斯 · 克莱尔以下的话可能会让你摆脱困境: 解决一个问题可以减少对它的恐惧。当你在一个问题上取得进展时,你很难害怕它——即使进展是不完美的和缓慢的。行动减轻焦虑 首先,找到一件你现在就可以做的小事,然后开始着手去做。每个人都必须从某个地方开始,所以选择一些事情,然后继续前进。接下来,查看您将要测试的应用程序,并找出哪些领域将从自动化中获益最大。您可以自动化很多工作,但是从最高价值的测试开始将会更早得到回报。 当你的项目中有一些自动化操作时,和你的团队一起寻求他们的帮助。随着测试套件的扩展,让其他团队成员负责构建和维护测试套件,并让他们知道测试套件对项目的健康有多么重要。 为了证明这项工作的重要性,跟踪你的进展,让每个人都能看到它。收集有价值的指标,而不是那些只能给别人留下深刻印象的肤浅的测量。最后,在建立并运行了一个像样的测试套件之后,不要休息。许多团队让他们的测试工作到达一定的时间后就停止了。给组织一个理由让测试成为他们日常工作流程的一部分,将会防止这种结果。
这可能是很多工作,特别是当你没有什么支持开始。但是通过渐进的步骤,您将拥有一个自动化的测试套件,并且可以在其他人的帮助下立即运行。
你曾经在一个没有自动化测试的项目中工作过吗?您的团队是否尝试构建测试自动化?如果是这样,你是怎么做到的?让我知道在下面的评论部分!
author
石头 磊哥 seven 随便叫
company
thoughtworks(离职了。。。。)
大家好,本人不才,目前依旧混迹于thoughtworks,做着一名看起来像全栈的QA,兴趣爱好前端,目前是thoughtworks 西安QA社区的leader,如果有兴趣分享话题,或者想加入tw,可以找我
roles
QA(营生) dev(front-end dev 兴趣爱好)
联系方式
如果想转载或者高薪挖我 请直接联系我 哈哈
wechat:
qileiwangnan
email:
qileilove@gmail.com