#yyds干货盘点# 软件评测技术的发展趋势

时间:2022-10-02 18:56:37

随着软件技术的继续发展,以及软件应用的扩展和深入,软件测试必然也会不断发展。近年来,各类新型架构的软件系统层出不穷,云计算、物联网、人工智能、大数据分析以及移动应用的发展极为迅猛,可信软件的持续增长等给软件测试带来了一些新的挑战。结合软件的架构如分层架构、事件驱动架构、微内核架构、分布式架构等,软件测试需要根据架构特点确定测试策略,开展测试设计,测试活动要良好结合测试的通用性规范与架构特点相关的测试需求。在云计算的环境下,除了传统的测试内容,数据安全、集成与并发、兼容性与交互性将成为软件测试的重点。物联网应用带来软硬件协同、模块交互强连接、数据的实时性测试要求,使得物联网应用的安全、性能、兼容性以及监管测试十分重要。

人工智能自20世纪50年代提出以来,经历了几起几落。随着计算机处理能力的巨大提升、大数据应用的增长以及机器学习的进步,人工智能的应用在最近几年出现了爆发式增长,特别是在机器视觉、模式识别、自然语言处理、智能控制、自动规划及博弈等方面表现突出。2016年以来,中国及西方主要发达国家均制定了自己的人工智能发展战略,全面推进人工智能的发展。在人工智能软件及应用的测试中出现了许多新的要求,如模型泛化能力、算法稳定性与健壮性、系统接口、性能及安全性等的测试需求。因大量的人工智能系统需要学习和训练,在测试时需要控制训练数据集与测试数据集的独立性和分布相似性,需要加强测试的设计和结果分析。同时人工智能的进一步发展, 可能带来软件测试的进步,测试自动化的研究与实践将成为今后一段时间测试领域的发展方向,这对提高软件测试的效率和质量,降低测试的成本具有十分重要的意义。

大数据分析与处理的基础是海量数据,这给测试带来了巨大挑战。在对大数据分析系统开展测试时,将面临测试能力、结果判定及数据敏感性等问题,要重点关注数据质量、各类算法、软件性能以及应用安全的测试,这需要许多新的测试思路和策略,开展恰当的测试设计,建立验证方法,并得到若千工具的支持。目前移动应用已经十分普及,发展前景还非常巨大。关于移动应用的测试,也因为其终端软硬件的多样性、网络与架构的多样性以及用户的广泛性而备受关注。移动应用带来了一些新的测试技术,特别是自动化测试技术,如随机测试、基于模型的测试、基于搜索的策略等。针对移动应用的测试,在测试方法、测试技术以及测试工具方面都将会有进一步的发展。前述的软件测试现状和发展趋势中,许多方面都涉及软件及应用的安全问题,这在当今是一个突出且严峻的问题。信息安全涉及面十分宽广,涵盖了法律、道德、技术以及管理,软件测试作为一种技术手段,在信息安全的控制和保护中,具有不可替代的作用,也有巨大的发展空间,不论是安全性问题的预防、监控还是审计,都离不开测试活动。关于信息安全的测试,相关技术、方法、策略和工具的研究发展与实践将是软件测试的一个重要发展方面。

软件测试一开始都是采用人工方式,并延续了一个较长的时期,不论是测试的策划、设计、实施,还是测试的记录、分析、报告以及组织管理,都由人工完成。人工测试效率低、周期长、成本高,而且测试覆盖可能极不充分,有些测试任务根本无法完成。随着软件技术的进步,出现了越来越多的测试过程和测试管理的自动化工具,软件测试进入人工+自动化测试的时代,人工测试的比例和工作量不断降低,自动化带来了测试质量和效率的提高。当今人工智能的快速发展给软件测试带来了新的发展方向,可以预期, 软件测试将进入智能化的测试时代。不论是测试方法,还是测试的组织管理、软件缺陷预测、故障模式发现、测试有效性评估等都可以引入人工智能的技术,智能化测试将对软件测试的理念、策略、管理及成效产生重大影响。

当然,新技术和新应用的出现,也给软件测试带来诸多的挑战。新技术的采用有一个渐进的过程,其中可能存在一些风险。 而新应用则给测试带来若干新的需求,如何更好地满足这些需求,如何更顺利地使用新技术,是软件测试进一步发展需要不断研究与实践的课题。