概述
自动化是软件开发中最具争议的话题之一。开云官网入口下载手机版你得到三个工程师到一间房间讨论自动化和你最终会有四个矛盾绝对和定义。对于这篇文章的目的,我们将以下限制的话题:
- 自动化在这篇文章中会特别提到的自动化功能测试UI或API。
- 功能测试将被定义为包含一组规定的测试步骤执行通过一个接口连接到一致的数据每次都产生相同的结果执行。
- 失败在这个文档将被定义为大于3个月的努力在创建自动化不采取行动或决定过于昂贵或车保持12个月后,关闭或忽略。
这篇文章将介绍三个自动化失败最常见的原因:
- 无法描述一个特定的业务需要/客观自动化可以解决。
- 自动化是当作一个定时活动而不是一个业务/开发过程。
- 自动化是由一个集体没有一个强有力的所有者负责标准。
等一下,你是谁?
我是迈克尔·考恩高级QA工程师在Jama软件。开云官网入口下载手机版开云官网手机网页版入口在过去的20年里,我一直在一个测试人员,开发人员,工程师,经理和QA建筑师。我已经建立了自动化解决方案对于Windows,网开云足球官网络,移动和api。我有策划创建真正壮观的怪物,已经浪费了大量的金钱/资源以及设计框架,使全球团队合作在不同的平台上,拯救大(r)大笔的钱。
我有神奇的机会的主要设计者和实现者自动化对于复杂系统,每天数以百万计的事务处理(Comcast),处理20岁的系统管理数百万美元(银行),在高安全/零容忍(国土安全部)环境和处理大规模大数据流(Facebook的合作伙伴)。我一直与才华横溢的人,参加会议和培训,以及我自己的对话和讲座。
我有一个非常“老学校”业务集中哲学时自动化。对我来说这不是一个旅程或冷却技术的探索。自动化是一个工具来减少开发和运营成本,同时释放资源的工作更复杂的事情。我坚信,自动化是一个增值的公司正确地投资,和时间/钱汇公司,让它运行在他们的组织。
故障原因# 1:无法描述一个特定的业务需要/客观自动化可以解决
严酷的事实是,在一个页面上点击一个按钮(甚至是一个很酷的/困难/复杂的自定义按钮)没有商业价值的。业务不关心如果你用鼠标点击那个按钮手动,执行Javascript,调用业务逻辑通过API或直接操作数据库。他们关心的是确保客户不会打电话给发布后返回的产品,或一些博客不会发现一个主要问题,赶走投资者尖刻的评论。开云足球app下载官网最新版
自动化项目失败时技术练习不绑定到特定的业务需求。如果ROI(投资回报率)不清楚,你不太可能得到资金来做正确的自动化。相反,你会发现你的努力赶到只实现“自动化”,然后继续前进。几个月后,每个人都很困惑为什么自动化尚未完成,它为什么不做x, y, z和为什么他们认为的一切将包括从来没有计划。
没有什么比一个团队的自动化工程师认为他们正在取得很大的进步,只是有业务决定拉开团队由于缺乏理解的价值。如果您正在运行自动化直接绑定到一个理解业务需求,那么商业领袖将投资。你会发现支持因为你的度量将清楚地表明产生价值。
运行自动化作为工程项目的另一个后果是决策基于技术而不是业务需求。如果你决定提前使用一些开源工具你读,你会发现自己告诉业务它(你)不能做什么。不,我们的工具没有钩到构建服务器,但是我们可以停止写作测试和构建一个垫片。很快你花费你所有的时间将你的项目更功能丰富,而不是创建测试用例的业务需求。这就是团队可以花6 - 12个月建立一些简单的自动化脚本。更糟糕的是,你最终得到的大型代码库,现在需要维护。你大部份的时间将被用来修建垫片,黑客和添加复杂性与业务无关或域。
缓解
其实很容易避免这种陷阱。不开始编写测试,直到你有一个计划,当其完全实现自动化将是什么样子。如果你的团队实践持续集成(运行测试作为构建的一部分),不要从一个解决方案,开始没有内置的支持你的CI /构建系统。找到一个行业标准工具或技术,满足业务需求,创建一个POC(的概念)证明你建议的解决方案集成了正确和业务需求可以产生准确的指标。
编写一个测试展示系统通过运行并生成指标。确保涉众花时间理解提出的输出,他们知道信息会影响决策。之前记录协议向前移动,然后让你做的每件事都生产这些指标。如果有任何业务变化,开始重新评估指标和调整预期。一旦每个人都在同一页开始向后更新代码。一致性和准确性在你报告业务价值将超过任何酷技术解决方案或向上突破,你试着解释。
如果你管理,你可以考虑要求日常自动化所有测试失败的结果与解释。如果团队不产生这些信息,让他们停止测试用例,直到完成基础设施的建设。
关键可交付成果应该构建之前生产自动化的脚本:
- 一个记录的商业计划/建议,明确阐述了聪明的你正在努力完成目标。
- 最资深的业主签署的技术在你的公司。
- 这应该是与他们的成功。
- 明确成功的测量。例如减少回归时间,增加覆盖关键工作流等。
- 报告和计量测量您需要支持。
- 你的建议应该包括一个模板示例(假的)数据报告。
- 从自动化交钥匙过程生成这些报告和指标结果数据。
- 1个自动化测试做一个简单的测试在一个真正的系统,生成业务报告。
带走
关键是业务和项目管理技能对于任何自动化项目的成功至关重要。技术挑战苍白的问题相比,你会如果你不与业务保持一致。不开始编写代码,直到你得到书面批准,交钥匙机制生产指标,将满足你的利益相关者。记住您的项目将被可操作的评价指标,而不是演示按钮被点击。
故障原因# 2:自动化是视为一个定时项目而不是软件开发过程的一部分开云官网入口下载手机版
自动化并不是一个8周的项目你可以群,然后交给别人来“维持”。一个常见的错误是将一组开发人员构建自动化框架,然后把它传递给非技术QA弘扬。想一想,为贵公司的应用程序模型。想象招聘6高级顾问建立在8周版本1,然后将整个项目团队保持了一个初级向前。
自动化是一个软件项目。开云官网入口下载手机版它有相同的需要与其他项目的可扩展性和可维护性。自动化是写给遗留和新特性,不断更新框架工作要做。新要求日志、报告或将新UI功能。只要你是更改您的应用程序,您将更新自动化。也请记住大多数自动化框架绑定到其他系统(如构建、指标云服务)和一切需要保持同步发展。
你很快在一个初级工程师的情况在他们的头上,要么停止工作自动化,直到专家资源释放,或者他们进去侵蚀补丁和破解的框架。最终结果是冲突,降低ROI,生成一个感知的复杂性和困难,最终导致项目的失败。
缓解
再一次,这是一个容易避免的陷阱。自动化的商业计划应该包括长期资源留在自动化通过最初的生命周期。它还是有利于引进专家在框架创建的关键部分,但业主(s)的自动化需要引导开发人员。他们将建立所需的亲密知识增长和重构与测试自动化框架。
此外,利用行业标准技术。自动化不是你想成为早期采用者。如果您的组织是构建一个web应用程序时,您需要选择一个框架(如硒,而不是类似m-kal / DirtyBoots。一个好的标准作为一名经理,你应该能够搜索LinkedIn的核心技术团队提出,找到一些有经验的人。无论多么可怕的一个中间层工程师告诉你这个新技术,当他离开时,下一个人会坚持重写它。
带走
如果您使用的是标准技术和行业最佳实践,您将不需要一个精英团队的开发者构建QA的框架。自动化项目的复杂性应该保持相当稳定的生活你公司的应用程序更新,新特性,UI状隆起。最初的创造者框架应该是一样的大量的自动化测试。另外,缺乏经验的脚本编写可以用来增加速度,但一致的核心集团将为最少的投资产生野兽的结果。
故障原因# 3:自动化是由一个集体没有一个强有力的所有者负责标准
自动化框架的一个社区项目是一个非常昂贵的错误。如果你的公司创建一个新项目计划的指导方针“3个月建立一个良好的CRM系统在任何语言中,我们将使用内部”,将在10个随机的开发者,在业余时间,你会期望的问题。自动化具有相同的限制。小专门小组(成员希望携带自动化提出至少一年或两年)时间收集需求,理解业务需求,建立成功的基础设施和推动项目前进。一个特别的团体,没有问责,特别是一个主要成员不会做测试的实际创作,将斗争。
每个人都想工作乐趣POC自动化阶段,黑客技术来做基本测试和报告。大多数QA经验与先前的一些项目,他们有自己的想法,不能工作。没有强有力的领导,一个批准的路线图和严格的质量控制,你将得到一个特殊的项目,各种很酷的事情,但似乎你永远绑在一起为可操作的指标得到你需要的信息。团队总是低的信心测试或他们的繁殖能力结果可靠。总有一个合理的借口的原因。有趣的下水道周变成几个月和你的团队发现关注其他事情,而自动化停滞不前。
最终显然多少商业价值产生的所有努力,多少仍然工作,没有明确的所有者追究或计划如何维持或前进。冠军的有趣的部分注意力转移到下一个很酷的项目。管理最终将分配人们牺牲生产率手动生成报告,清理脚本和尝试训练别人使用它。开云足球app下载官网最新版最终每个人都同意这个过程很糟糕。最终一个新的想法/技术将表面,如此循环往复。
另一个常见的错误是假设添加更多的工程师帮助编写自动化将增加ROI。记住,投资回报率是衡量业务目标,而不是行代码。与应用程序开发时很少有建立模式自动化。这意味着2同样熟练自动化工程师编写截然不同的自动化测试相同的特性。记住,加上缺乏经验的工程师需要你的经验丰富的工程师停止建筑自动化和开始培训,指导和代码审查程序。为了这个项目成功,每个测试编写需要审核确保它适合1 - 2人。需要几个月到额外的工程师能够自主和贡献不可耻的框架。此外更复杂的应用程序,定义系统,它可以包含的特性和控制。这些变化将需要更多的高级工程师先解决这些问题。即使这些努力的业务必须接受新的自动化工程师不会编写最好的测试,可能需要数年时间才能构建技能和应用正确的概念。 This is a large factor in the constant ‘do-overs’ that automation projects suffer from.
我断言,唯一的商业价值,通过来自自动化、生产指标和报告。你可以拥有世界上最好的自动化,但是如果只是点击按钮和从未产生可行的报告其调查结果,然后它没有价值。好的自动化将是结构化的方式产生一个综合报告,显示测试覆盖率,很容易理解和准确的版本。想象有一大群销售和营销人来说,所有的工作分别从自己的数据生成自己的kpi。凝聚力如何他们的报告是什么?可以用KPI业务做出明智的决定从不同的群体在不同的范围内?技能结构,创造价值的自动化是不一样的,能够阅读硒文档并单击页面上的一个按钮。
我们应该朝着一个批准的商业目标。的业务目标是尽快编写测试用例,即使他们不能保持?还是“自动化回归自由QA的其他任务”。转移你的工程师的时间运行手动回归,保姆自动化并不能解决任何问题(实际上减少了测试覆盖率)。在某些情况下,较慢的测试用例开发由小团队经验丰富的工程师的路要走。只要你构建冗余和打开他们的工作进行审查和反馈你会产生价值更快。
缓解
建筑自动化,可以生成可靠的和可操作的指标是不平凡的,需要耗费大量的结构、纪律和经验。自动化项目应该由1 - 2对建立自动化项目工程师经验。他们应该做一个引人注目的他们想建立业务,它将带来什么价值。一旦业务的迹象,他们应该考虑到空间来构建初始POC框架和样品测试用例(s)。一旦一个工作原型,反馈是请求,然后项目推进。核心团队应该2 - 3工程师=。一旦所有的关键领域自动化和框架是硬的,你就可以开始培训感兴趣的个人通过配对一个经验丰富的团队成员。
这个初始的工作应该由一个核心团队2 - 3工程师。他们将负责它的成功或失败。关键是让这组显示工作测试产品的所有主要/关键领域。开云足球app下载官网最新版这些最初的测试,展示的框架。一旦完成了一套工作的自动化测试和测试报告从开始到交付,你可以训练一个小组开始讨论建立测试用例和自动化转移到其他球队。
带走
当观察一个自动化的报告,你需要能够理解,乍一看,测试是什么,什么不是。当你在失败的测试有问题,你需要能够快速理解测试结果。所有的测试应该有相同的范围和声音。想象一下如果功能X只有5测试100步虽然功能Y 100测试5每个步骤,你如何结合这些数据点来了解产品的真实状态。开云足球app下载官网最新版随着组织越来越大,很难保持一个声音。你将更快地让你的核心集团引入缺乏经验的工程师之前解决这些问题。
总结
在这篇文章中,我讨论了自动化三个最常见的原因失败,如何避免他们,让您的项目专注于提高ROI和业务价值。
- 自动化项目失败的原因以及如何避免的陷阱- 9月7日,2016年