摘要
在本文中,我们将分享一些降低软件测试成本的方法,这些方法是我们在Abstracta上亲自尝试和测试过的,并且取得了不错的效果。
在不牺牲质量的情况下降低软件测试成本的方法
由于新型冠状病毒及其对全球经济的影响,这些天,我的同事们和我一直在思考如何才能帮助客户和其他人找到降低测试成本而又不降低产品质量的方法。而且,我们敢说,甚至可以减少不得不放弃有价值的团队成员的需求。在某些情况下,在许多行业中,后者是不可避免的,但重要的是首先尝试尽可能地控制或优化成本。
在本文中,我们将分享一些降低软件测试成本的方法,这些方法 是我们 在Abstracta上亲自尝试和测试过的,并且取得了不错的效果。
优化测试成本
尽快测试
就像对早期发现疾病进行测试很重要一样,在小问题(错误)开始发展成更大(且昂贵)的问题之前,对软件进行早期测试也很重要。通过应用左移测试方法,由于可以跟踪测试人员的学习曲线,从而提高了测试效率。提早提出问题,例如“如果……会发生什么?”将有助于改善要求并减少返工量。
注意文档
请注意记录了多少测试(需求以及其他内容),请保持良好的平衡。更多的文档资料可帮助新人们更快地学习,有助于澄清问题,并能以黑白方式讨论问题。另一方面,它使过程变得不太灵活,增加了维护成本,以使文档不断更新以适应不断变化的需求。我们力求找到合适的平衡点。
对所有内容进行基于风险的测试
考察风险,我们发现它由两个因素组成:某件事发生的可能性和可能产生的(负面)业务影响的程度。基于风险的测试都是关于确定优先级、确定优先级和确定优先级的。关键的事情说三遍!应用帕累托原理,哪些是可以减轻80%风险的20%的测试用例呢?
使用生产信息来改进测试
虽然左移测试是势在必行,但是右移测试也是非常重要的。这种方法旨在避免让您的用户成为唯一在生产中测试您的软件的人!
例如,如果您想查看电子商务网站上哪些区域的访问量最大(因此应进行更严格的测试),那么它便是真正的用户行为有用信息的一种来源。您还可以检查Google Analytics(谷歌分析),以了解大多数用户从哪个设备,操作系统版本或浏览器访问您的网站,从而可以在测试中模拟这些行为。
获取生产信息的另一个示例是在性能监视工具中进行调查(例如使用您最喜欢的APM工具——应用性能工具),以了解代码中的每组更改如何影响性能。
优化自动化成本
在API级别而不是UI级别进行自动化
尽管需要初始投资,但如果明智地运用测试自动化,仍可以提供巨大的投资回报。
您应考虑应用程序的不同层,决定在哪个级别上将投入更多精力进行自动化。对于我们的测试人员,我们可以在UI级别或API级别实现自动化。
一种可能的策略是从要使用最常用数据在UI级别上测试的功能或用户故事的主要流程自动化开始。然后分析在该流程中调用了哪些端点。在API级别为每个端点添加自动化测试,并使用不同的测试数据扩大覆盖范围,进行有趣的组合。这些测试运行起来更快,更强大(维护更少)并且运行更快。另外,还有一些免费工具可以执行这些操作,例如Postman和SoapUI。
考虑迁移到开源工具
如果您要支付非常昂贵的工具许可证,则可以考虑使用开源许可证。开源测试工具提供了高度的灵活性,并且已经达到了成熟的水平,如今这些工具对它们有更多的信心。
随着开源社区的显着扩展,成千上万的贡献者正在与全世界共享其附加组件和解决方案,从而使每个人的生活变得更加轻松。
例如,如果您今天有LoadRunner进行性能测试,则可以轻松迁移到JMeter或Gatling,从我的角度来看,这要好得多。
需要注意的重要一点是,在许多情况下,这确实意味着将您在一个工具中设置的内容迁移到另一个工具上的大量初始投资,但是从长远来看,这将节省成本。在其他一些情况下,可以自动完成迁移。例如,BlazeMeter提供了一个转换器,可以帮助您从LoadRunner迁移到JMeter。
优化基础架构和工具成本
查看许可和订阅
在投资充裕的时期,我们不太关心投资,尤其是小型投资。您会看到一个工具,一个成员资格,对一项服务或杂志的订阅,然后您就注册了,没有问题,因为它处于一定阈值之内。当处于危机中时,有必要审查并削减不必要的内容。
在这里工具很重要。分析您要购买的工具的实际用途,并可能进行调整以更好地满足您的需求。例如,检查您日常使用的功能以及不使用的功能,看看是否有一种较便宜的计划可以满足您所需的大多数功能。
查看云中虚拟机的使用
您可能拥有正在使用的基于云的虚拟机(例如Amazon、Azure等的实例),并且可以通过某种方式(具有两个很少使用的系统的单个实例等)进行优化,或者关闭您每月只使用几次的服务。
优化培训成本
鼓励内部知识共享
在Abstracta,我们非常注意如何培训测试人员。对于我们来说,这是我们运营的重要组成部分,因为我们一直在努力帮助测试人员(尤其是初级测试人员)成长(因为高级测试职位可能很难胜任)。由于我们的培训很不错,因此我们更倾向于雇用有潜力和态度好的人。我们当中许多人都有教授大学课程的经验,我们甚至已经启动了在线学习平台Abstracta Academy。
当涉及外部供应商提供的昂贵培训包和研讨会时,我们通常只注册非常特定的主题,并且主要是针对我们公司中担任高级职务的那些人。原因是我们的技术领导者和高级测试人员将有最大的机会充分利用这些培训,然后他们可以将所学的知识传播给其他人。
在同样的想法下,我们相信大三学生可以从团队的其他成员中学到很多东西,因此我们的目标是直接从大四学生那里接受培训。这不仅可以帮助我们减少外部培训的成本,还可以使老年人发展重要技能,例如沟通、领导才能和公开演讲等。
考虑在线培训平台
正如我提到的,我们全力以赴并建立了在线平台,都是在科德亚等国家,有许多软件测试和开发课程的价格合理,而且还免费提供了优秀的课程。
优化流程成本
最后但仍然很重要的一点是,流程效率低下会导致浪费——浪费时间和金钱。因此,以下是一些可以改善流程的方法:
分析开发过程中产生等待周期或瓶颈,依赖关系,不必要的累积等的部分。
分析沟通渠道和可能发生的问题(总是存在沟通问题),以找到改进和澄清,避免返工,错误等的方法。
采取敏捷方法。这意味着避免在没有反馈的情况下规划大型开发周期。旨在进行短时间的迭代,并经常与用户或客户检查是否满足期望。在每次迭代中分析团队的工作状况,旨在进行回顾性分析,以便将来进行改进。
对重复发生的错误进行根本原因分析,不仅要致力于解决这些问题,而且要了解其背后的“原因”,以免将来发生。
如果需要,外包软件测试
对于需要将注意力集中在核心竞争力上的公司而言,外包是理想的选择。如果您的团队在测试工作上不是很成熟,或者您的软件质量计划和决策没有达到预期的结果,那么寻求外部帮助而不是延长使用效率低下和无效的过程所花费的时间可能是明智的。
如果您内部没有足够的资源或技能,与直接雇用人员相比,这可能是一个更好的选择,因为可以节省间接费用,外包合作伙伴将随时准备就绪,并能够灵活,无缝地进行升级或降级。此外,当您从整个公司的集体专业知识中受益时,不仅可以从外包中提取附加值,还可以让他们奉献知识给您的测试人员,使他们从中受益。
最后,外包测试可以帮助您维持业务连续性。当您在公司内部雇用某人而他们离开您的公司时,或者如果他们是唯一负责测试的人并且他们休假,则您可能会捉襟见肘。当找到其他人担任该职位时,您必须重新进入整个培训过程。通过外包,服务提供商将准备好其他几名团队成员,并在需要时可以随时进行填补,并将为您提供培训和培训不同的测试人员的工作。
结论
这些只是我们想到的有关优化测试成本的一些重要事项。在进行任何这些更改之前,请确保与您的团队进行沟通,以便所有人参与其中。