• 周二. 6 月 18th, 2024

智能测试专题智能测试技术探索

admin

11 月 11, 2023 #智能化测评, #测评

1、发展阶段

测试是评估和验证输入是否产生预期输出的过程。 测试包括软件测试和硬件测试。 测试的早期萌芽是在20世纪50年代,主要是调试和验证程序是否符合预期。 1957年,Charles Baker在《软件测试的发展》中区分了测试和调试,并提出了测试的概念。 他指出,测试的目的不仅是为了验证,更是为了确认软件是否满足要求。 1983年,IEEE召开了第一次软件测试技术会议,并给出了软件测试的定义。 IEEE定义的软件测试明确指出,测试的目的是验证软件是否满足需求。 这是一个需要完整的设计、开发和维护阶段的过程。 随着软件开发模式从瀑布模型到敏捷模型再到DevOps(各环节流程如图1所示),DevOps注重Dev、Ops和QA(Tester)之间的协同配合,这样才能实现持续改进的产品质量,这对测试过程的自动化和连续性提出了更高的要求。

智能化测评手段_智能化测评_智能化测评系统/

图 1.DevOps 流程

为了应对不断增长的产品需求和繁重的测试任务,提高测试质量和测试效率,测试团队将测试专项能力转变为面向服务的能力,建立基于自动化的测试能力。 测试自动化的目的是减少手工测试和手工操作。 如图2所示,测试自动化包括自动化环境的创建和部署、生成测试数据、执行自动化测试以及生成测试结果和日志。 它还对测试相关结果进行自动监控和分析,并自动生成测试报告,以便于测试失败原因和快速修复。

智能化测评手段_智能化测评_智能化测评系统/

图2 测试自动化流程

随着人工智能和机器学习在各个领域的广泛应用,并针对不断增长的海量数据,自动化测试工具结合AI技术,生成更可靠、有效的测试,提高测试分析的效率等,并加速现有的自动化测试。 需求和流程。 2018 年,Gil Tayar 在《基于 AI 的测试的 6 个级别:无所畏惧,QA 专业人员》一文中解释了 AI 驱动测试的六个自动化阶段,如图 3 所示,从最初的手动分析和自动化设计测试到更多环节与AI辅助相结合进行自动化测试的执行、设计和决策,测试自动化程度得到有效持续提升。

智能化测评手段_智能化测评_智能化测评系统/

图3 AI驱动测试

2. 智能测试

智能测试主要是指人工智能技术在测试领域的应用,不断追求提高研发交付效率。 其本质是结合AI算法和测试数据,对测试的多个方面进行针对性优化,具有更强的适应性和响应性。 智能测试是现阶段的热门话题,并日益渗透到测试的各个方面。 智能测试用例的整个周期涉及三个主要关键阶段,包括用例生成、用例执行和用例分析。 华为云智能测试围绕这三个阶段,基于海量测试数据和AI算法,协助测试人员进行测试用例设计和用例生成、精确筛选测试用例执行、智能分析测试数据。

智能化测评手段_智能化测评_智能化测评系统/

2.1 智能测试用例生成

测试用例的生成目前主要依靠手工设计,需要测试人员具有一定的经验和专业知识。 随着云产品的功能日益复杂,迭代周期不断加快,完全依靠经验和手工设计的接口测试效率很低。 因此,有必要设计一种自动生成测试用例的方法。

在智能测试用例生成实践方面,华为云提出了基于接口文档和现网流量数据的智能API测试生成技术,实现单接口和多接口业务场景的双重覆盖,真正帮助测试人员改进工作效率。 ,有效保障云产品质量。 本次生成服务的具体流程如图所示。 其应用前景包括但不限于以下几个方面:

1)对于小规模测试团队或没有专职测试人员或测试新手的全功能团队,无代码、高度自动化的Rest接口,正常场景级测试用例的生成、自动化执行和判定,在很少或没有参与的情况下,基本可以实现意识到了。

2)对于拥有专职测试人员和测试专家的测试团队来说,可以低成本提高测试场景覆盖率、缺陷拦截效率,减少测试设计投入。

3)能够在正常场景API测试的基础上实现完全自动化生成异常场景(可靠性测试)和并发场景(性能压力模型),完全替代现有的接口模糊测试,实现无代码接口全场景测试。

智能化测评_智能化测评系统_智能化测评手段/

2.2 回归测试用例选择

在日常的开发和测试活动中,面对项目版本的快速迭代,通常为了避免引入缺陷、尽早发现尽可能多的缺陷,测试人员需要在代码小范围变化时执行测试用例。 同时,完整执行测试用例既费力又耗时。 华为云智能精准回归测试用例选择区分黑盒(代码不可见)和白盒(代码可见)模式。 黑盒模式根据测试用例的历史执行结果预测测试用例的失败率并排序。 白盒模式 该模式通过挖掘代码源文件(函数)与测试用例之间的相关性来过滤测试用例,准确筛选和排序缺陷检出率高的测试用例,以最少的人力和时间成本发现尽可能多的缺陷。

智能化测评手段_智能化测评系统_智能化测评/

智能化测评_智能化测评系统_智能化测评手段/

2.3 测试数据智能分析定位

随着软件规模的不断增长和产品迭代周期的不断加快,自动化测试用例的数量不断增加,自动化测试项目中的故障日志数量也在不断增加。 人工分析工作量大、时间成本高。 测试数据智能分析定位旨在结合智能算法,根据故障日志和相关测试数据分析可能出现的产品问题,提高分析效率。 目前华为云测试智能分析是基于产品线测试日志数据特征。 经过普通的日志预处理后,根据日志量的不同,采用不同的方式进行特征工程。 生成日志特征后,基于随机森林、最近邻、强化学习、神经网络。 等待模型融合定界并定位故障原因。

智能化测评系统_智能化测评手段_智能化测评/

智能化测评_智能化测评系统_智能化测评手段/

文章来自PaaS技术创新实验室。 PaaS技术创新实验室隶属于华为云,致力于综合利用软件分析、数据挖掘、机器学习等技术,为软件开发者提供下一代智能研发工具服务的核心引擎和智慧大脑。 我们将聚焦软件工程领域的硬核能力,持续打造研发工具,持续交付高价值的业务功能! 加入我们,共创研发新“境界”! (详情请联系mayuchi1@huawei.com;guodongshuo@huawei.com)

PaaS技术创新实验室主页链接:

参考

[1] 什么是 DevOps,

[2] 华为云DevOps敏捷测试方法,

[3] 基于人工智能的测试的 6 个级别:QA 专业人员,不用担心,

[4] 基于语义感知的SBST智能生成API场景测试,