软件开发想省钱,看看您的公司有没有在测试上做这四件事

分享:

  • Linkedin Logo
  • Twitter Logo
  • Facebook Logo
  • Mail Logo

软件开发团队面临诸多挑战,其中最令人头疼的问题之一便是如何提升并保持团队的开发速度。通常,为了交付更多或更快地完成任务,团队会选择扩充开发人员的数量来提升整体产能。

​然而,面对日益逼近的经济衰退,许多公司已暂停了招聘计划,聪明的团队不再仅仅依赖增加人力来提高成绩。以下四种项成本效益极佳的QA优化策略可供参考:

1. 如果您正在运行手动回归测试,那么是时候自动执行它们了


手动测试的短板在于其耗时较长,并且就成本而言,它并不擅长捕捉到其中的差错。人的错误也是难以避免的,计算机却专门为重复性测试而诞生。若要提升效率,自动化端到端回归测试或许是最佳的投入之选——您最终会因此得到更高质量的产品作为回报。


根据应用程序的规模大小,完整的手动回归套件可能需要耗费数天,甚至数周的时间。若由开发人员来执行此项任务,那就表示他们无法投入开发新功能。值得注意的是,开发人员的时薪并不便宜,那么,我们为什么要将如此珍贵的资源浪费在计算机能做得更好、更快的事情上呢?


现如今,开发人员至少能在他们测试自己的工作时修补错误。但假如手动测试由设计师、项目经理、客户支持人员或专门的测试人员来执行,那么他们就无缘享受这一优势了。倘若开发人员在开发过程中未能及时获取实用的错误报告,那么这些错误就会如蒸发般消失得无影无踪,而后续的冲刺则可能被错误修复的过程所束缚。


如果您决定自动执行端到端测试,有两种基本方法,每种方法都有自己的优点和缺点。


首先,我们要谈及的是使用开发框架进行编码测试。在这个领域中,有一个新起之秀——Microsoft Playwright,这是一个功能异常丰富且十分出色的框架,它的开源特性和持续的技术更新,使其逐渐成为Selenium和Cypress等传统测试框架的有力竞争者,甚至有可能成为它们的劲敌。编写和维护编码测试需要一定的技术能力,相对于其他类型的测试可能也更加复杂,但这些技术上的挑战与它所能带来的便利和效率提升相比,无疑是值得的。尤其对于那些需要高度自定义和复杂工作流的场景,编码测试能够发挥出无可比拟的优势


随后我们谈到了“无代码”或“低代码”工具,例如Rainforest QA或Ghost Inspector。这些产品专为非技术人群设计,通过点击界面就能创建自动化测试。它们犹如自动化之旅的启航者,以简便的姿态向新世界敞开,然而你可能会发现它们仅能应对一些简单的工作流程。同时,使用这些工具,就像踏入一片专有供应商的领地,你可能会发现自己被束缚在这个供应商的特定格式中。


无论选择编码测试还是无代码测试,团队都需创建并维护测试以及基础架构。


2. 如果您的开发人员正在编写自动化测试,请停止这项工作


第二个重要的问题是让开发人员编写和维护自动化的端到端测试。根据我们内部数据显示,公司每1名前端开发人员就需要2到5名质量保证工程师来确保高测试覆盖率。换句话说,每个开发人员必须投入20%到40%的时间才能在没有专用质量保证资源的情况下获得相同的结果


如果您想最大限度地提高稀缺(且昂贵)开发资源的速度,请将测试创建和维护工作交给经验丰富的 QA 人员。


一种方案是构建一个由QA工程师和SDET(可能加之以管理员)搭建的内部团队。这个团队将有助于您的研发人员将精力集中在功能开发上,同时提供及时的错误反馈。然而,当测试基础建设所产生的费用被计算在内时,相关成本可能会快速上升。请注意,随着产品规模的扩大,所需的测试用例以及维护这些用例所需的人员数量也会随之增长。如同照料植物一般,您需要精心呵护每一个测试用例,以确保产品的健康和稳定。在此过程中,选择合适的测试策略与人员配置至关重要。


3. 通过并行测试运行缩短测试周期


自动化端到端回归测试能够将QA周期从几天缩短到几个小时,为速度带来巨大的革新技术。然而,当面对大型测试套件、高频率部署的团队,或两者兼而有之的挑战时,自动化测试也可能成为部署流程的瓶颈。原因在于,多数公司的现实状况是只能一次运行10-20个测试。为了追求速度的极致,我们需要寻求一种策略,让所有测试能同时运行,这就是所谓的并行化。


您可以在同一时间并行运行这些任务,从而将QA流程缩短至几分钟,而不再是一个接一个地耗时数小时进行测试。此外,这也意味着您的开发团队可以更快得到代码的反馈,构建服务时间也将会减少。


因此,若要实现这一目标,您必须做出一些至关重要的投资。其中一项可选方案是加强内部基础设施。我们强烈建议您采用Kubernetes作为后端平台,以便动态分配资源,并确保至少有一名全职员工负责管理


另一种选择市场上的云服务来为您提供基础架构,但您可能会发现运行整个测试套件的成本超出了预算。



4. 减少碎片化测试


我们习惯于抨击碎片化覆盖为虚假的繁华,其原因在于这种测试方式往往会为开发人员带来大量的干扰,使他们不得不花费宝贵的时间去探寻代码中的真正错误所在,进而拖慢了整个开发进程。


碎片化测试是有时通过,有时失败的测试,即使应用程序或测试本身没有任何更改。由于网络中断或难以重现的竞争条件等间歇性站点问题,一些不稳定是不可避免的,但是当开发人员无法获得始终如一的准确结果时,他们必须回退到缓慢、容易出错的手动测试。


遗憾的是,我们常常会遇到这样的问题:被碎片化的覆盖问题简直成了家常便饭。不少客户反映,他们在一开始明明有着相当完备的测试覆盖率,却无奈随着时间的推移,无法一如既往的保障测试质量,连速度也无法按他们预期的那样推进。由于测试工作中途会遇到各种失败或者直接罢工的情况,他们不得不选择暂停这些测试(当然,这样的做法无异于掩耳盗铃,只会滋生更多的错误,进一步拖慢开发进度)


为了提高测试效率并保持其准确性,自动化测试套件务必做到两点:一是运行要快,二是误报率要低。他们就如同一名向导,必须引导开发人员发现那些真实的、经得起推敲的错误,而非误导他们。在这过程中,他们还需斩断各种干扰因素,犹如挥舞一面精准的筛子,滤掉沙石,只留下金子般的错误。


分享:

  • Linkedin Logo
  • Twitter Logo
  • Facebook Logo
  • Mail Logo