软件测试和质量保障人员的职责已从单纯的缺陷发现转变为客户满意度和业务成果的推动者了,这是个根本性的转变。
它所带来的影响可以从今年这份质量报告的多个部分体现出来,而最能体现这个转变的是质量保障和测试的目标,受访者认为目前质量保障和测试策略的最高目标是“确保终端用户的满意度”。不断增长的以客户为中心推动的IT趋势也正在改变软件质量保障的目标和期望,比如业务数字化和敏捷、DevOps、云服务的采用。
“以客户为中心”要求我们的IT系统能够在速度、安全和便利性方面增加用户满意度,对应的关键IT趋势有以下几个方面。
趋势1:AI在质量保障和测试中的作用AI的发展对于质量保障和测试主要有两个方面的影响:一方面,AI会促使企业将测试转变成完全自生成、自执行和自适应的活动,也就是用AI技术来优化测试;
另一方面,AI产品的开发需要一种新的特殊方法来验证和校验,就是对AI产品的测试。这两个方面正好是互补的,相互促进的过程。
AI在测试中的运用还处于初始阶段,有组织开始应用智能分析来制定关键决策以优化测试活动和早期的质量预测:
57%的受访者表示有项目引入了AI到质量保障中
45%的受访者在测试中采用AI做智能自动化
36%的受访者正在使用AI做测试的预测分析
对于AI产品的测试还没有具体的、广泛被采用的方法、指南或方案,57%的受访者表示正在试验AI和ML(机器学习)的测试方法。
将AI技术用于IT也存在不小的挑战,55%的受访者表示他们在定位哪些业务可以用到AI技术的时候遇到困难;将AI技术用于测试则可能需要一些新的角色,比如AI质量保障战略家、数据科学家、AI测试专家等。
尽管挑战重重,AI还是有望成为接下来两到三年内最大的趋势,组织需要从以下几个方面考虑AI策略:
要达到一定级别的自动化测试成熟度
要实施分析(Analytics)技术
实现能够自我学习、自我认知的系统并应用于测试中
趋势2:敏捷和DevOps“速度上的质量”宣言推动着敏捷和DevOps逐渐被采用,有多达99%的受访者称他们至少有一些项目在采用DevOps。但是,有些组织以质量为代价去追求速度,这样是不妥的。也有的组织认为敏捷与瀑布共存的模式比较适合他们的组织、文化和业务的需求。
敏捷和DevOps的转型打乱了原来的质量保障和测试部门,所有人都分散到不同的敏捷团队中,这样使得技术、最佳实践和测试场景的跨项目共享很难,从而有不同团队重复造轮子的事情发生。以角色组成的社区(Community),比如QA社区,很好的解决了这个问题,可以在社区内做到知识共享、能力共建。
趋势3:自动化软件质量保障和测试活动的自动化已经有十多年的历史,测试自动化也从测试执行的自动化发展到了采用基于模型的工具来自动化生成测试用例。自动化的目标也从缩短运行时间转变成了采用更有效的测试用例实现更好的测试覆盖。
但是,测试活动的自动化还是处于较低的水平,而且成为了企业成熟测试的头号瓶颈。自动化水平低下的原因有:
61%的受访者表示由于应用程序每次发布都在变化,很难构建出健壮的、适应性强的自动化测试方案
48%的受访者对于准备可预测的、可重复利用的测试数据和测试环境有挑战
46%的企业表示由于技能和经验的缺失导致自动化实现很难
自动化测试应该是朝着智能、认知的方向发展,构建能够自执行、自适应的自动化平台。
趋势4:测试环境和数据近几年,质量保障和测试部门都在朝着敏捷和DevOps转型,测试环境和数据的管理却跟不上,大部分企业在数据管理和创建方面没有成熟的方案:
测试环境方面,31%的受访者主要还依赖物理机器环境
58%的受访者表示他们仍然依赖手工方式创建测试数据
66%的受访者用Excel等电子制表软件来手动生成测试数据
62%的受访者用生产环境数据的副本来执行测试
目前,测试数据和环境成为企业成熟测试的二号瓶颈。当然,我们也看到了这方面正在得以改进的新技术趋势:
不断增加的容器化测试环境的采用
API经济的增长
零接触(Zero-Touch)测试机器人的使用
开放数据项目(OpenDataProjects)的发展
更好的数据采样智能方案的发展
趋势5:成本在测试活动的成本和效能方面,我们看到两个有分歧的趋势:
大量的自动化测试和测试外包的方式,使得基于瀑布式的核心IT和遗留系统的成本下降;
数字化转型、迁移到云、敏捷和DevOps的采纳、质量保障和测试中自动化和分析技术的运用,使得在新的基础设施、工具、组织改组、工作流程重组方面的花销达到高峰
质量保障和测试的花费在和年分别占整个IT成本的35%和31%,在和年下降到了26%,并趋于稳定。
但是,随着测试环境的虚拟化、测试数据的管理、测试自动化和测试生命周期分析技术使用方面的投资,在将来的两到三年内成本可能会升高到30%,并达到一个新的增长稳定的阶段。
02推荐的应对策略1.以智能的、分阶段的方式提升基础测试自动化和智能测试自动化水平自动化测试是质量保障和测试变革的瓶颈,因为:
自动化的核心角色是敏捷和DevOps转型的推动者,随着敏捷和DevOps被越来越多的采用,自动化对交付“速度上的质量”的重要性也在上升;
它也是AI、ML、分析等新技术的结果,这些技术在自动化可以带来的好处方面都具有很大的潜力;
调查结果显示基础自动化水平还很低,还有很大的发展空间。
因此,自动化(尤其是智能自动化)将会在接下来两到三年给质量保障和测试带来重大的变化,组织需要有自己的策略和路线图去应对,报告推荐了一个三步走的方案:
优化测试
实施基础的自动化测试
采用智能的、自适应的测试自动化方案让自动化变得更加“智能”
2.以非孤立的方式实施测试数据和测试环境的管理53%的受访者表示在敏捷测试的数据和环境准备方面面临挑战。数据和环境的延迟使得云服务、敏捷和DevOps的采用所带来的效率不明显,这是一个需要特别引起重视的领域,建议采用集中的方式来管理。
企业要开始生命周期的自动化,把测试自动化和数据、环境的准备工作一起开展,不要分离开来。另外,要采用更加智能的方式来管理测试环境和数据。
一定程度的集中化能够更有效的利用、共享各种知识、实践和经验,更好的风险管理,加速发布频率,缩减基础设施的开支,提高团队的生产力。
3.构建超出测试开发(SDET)之外的质量工程技能敏捷、DevOps、云、IoT、区块链和AI这些新趋势的发展,以及更加自动的、集成的质量保障方法的需求,企业需要