测试演变为质量工程之后,产生了哪些新思想和新方法?

2021-08-26   出处: 软件质量报道  作/译者:Accenture/软件质量报道

        【译者按:本文来自埃森哲实验室,介绍了如何从五个维度(数据、框架、过程、技术和组织)将测试从传统的方式转向适应未来应用工程世界的新思想和新方法。

        近年来,随着DevOps和智能测试自动化的出现,以及数字化应用程序的激增,传统的软件测试方法已经被替代。随着交付时间从过去的几个月缩短到几周,现在又缩短到几天,测试在软件开发生命周期中向左、向右移动。DevOps和敏捷开发模式将开发和测试合并到一个持续的活动中,测试已经演变为质量工程,它作为应用程序开发计划的一部分,建立一个持续的反馈循环,可以对研发过程进行预测并提前采取行动。

        但要真正理解从软件测试到质量工程的发展,我们需要认识到数据是如何改变软件开发本身的。数据的力量远远超出了为重复开发和测试任务提供自动化用例和AI学习数据集的能力。用户每天产生的大量数据提升了质量工程师预测风险、识别机会、提高速度和灵活性以及最小化技术债务的能力。随着大量数据的涌入,质量工程师的角色变得更加激动人心,但也更加复杂。随着人工智能、边缘计算和大规模物联网终端数据集的发展,这种趋势将进一步加剧,这些数据集要求机器对机器(M2M)通信具有完全的自主性和故障保护。

站在质量工程的前沿

        在过去10年中,软件测试经历了巨大的变化:交付时间从几个月缩短到几天,DevOps和敏捷方法实现了融合,测试左移将测试活动嵌入到软件研发的计划阶段。而一系列新的转变将再次彻底改变质量工程(QE)。

        首先是质量方面的变化,极高的客户期望要求软件开发达到一个新的水平。事实上,我们需要忘掉自以为对质量工程所了解的大部分内容。今天,作为一种工程,质量不能简单的局限于确保软件能够工作,还应确保软件产品在高度竞争的、永远在线的数字化市场环境中提供差异化的用户体验。

        其次是技术方面的转变。随着新技术以前所未有的速度发展,软件应用的复杂性呈指数级增长,以至于变得难以捉摸。可伸缩的系统体系结构中引入了尖端技术,技术抽象层越来越复杂。为了适应这种情况,质量工程必须确保对软件应用进行持续的监控。随着新技术范式的出现,如区块链测试,质量工程必须具备灵活性,以适应核心技术频繁、突然的变化。这些核心技术包括边缘计算、工业X.0技术(结合人工智能、物联网和数字技术的智能自动化)、设备之间的通信连接和海量的物联网数据集。图1详细描述了目前质量工程所面临的各种业务和技术挑战。

        图1质量工程面临的挑战

        传统的静态脚本和基于工具的方法不适合这种新的多设备、多平台、弹性伸缩的应用工程环境。相反,企业必须确保最大限度地利用智能技术,特别是机器学习,以预测性能问题和服务中断。他们必须改进对持续监控和集成的使用,以开发自我管理、自我学习和自适应的测试功能。他们必须结合预测数据集使用连续负载测试模拟,以实现实时决策。

        第三个转变是人才的转变。软件应用的用户不再是旧系统中纯粹的消费者,他们已经成为复杂、不断变化的开发过程中的共同开发者和共同创新者,产生大量数据,为机器学习和自动化提供动力。此外,随着边缘计算和物联网的出现,将出现更多的海量数据集,要求M2M通信具有完全自主性和故障保护。

        这从根本上改变了SDET(测试中的软件开发工程师)的角色。他们必须不断成长,更加紧密地与业务目标保持一致,重新成为具有跨职能专业知识的测试设计专家,他们了解客户在开发过程中的关键角色。这种人才是不便宜的。通常情况下,企业必须支付额外费用才能雇到稀缺的跨领域专家,来覆盖现代软件开发中平台、设备、技术、数据和客户的多样性。

        最后一个转变是组织本身的转变。随着SDET角色的发展,随着质量工程不可逆转地变化,企业也必须这样做。组织必须获得新的敏捷性、灵活性和响应能力,以管理跨无国界企业的分布式、移动的工作人员,同时保持与明确的业务目的一致。

        为了适应这些转变,质量工程必须不断发展。简而言之,是时候将质量工程带入一个新的阶段。

将质量工程带入新时期

        随着质量、技术、人员和组织的变化,为了确保业务连续性和业务价值,质量工程将演变为一种普遍、实时和洞察力驱动的功能,由人工智能主导的自主框架加以增强。横跨五个维度:数据、框架、流程、技术和组织,软件测试将从传统的方式转向适应未来的软件应用工程世界的新思想和新方法

        ● 数据:来自大量新的企业渠道和设备的数据量和多样性呈指数级增长,将通过应用分析驱动“测试数据”向“测试洞察力”的转变。

        ● 框架:质量工程将逐渐超越功能/脚本驱动的方法,转向将开发人员、客户和最终用户联系在一起,让应用程序质量能够与业务需求保持一致的自主框架(超越DevOps)。

        ● 流程:重点将从基于问题的解决转移到实时监控和集成,使用智能身份管理实现任何技术堆栈的集成,并创建一个新的模式:“质量无处不在”。

        ● 技术:企业将在整个组织中创建一个普及的AI层,首先增强测试专业人员,然后实现真正的自我管理的QE功能,在整个系统中嵌入信任以防止意外偏差。

        ● 组织:SDET的角色将会进一步发展,测试将走出测试中心,由一系列行业、业务和技术专业知识组成的相互关联的虚拟团队,围绕着共同的业务目的,创建多种完全不同的“无壁垒组织”

        2新时期的质量工程

数据:应用分析

        应用分析将是新时期质量工程的关键。随着企业应用程序和渠道的数量和复杂性的增加,以及从大量连接的设备、平台和技术中涌现出新的测试数据源,测试数据的数量和准确性都将显著增加。此外,由于需要集成来自如此多设备、平台和技术的日志和事件数据,以及即将从二进制算法向量子算法的转变,测试数据点的数量和处理它们的复杂性将呈指数级增长。一个简单的事实是:今天的系统将无法跟上时代的步伐。

        为了适应这种情况,质量工程将把重点从数据的数量转移到数据的质量以及可以从中得出的见解。例如,不再简单地扫描所有可用数据,现在的重点将转移到能够提供关键性能认知/见解的、最有洞察力的数据。数据驱动的框架和高质量的平台将存储每个测试点和洞察力,从而能够实时预测应用程序缺陷。人工智能驱动的“测试数据即服务”将为测试系统提供分析功能,为企业开发新产品和服务创造一个平台。

框架:超越DevOps

        在新的框架中,质量工程将超越DevOps框架,着眼于能够真正关注业务需求的自主框架(即企业自主开发的框架)。大多数企业已经采用了敏捷的DevOps框架,这些框架采用测试左移、专门的自动化测试工具和持续集成,目的是将软件开发过程分解为更小的增量构建,并尽早和频繁进行测试。

        随着DevOps的不断发展,安全测试(DevSecOps)将嵌入到软件研发过程中。这将为质量工程带来高水平的自动化和监控,以确保软件应用可以从故障中恢复。随着对用户行为和业务价值等指标的日益重视,框架将再次演进,AI赋能的测试自动化应用于系统端到端面向业务的测试用例。

        最终,软件开发框架将变得高度自主,在整个复杂的应用程序环境中主动、全面地识别故障点,将开发人员、客户和最终用户聚集在一起,以确保应用程序始终符合实际业务需求。

        图3超越DevOps的自主框架的出现

流程:实时的AI驱动的监控和集成

        新技术的采用加速了对测试数据的高速访问,新时期的质量工程将实现基于AI的实时、持续的集成和监控。新的企业交互方式将通过虚拟和增强现实协作扩大测试服务,将测试专业人员转变为设计工程师。传感器技术将使虚拟化、数字孪生和更深入的测试模拟成为可能。使用区块链等技术的智能身份管理将嵌入智能合约,为分布式测试团队提供单独的测试标识符,并支持分布式应用程序的实时根因分析和无缝切换。

        随着边缘计算在企业中占据越来越大的地位,大量的新数据集将创建一种新的“质量无处不在、无所不包”的模式。其中,真正的端到端数据监控和日志记录以及分散的基于API的测试集成,支持对可能无限数量的设备类型和算法进行即插即用的软件应用测试。此外,由于量子计算创造了前所未有的处理能力,质量工程将获得加速的机器学习能力和优化测试计划和执行的新平台。事实上,量子计算将通过提供下一代质量工程算法所需的速度和准确性,成为未来质量平台的推动者

技术:自我管理

        人工智能将促进新时期的质量工程朝着自我管理的方向发展。在短期内,这意味着使用机器学习来增强测试人员识别系统缺陷、实现自动化环境部署、清理测试数据以及生成需求分析数据的能力。

        更进一步,这意味着利用AI对非结构化/复杂数据的不断发展的能力来创建自我监控系统,能够执行无脚本实时错误检查和故障保护分析,以及识别故障案例和生成测试mock。最终,智能技术将支持DevOps模式下的测试计划(包括时间和工作量估计)、持续监控和缺陷预测以及自然语言交互。总有一天,人工智能系统将使用自然语言处理来理解用户需求,并在没有人为干预的情况下为预期目的编写代码。

        开发AI支持的测试环境,其中的关键是测试AI系统本身,确保它能够提供预期的结果、负责任的行为,以及避免意外的偏见。用户是否采用AI质量系统取决于人们对于AI决策的信任及其决策的透明度。因此,在测试AI决策的质量时,只提供正确的结果是不够的,负责任地提供结果也是关键。这就产生了对于AI系统功能性和非功能性的测试需求。

        需要对AI系统进行分析,以确保其决策是一致、快速和准确的,同时符合企业的功能需求。虽然性能至关重要,但AI同样需要可靠、负责,并且能够扩展到基础设施或数据集,并且兼顾道德因素。它还需要解决未来在交互、产品和服务日益个性化的问题。

        然而,AI还需要测试一系列更广泛的要求。它需要遵守监管和法律环境,同时避免性别、种族、其他偏见和道德风险。它将需要与商业战略和品牌声誉保持一致,提供一个透明的测试过程来验证其决策。它需要从所处的环境中学习,以应对不断变化的社会结构,展示一种区分“对”与“错”的能力。

        4质量工程在自我管理方面的演变

        图5测试AI系统的功能性和非功能性需求

组织:无壁垒组织

        在新时期的质量工程中,业务将随之发展,打破壁垒和障碍,创造一种新型的无壁垒企业。以未来经济所需要的速度开展业务意味着涉及整个企业的所有干系人,并实现“零延迟”的决策。对于QE来说,这意味着创建相互关联的多学科设计团队,来自工程师、业务客户和最终客户的联合设计,专注于真正的满足企业需求。

        在这种环境下,机器人和广泛熟练的人力资源将在整个业务范围内无缝移动,确保持续集成/监控、QE指标和质量生命周期管理。虚拟员工、机器人、机器对机器边缘代理和“智能即服务”将与员工、众包资源、行业和技术专业知识以及客户/消费者“公民测试员”相结合,围绕业务的未来成功调整整个质量工程的流程。

参考

        2020年软件测试趋势报道:无代码化的测试自动化

        测试平台的发展与未来趋势


声明:本文为本站编辑转载,文章版权归原作者所有。文章内容为作者个人观点,本站只提供转载参考(依行业惯例严格标明出处和作译者),目的在于传递更多专业信息,普惠测试相关从业者,开源分享,推动行业交流和进步。 如涉及作品内容、版权和其它问题,请原作者及时与本站联系(QQ:1017718740),我们将第一时间进行处理。本站拥有对此声明的最终解释权!欢迎大家通过新浪微博(@测试窝)或微信公众号(测试窝)关注我们,与我们的编辑和其他窝友交流。
254° /2540 人阅读/0 条评论 发表评论

登录 后发表评论