• 如何优化软件测试成本


    本文分享一些降低软件测试成本的方法,利用这些方法可以取得了不错的效果。

    优化测试成本

    尽早测试

    就像对早期发现疾病进行测试很重要一样,在小问题(错误)开始发展成更大(且昂贵)的问题之前,对软件进行早期测试也很重要。通过应用左移测试方法,由于可以跟踪测试人员的学习曲线,从而提高了测试效率。提早提出问题,有助于改善质量并减少总体工作量。

    重视文档

    注意记录了多少测试(需求以及其他内容),请保持良好的文档详细程度平衡。更多的文档资料可帮助人们更快地学习,有助于澄清问题,并能以明确的方式讨论问题。另一方面,它使过程变得不太灵活,增加了维护成本,以使文档不断更新以适应不断变化的需求。力求找到合适的平衡点。

    基于风险的测试

    发现并重点考虑风险,它由两个因素组成:某件事发生的可能性和可能产生的(负面)业务影响的程度。基于风险的测试都是关于确定优先级,确定优先级和确定优先级的。应用二八原理,可以降低80%风险的20%的测试用例是什么?

    采用生产环境信息

    虽然这是势在必行左移测试,这也是非常重要的移位测试。这种方法旨在避免让用户成为唯一在生产中测试软件的人!例如:生产环境中进行自动化测试

    例如,如果想了解网站上哪些区域的访问量最大(因此应进行更严格的测试),那么它便是真正的用户行为有用信息的一种来源。您还可以检查用户访问数据分析结果,以了解大多数用户从何种设备,操作系统版本或浏览器访问服务,从而可以在测试中模拟这些行为。

    获取生产信息的另一个示例是在性能监视工具中进行调查或者采取第三方工具,以了解代码中的每组更改如何影响性能。

    优化自动化成本

    优先API而不是UI进行自动化

    尽管所有自动化都需要初始投资,但如果明智地运用测试自动化,仍可以减少投入成本并提供巨大的投资回报。参考:如何使用Selenium来计算自动化测试的投资回报率?

    测试团队应考虑应用程序的不同层,决定在哪个级别上将投入更多精力进行自动化。对于测试人员,可以在UI级别或API级别实现自动化(unit暂时不考虑)。要了解有关这些选项的优缺点的更多信息,请查看API自动化测试指南所谓UI测试

    一种可能的策略是从要使用最常用数据在UI级别上测试的功能或用户故事的主要流程自动化开始。然后分析在该流程中调用了哪些端。在API级别为每个端点添加自动化测试,并使用不同的测试数据扩大覆盖范围,进行有趣的组合。这些测试运行起来更快,更强大(维护更少)并且运行更快。

    迁移到开源工具

    如果测试团队使用商业软件,则要支付昂贵的工具许可证,则可以考虑使用开源许可证。开源测试工具提供了高度的灵活性,并且已经达到了成熟的水平,如今这些工具对它们有更多的信心。

    随着开源社区的显着扩展,成千上万的贡献者正在与全世界共享其附加组件和解决方案,从而使每个人的生活变得更加轻松。

    例如,如果今天有LoadRunner进行性能测试,则可以轻松迁移到JMeter,从金钱的角度来看,这会节省很多成本。

    需要注意的重要一点是,在许多情况下,这确实意味着将您在一个工具中设置的内容迁移到另一个工具上的大量初始投资,但是从长远来看,这将节省成本。

    优化基础架构和工具成本

    查看许可和订阅

    在预算充裕的时期,我们不太关心投资的极限回报率,尤其是小型投资。如果看到一个工具,一个会员资格,对一项服务或知识付费的订阅,然后您就加入了,没有问题。当处于危机中时,有必要审查并削减不必要的内容。

    工具在这里很重要。分析购买的工具的实际用途,并可能进行调整以更好地满足实际的需求。例如,检查您日常使用的功能以及不使用的功能,看看是否有一种较便宜的计划可以满足所需的大多数功能。

    查看云中虚拟机的使用

    很多团队拥有正在使用的基于云的虚拟机,并且可以通过某种方式(具有两个很少使用的系统的单个实例等)进行优化,或者关闭每月只使用几次的服务,例如镜像备份,多节点冗余备份等。

    优化培训成本

    鼓励内部知识共享

    很多公司都非常注意如何培训自己的测试人员,这是团队管理的重要组成部分,因为公司努力帮助测试人员(尤其是初级测试人员)成长(因为高级测试职位可能很难胜任)会得到更多回报。很多公司并除了注重内部培训意外,还会倾向于邀请其他公司或者培训机构的讲师来进行现场演讲和教学,还可以提供资金支持成员在各类学习网站学习所需技能。

    当涉及外部供应商提供的培训和研讨会时,通常团队只关注特定的主题,并且主要是针对公司中担任高级职务的那些人。原因是我们的技术领导者和高级测试人员将有最大的机会充分利用这些培训,然后他们可以将所学的知识传播给其他人。

    在同样的想法下,我们相信初级测试工程师可以从团队的其他成员中学到很多东西。这不仅可以帮助我们减少外部培训的成本,还可以使高级测试工程师发展其他重要技能,例如沟通,领导才能,公开演讲等。

    考虑在线培训平台

    正如前面提到的,有些公司会根据自己的情况定制一些在线课程,或者提供金钱和时间支持成员在在线学习平台上找到自己需要学习的技能的课程,这是一个非常不错的实践。

    优化流程成本

    最后重要的一点是,流程效率低下会导致浪费时间和金钱。因此,以下是一些可以改善流程的方法:

    • 分析开发过程中产生等待周期或瓶颈,依赖关系,不必要重复工作等的部分。
    • 分析沟通渠道和可能发生的问题(总是存在沟通问题),以找到改进和澄清,避免无用功、错误等的方法。
    • 采取敏捷方法。这意味着避免在没有反馈的情况下规划大型开发周期。旨在进行短时间的迭代,并经常与用户或客户检查是否满足期望。在每次迭代中分析团队的工作状况,旨在进行回顾性分析,以便将来进行改进。
    • 对重复发生的错误进行根本原因分析,不仅要致力于解决这些问题,而且要了解其背后的原因,以免将来发生。

    如果需要,外包软件测试

    对于需要将注意力集中在核心竞争力上的公司而言,外包是理想的选择。如果当前的团队在测试工作上不是很成熟,或者软件质量计划和决策没有达到预期的结果,那么寻求外部帮助而不是延长使用效率低下和无效的过程所花费的时间可能是明智的。参考:软件测试外包

    如果内部没有足够的资源或技能,与直接雇用人员相比,这可能是一个更好的选择,因为可以节省间接费用,外包合作伙伴将随时准备就绪,并能够灵活,无缝地进行升级或降级。此外,当整个公司不仅可以从外包中提取附加值,还可以从他们提供专业知识给内部测试人员受益。

    最后,外包测试可以帮助维持业务测试连续性。当公司内部雇用某人离开公司时,或者如果他们是唯一负责测试的人并且他们休假,则团队某项工作将会面临真空期。当找到其他人担任该职位时,公司又必须重新进入整个培训过程。通过外包,服务提供商将准备好其他几名团队成员,并在需要时可以随时进行填补,并将提供培训和培训不同的测试人员的工作。


    • 郑重声明:公众号“FunTester”首发,欢迎关注交流,禁止第三方转载。更多原创文章:FunTester十八张原创专辑,合作请联系Fhaohaizi@163.com

    热文精选

  • 相关阅读:
    Linked List Cycle leetcode java (链表检测环)
    Remove Duplicates from Sorted List II leetcode java
    Remove Duplicates from Sorted List leetcode java
    Merge Two Sorted Lists leetcode java
    Swap Nodes in Pairs leetcode java
    Median of Two Sorted Array leetcode java
    阿里云最便宜的四种域名注册
    nohup和&后台运行,进程查看及终止
    ipv6转ipv4 NAT64与DNS64基本原理概述
    ros使用pppoe拨号获取ipv6,并且下发IPV6的dns到客户机win7
  • 原文地址:https://www.cnblogs.com/FunTester/p/13037427.html
Copyright © 2020-2023  润新知