51Testing软件测试论坛

标题: 分享最佳实践综合指南 [打印本页]

作者: lsekfe    时间: 2023-6-7 09:47
标题: 分享最佳实践综合指南
左移测试方法包括将测试活动“左移”或在开发周期中相对早期地移动。因此,测试人员在软件开发生命周期中参与得越早,使他们能够在更早的阶段识别缺陷和瓶颈。除了提高代码质量和减少完成周期所需的时间之外,它还有助于确保在生产中引入更少的缺陷。
  很多企业不断面临着在敏捷环境中更快行动的挑战。通常情况下,这需要缩短交付时间,同时以更低的成本提高每个后续版本的质量。
  敏捷开发计划优先考虑更短的sprints,并计划尽可能快地将客户反馈合并到功能中。然而,这样的进步如果遇到了严重的质量问题,将让客户感到不满。在此之后,测试和质量出现了漂移,“快速移动和突破”不再可持续,测试成为了一个重要的绊脚石。  
  在传统模式中,测试人员通常在开发之后开始测试。为此,出现了一种被称为左移测试的质量保证技术,它具有诸如节省成本和提前检测缺陷等优点。  
  一、左移测试的由来
  左移方法促使人们重新思考如何处理软件质量改进。早些时候,在瀑布方法中,开发人员和质量保证专家在具有不同角色和职责的团队中工作。即使在敏捷方法中,测试也通常排在最后。
  左移测试的思想旨在将测试阶段引入软件开发生命周期(SDLC)的早期阶段。因此,团队可以更有效地协同工作,并定期相互沟通。因此,左移是早期将测试和开发结合在一起的常见术语。  
  可以考虑一个一切都是由开发人员完成的这样一个场景。他们将工作移交给测试团队,从系统测试开始,然后开发团队开始开发新的项目。在质量保证(QA)测试期间,测试中出现的错误必须在发布到生产环境之前加以修复。在这种情况下,开发人员继续完成当前的任务,并集中精力修复上一个项目中的缺陷和错误,以缓解最后交付期限,否则部署将不得不等到新的发布周期。而这是额外的时间投资!
  左移方法旨在通过在生命周期的早期将任务移到左边来提高质量。它在软件开发生命周期的早期通过重复测试和检测问题以及早期最小化风险来整合测试。因此,与在开发结束时开始测试的典型测试方法相比,测试可能是一种更现实的检测产品缺陷的方法。

  二、SDLC后期测试的影响
  在生命周期后期发现的缺陷更为复杂且修复成本更高。这就是在瀑布式方法结束时将测试视为一个顺序阶段被认为是软件测试的一个主要陷阱的原因。
  以下是开发周期进行后期测试的影响:
  ·测试人员可能较少参与初始计划,导致分配的测试资源不足。  
  · 许多需求、架构和设计缺陷直到在实施上花费了大量精力才被发现和纠正。
  · 随着越来越多的软件被创建和集成,调试变得越来越困难。  
  · 测试自动化的时间更短,这最终会导致缺陷回归。
  · 封装使得白盒测试和在测试期间实现高水平的代码覆盖率变得更加困难。  
  · 修复在测试中发现的缺陷的时间更少,增加了在以后的系统升级中被推迟的可能性。  
  · 延迟测试影响开发和维护成本,导致错过最后期限和项目延迟,并由于残留缺陷而降低质量。  
  · 由于软件存在缺陷,客户最终用户体验不佳。
  三、为什么进行左移测试
  在传统的瀑布模型中,在开发周期结束时进行测试,一些严重的缺陷经常被忽略。在开发流程结束时修复这些关键的缺陷是困难和昂贵的。随着漏洞的发现,修复它们的成本呈指数级增长。
  然而,通过让测试人员更早地参与到开发周期中进行左测试有助于减少与发现和修复缺陷相关的成本。因此,对项目的可交付成果没有延迟或影响,并且提高了客户满意度。
  以下是导致左移快速发展的一些因素:
  · 通过将编码和测试结合起来,左移方法减少了代码的不安全性。同时也提高了工程师的工作效率。  
  · 左移方法使工程师能够通过持续集成(CI)和测试自动化来快速测试代码。这允许团队朝着持续测试和CI/CD管道开发他们的软件开发生命周期(SDLC)。  
  · 在产品开发生命周期中几乎立即发现缺陷。  
  · 通过几乎立即识别缺陷来减少处理缺陷的成本。  
  · 在产品开发生命周期中几乎立即发现缺陷。  
  · DevOps中的左移测试带来了一个更重要的项目。这就建立了消费者的忠诚度并提高了业务成果。
  · 由于代码包含较少的缺陷修复和代码修复,因此可以获得更重要的项目。
  · 减少项目超出事件评估过程的可能性。  
  · 由于代码稳定并在财务计划中传达,因此提高了消费者忠诚度。  
  · 保持更大的代码库。
  · 通过在开发周期之前的测试,团队可以更快地发现代价昂贵的问题。这样可以节省时间和成本。  
  · 左移方法允许团队更有可能为他们的企业设计整个测试扩展。
  四、在测试中左移的好处
  左移不仅能更早地找到缺陷,它还可以帮助团队更好地与所有利益相关者合作,提高集体能力,并制作更现实的测试用例,以确保无缺陷的交付。左移测试带来了一些企业文化上的好处,因为它强调了敏捷宣言中众所周知的原则:
  · 根据计划应对变化。
  · 客户协作优先于合同谈判。  
  · 工作软件胜过全面的文档。  
  · 流程和测试工具之上的交互和个体。
  以下是左移测试的几个显著优点:  
  · 改进了客户和用户体验:左移促进高质量的代码和按时交付,减少修复缺陷,创建一个更集中的以客户需求为中心的环境,从而带来更好的产品设计和用户体验。  
  · 早期缺陷检测:早期的、渐进的、持续的测试可以在缺陷导致生产问题之前减少它们的数量。  
  · 增强覆盖范围:左移测试的额外优势是增加了测试覆盖范围。如果有更多的人更频繁地创建测试并更早地开始,那么测试将对软件进行更大比例的评估。  
  · 显著的成本节约:早期检测显著地提高了效率,减少了技术债务,降低了修复缺陷所需的工作量、时间和成本。
  · 改进了软件团队文化、能力、士气和员工忠诚度:让交付团队中的每个人都参与测试活动需要左移。企业团队不再在发布前的最后一刻匆忙讨论和执行测试。
  · 帮助重塑产品开发:测试中的左移并不意味着没有在生产中进行测试,也不意味着测试完全转移到软件开发生命周期的设计阶段。左移将测试注入到每个sprint中。一些测试仍然应该在最后进行,但应该是剩余的一些。
  五、当左移时会发生什么?
  在左移方法中,测试人员直接了解测试版本的最终标准。例如,测试人员可能会意识到,当他们了解产品规格说明时,与组件和系统开发人员密切合作会更有效。他们可以提出探索性的问题,与API开发人员沟通,并为新服务创建测试存根。当测试人员积极参与这些早期阶段时,他们最终会“向左移动”。  

  以下看看当在测试中采用左移方法时会发生什么。  
  1.设计阶段
  传统上,产品设计团队会等到他们有了大量的新功能,然后开始漫长的设计过程。在此之前,测试人员可能对新功能正在进行开发的事实并不关心。在现代软件开发中,可以通过引入以下问题来测试新的功能想法。  
  该功能的用途是什么?它为客户解决了哪些问题?
  如何知道这个功能成功地满足了客户的需求?  
  可以构建并用作“学习版本”以确保其交付价值的功能的最小部分是什么?  
  当人们使用这个功能时,最糟糕和最好的事情是什么?
  2.持续使用测试来指导开发
  这是一个典型的“左移”场景:一家企业的团队决定构建一个功能,并且正在与交付团队在计划会议中进行规范讨论。只是问“我们将如何测试这个?”这样的问题就会引发富有成效的讨论,因为它可以帮助人们理解这一功能,并可能导致在单元、集成、系统级别/API、用户界面(UI)或其他适用级别为这些故事进行测试。
  3.设计测试计划
  与正式的测试计划不同,团队可以在创建每个故事时捕获一些期望的和不希望的行为实例。然后,把它们变成测试。团队可以运行它并帮助开发。
  这些测试将成为详细的文档,说明该功能在生产环境中是如何工作的,自动化的回归测试可以确保未来的更改不会破坏它。增加团队准确交付客户所需的机会的一种方法是,在构建每个功能时,考虑更多的测试用例来自动化或人工探索。  
  尽早且经常进行测试,尽早且经常自动执行
  敏捷开发的好处是可以随时实现自动化。可以为一个功能编写最基本的测试,即使还没有完全开发它。也可以为该功能向产品和测试代码中添加增量测试。可能需要更多的返工,更多的关于如何编写可维护的测试的知识,当测试人员、开发人员和其他团队成员协作在编码过程中自动化测试时,需要等待更多的问题得到回答,而这与瀑布过程的交接有很大的偏差。
  4.不仅仅是与测试人员有关  
  左移方法是软件团队都参与其中的一种技术。以下是每个角色需要做出的一些调整:
  测试人员:积极参与设计阶段。要构建测试,不应该等待代码。尝试将这些代杩分成几个可测试的小块,以保证测试的成功。  
  开发人员:参与关于测试策略和计划的讨论。企业投入可能有助于减轻测试团队的负担,并降低技术债务。将企业的自动化测试套件作为代码库的重要组成部分进行维护。  
  产品经理:确保企业的团队能够获得合适的资源来进行合作并获得反馈。设定与左移策略相一致的目标和期望。这可能需要为整个团队设定质量目标,并减少每个sprint的功能工作。
  基础设施和部署团队:企业的部署管道需要尽早可用,并且具有高容量,以便测试套件能够快速运行,因为测试需要频繁和早期地发生。






欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2