ByLenaYakimova译者|进入SDLC。本文将向您介绍在每个开发阶段应引入哪些QA活动。几乎无可争辩的是,速度和创新是高效产品交付的支柱,有助于在当今市场取得成功。凭借顺利引入新技术和更快发布有用软件的能力,公司正在从COVID-19大流行及其后果中恢复并适应“下一个常态”。为了有信心地做到这一点并保证软件满足计划的业务需求,有远见的公司将QA引入软件开发生命周期(SDLC)。QA是所有流程阶段不可或缺的一部分,有助于避免在修复关键缺陷、提高软件可靠性和安全性以及降低系统突然停机风险方面的不可预见成本。除了改进功能之外,QA还衡量将功能以当前状态发布到生产环境、提高客户忠诚度和促进整体销售的业务影响。那么,每个开发阶段应该引入哪些QA活动呢?让我们来看看本文中的答案。SDLC4个阶段的必要最佳实践瀑布、敏捷、快速应用开发(RAD)、螺旋模型……根据方法和产品的特性,开发过程中的不同阶段略有不同。但无论您的公司坚持哪种方法,在每个SDLC阶段进行测试都变得至关重要。举个真实案例:几年前,三星召回了250万部Note7智能手机,价值数十亿美元。这都是因为软件缺陷——电池管理系统的瓶颈——负责监控和停止充电过程,导致过度充电和爆炸。不幸的是,这种情况经常发生。因此,为了最大限度地提高开发效率并减少因修复后期发现的缺陷而造成的财务和声誉损失,我建议在每个基础开发阶段考虑必要的QA活动。1.需求收集如果不了解目标受众、应用程序解决的问题、性能、安全性、合规性和许多其他标准,就不可能规划开发和测试工作。考虑到修复缺陷的成本在每个阶段呈指数增长,QA工程师进行需求测试以从一开始就减少返工,并发现IT解决方案业务逻辑中的错误、歧义或不一致。测试需求时,专家确认产品的功能、UI、必要的软硬件标准一致、清晰、无错误。这允许进一步创建无故障的测试计划、测试用例、用例、可追溯性矩阵和其他工件。然而,测试只是成功的一半。测试文档的标志是它的动态特性。如果没有任何因需求变化、优先级转移或不断将新代码投入生产而导致的更新,它会逐渐变得毫无价值。因此,除了测试之外,QA团队还必须使测试文档保持最新,以消除任何流程故障。二。分析和设计根据前一阶段的结果,开发团队设计即将推出的应用程序的架构并创建其原型。为了确保产品的商业成功,QA团队首先进行原型测试,根据客户反馈尽早发现SDLC中的问题,并在开发开始之前进行必要的更改。通过专注于识别稍后可能导致系统故障的逻辑缺陷,工程师可以显着减少额外软件创建过程所需的时间和财务工作。特别注意原型的可用性测试。这只是交付引人入胜的设计的第一步,必须考虑一些限制,因为它们可能会影响此阶段的测试结果。例如,构思不佳的一系列颜色可能会在屏幕上缺乏直观元素,从而使产品使用变得复杂。牢记它们将帮助您确定需要哪些测试并更好地处理结果。3.软件开发让我们看看软件测试活动如何有助于交付完美的产品。例如,单元测试单独验证系统中可以逻辑隔离的每个应用程序组件,以确保其按设计运行。通过适当的单元测试,开发人员可以自信地实施代码重构,使工作流程更加敏捷,及早发现软件问题,确保简化集成和调试过程,并大大降低修复缺陷的成本。经过测试的单元现在形成模块,进而创建一个完整的系统。在单元测试之后,集成验证帮助软件工程师确保这些由不同团队编写的系统组件彼此和谐地融合在一起。敏捷和DevOps生态系统中的单元和集成测试通常可以自动化,以显着减少测试时间、最大化测试覆盖率、多次重用相同的测试用例并避免人为因素。当开发人员专注于执行单元和集成测试时,QA团队创建测试工具以确保高质量的软件并为发布准备功能。为了取得成功,这里有10种类型的测试可能会派上用场,具体取决于产品的具体情况和业务需求:1.功能测试从一开始,功能测试就确保没有可能阻碍进一步测试的关键问题,并确保最最近添加的功能已经完全实现,不会影响产品的逻辑。2.性能测试QA工程师通过服务器端性能测试,评估系统是否能够承受负载,发现其弱点,并提供详细的改进建议。这有助于降低软件TCO并建立有效的性能监控。客户端性能QA测量HTML页面加载和呈现时间,并确定影响客户体验(繁重的界面、较长的响应时间、较差的整体性能)并妨碍与您的品牌进行愉快互动的问题。3.网络安全测试基于OWASP方法论的手动和自动漏洞评估,可以发现安全漏洞,确保对用户敏感数据的高级别保护。通过尽早将最佳安全实践融入SDLC,公司可以最大限度地降低恶意入侵者执行攻击的风险并挽救他们的声誉。4.自动化测试由于快速质量是敏捷方法论和高效产品交付的基石,因此采用自动化测试是更快地构建、测试和交付高质量软件的方式。为了实现这些目标,QA工程师定义自动化和工具包的范围,实施所需的框架,配置环境,准备测试数据和开发脚本,分析测试结果,并提供自动化测试的全面支持和监控。5.跨浏览器测试确定应用程序是否可以在不同浏览器中无缝运行,这有助于提供引人入胜的用户体验并扩大目标受众。为此,QA工程师分析不同地区的浏览器使用统计数据,选择最流行的变体,并执行测试以确保一致的软件操作。6、兼容软件的跨平台测试操作系统越多,公司能吸引的客户就越多。因此,QA供应商执行测试以发现操作系统级别的性能、UI不一致和特定于平台的错误,并确保软件按照最低系统要求设计工作。7.移动应用测试根据Statista的数据,到2023年,移动应用将在全球带来超过9350亿美元的利润。随着全球下载量的增加,市场竞争的激烈迫使公司更多地考虑其质量并引入QA。为了提高结果的效率和准确性,提供商会在真实设备上进行测试。8.无障碍测试WHO指出,全球有超过10亿人(占世界人口的15%)患有特定的身体或认知障碍,因此设计适合所有社会群体的软件成为首要目标。通过验证其是否符合WCAG2.1或AODA等国际标准,公司可以迎合其目标受众并扩大其客户群。9.本地化测试面向国际市场的软件首当其冲满足特定国家的语言、文化和区域要求。为了定制产品以便目标受众将其视为满足其需求的独特解决方案,QA工程师关注:当地法规(例如遵守数据隐私法)文化方面(例如避免冒犯性符号或不适当的颜色)用户体验(例如,日期、地址和货币的布局)视觉材料(例如,必须满足文化期望)脚本(例如,从内容到UI的所有内容都根据既定的语言规则显示)10.可用性测试通过以评估用户适应应用程序编程和执行不同任务的简便性,QA工程师可以发现他们在原型制作过程中可能忽略的缺陷,以确保用户过程尽可能透明、直观和简单。4.部署和维护在期待已久的发布之前,必须进行用户验收测试,以确保软件已准备好投入生产,满足所有用户需求和业务需求,并保证漏掉任何缺陷的可能性最低。一旦满足UAT推出标准,团队就会发布该功能。通常每个公司都会设置自己的指标,例如成功完成测试的数量或已识别的不同严重性问题的百分比。一旦发布结束,就会推出新功能,这意味着每次将代码更改交付到生产环境时,QA团队都必须执行回归测试,以确保软件的修改部分不会影响现有功能。通过分析潜在风险区域并执行多轮(最多三轮)回归测试和中间缺陷验证,QA工程师可以提高软件质量并稳步改进软件应用程序。使用QA构建可靠的IT产品为了提供吸引目标受众的引人注目的软件解决方案,公司可以将QA融入整个软件开发生命周期,而不是让QA工程师在开发完成后完成大量任务。因此,公司在整个核心SDLC阶段坚持的基本质量保证实践应包括:计划期间的需求测试、设计过程中的原型制作和可用性验证测试部署期间开发阶段的文档创建和全面测试以提高产品质量并在后支持阶段发布UAT和回归测试当QA应用于复杂环境时,这些努力可以帮助组织减少运营费用,因为他们可以及早发现软件问题,从而最大限度地降低修复成本并提高开发速度,并且从一开始就进行了全面的测试,因此返工的可能性很小。译者介绍朱刚,社区编辑,2019年CSDN博客高手20强,2020年腾讯云+社区优秀作者。10年一线开发经验,曾参与猎头服务网站架构设计、企业智能客服、大型电子政务系统开发。主导某大型国有企业内部防泄密及电子文档安全监控系统建设,目前在某知名BIM公司从事招投标软件开发工作。原文链接:https://dzone.com/articles/qa-to-support-software-development-life-cycle-best【翻译稿件,合作站点转载请注明原译者和出处.com】
