收藏 分销(赏)

人工智能技术在软件测试领域的应用研究.pdf

上传人:自信****多点 文档编号:720437 上传时间:2024-02-22 格式:PDF 页数:5 大小:1.18MB
下载 相关 举报
人工智能技术在软件测试领域的应用研究.pdf_第1页
第1页 / 共5页
人工智能技术在软件测试领域的应用研究.pdf_第2页
第2页 / 共5页
人工智能技术在软件测试领域的应用研究.pdf_第3页
第3页 / 共5页
亲,该文档总共5页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、现代计算机Modern Computer第 29 卷 第 12 期2023 年 6 月 25 日人工智能技术在软件测试领域的应用研究王东*(广东白云学院大数据与计算机学院,广州 510450)摘要:随着人工智能技术在软件测试领域的广泛深入应用,人工智能技术正变得日益重要。借助人工智能技术,软件测试工作可快速取得准确的测试结果。根据在软件测试领域的工作和教学经验,笔者介绍了人工智能技术在软件测试领域中的应用,进而凸显人工智能技术对于软件测试工作的重要性。研究结果显示,应用了人工智能技术的软件测试,效率和结果都要优于传统的测试工作。展望未来,人工智能在未来软件测试活动的范围和深度还将进一步增强,基

2、于人工智能的软件测试活动不但能显著提高生产力,也是应用更复杂软件测试活动的最佳技术路径,更是为复杂的软件应用创建智能化的自动测试的基础。关键词:人工智能;软件测试;测试自动化;自然语言处理文章编号:10071423(2023)12005505DOI:10.3969/j.issn.10071423.2023.12.010收稿日期:20230114修稿日期:20230224作者简介:*通信作者:王东(1979),男,北京人,硕士,高级工程师,研究方向为软件工程、人工智能、大数据和云计算技术,Email:0引言软件测试是验证软件是否满足需求的活动,软件测试是软件开发质量的保障,两者相辅相成,测试工作

3、贯穿于软件开发的整个周期中。近年来,人工智能和机器学习已被成功应用于广泛的业务数据挖掘和分析,人工智能究其本质是一种通过模拟人类的学习过程来训练计算机更好地管理数据的技术。常用 AI算法,如:连接、遗传、统计和概率、案例等已被广泛使用。而数据挖掘和分析的算法更多会用到分类、关联、优化、聚类、预测、发现趋势等。人工智能方法提供的预测模型不但用于各种工程项目中,而且它也是一种验证被测试系统正确性的方法。目前,由于人工智能技术在区分软件正常和错误行为方面存在认知的偏差,人工智能对软件缺陷的预测能力尚存在瓶颈待突破。人工智能技术在算法和应用场景方面的持续发展使得其在软件测试领域的作用越来越大。目前,随

4、着计算机硬件的不断发展,在软件测试领域,基于人工智能技术的软件测试方法的发展和应用前景广阔,其主要的三个组件是:机器学习,深度学习和自然语言处理1。1软件测试概述软件测试是为了确保被测软件产品或系统的质量而进行的测试活动。通常,软件测试的工作量占一个软件开发项目总工作量的 30%40%,而测试成本占开发项目总成本的 50%以上。软件缺陷(bug)是指软件行为与需求所定义的预期结果不符的一种现象,或称为测试结果。软件质量保证(QA)的工作是确保被测试软件无明显故障和缺陷并符合交付要求。支撑测试活动的重要元素是设计和执行测试用例。软件缺陷往往伴随着测试用例的执行而被排查出来。测试用例的设计基于软件

5、需求说明、设计规格和功能规格说明,一个测试用例规范包括:前置条件、测试步骤、预期结果、实际结果。测试用例的设计和多少由“充分测试”的标准定义2。软件测试技术大体上可分为:黑盒测试、白盒测试、灰盒测试。软件测试的预期结果是根据需求和设计规范得出的,软件测试的主要目标是发现差异、错误、缺陷和缺失的功能,按测试方式可划分 55现代计算机2023年为手动和自动化测试3:手动测试:不借助任何自动化工具的情况下开展软件测试活动,手动测试常被用于验证软件是否符合需求和设计规范,功能测试环节使用手动测试较多;自动化测试:使用自动化工具测试一个软件时,通常将软件运行分成几个不同的阶段借助脚本分开测试。软件测试生

6、命周期(STLC)通常如图1所示。图 1软件测试周期从用户的角度出发,可将软件测试按层级划分,常分为3级:开发测试、发布测试、用户测试,其所含的测试子类如2图所示。图 2各测试层级所含测试活动开发测试通过使用各种错误甄别和检测方法,以求降低软件开发风险、时间损耗、成本控制。开发测试包含的种类有:单元测试、集成测试、系统测试。单元测试重在检查系统各单元,检测各功能模块,比如:类和方法;集成测试在单元测试之后,重点检测各单元接口的功能性;系统测试在系统集成阶段重点检测系统各功能模块组合之后的功能性,比如:复用性和第三方代码。发布测试指的是向团队提供经确认的编码方法和测试策略,此时,软件待发布版本已

7、准备妥当。发布测试的主要目标是在交付给用户之前尽可能发现并消除软件发行版中的错误和缺陷。发布测试的类型有需求测试、场景测试、性能测试。对于软件测试而言,最大的挑战莫过于如何在有限的时间内按需求和规范设计并执行准确而高效的测试用例。近年来,人工智能技术被引入到软件测试领域,并在解决诸多技术瓶颈和提高测试效率方面崭露头角。借助人工智能的机器学习、深度学习和自然语言处理等算法,快速而精准生成的测试用例可被快速用于实施,测试的质量和覆盖率得以显著增强4。2基于人工智能的软件测试人工智能概念是由约翰麦卡锡于1955年在达特茅斯学术会议上首次提出5。今天的人工智能已泛指所有“机器模拟人类智能行为的程序系统

8、”。而根据麦卡锡的当时定义,人工智能学科是指“制造智能设备特别是智能计算机程序的科学和工程学”,本研究关注应用于软件测试的人工智能技术分支,如:人工神经网络(ANN)、智能规划(AI planning)、机器人(robotics)、机器学习(machine learning)、自然语言处理(NLP)、模糊逻辑(fuzzy logic)、专家系统(expert systems)。随着人工智能技术在软件测试领域的应用,从测试设计到实施再到测试结论部分,人工智能技术在软件测试生命周期中的作用越来越大,尤其是对测试规格和测试用例设计产生了较大影响。表1反映了AI技术应用于软件测试不同领域的情况。56王

9、东:人工智能技术在软件测试领域的应用研究第12期表 1AI技术应用于软件测试情况测试活动创建测试用例创建测试数据执行结果验证测试用例优先级测试用例规格设计测试成本估算AI技术应用归纳学习、主动学习、蚁群优化算法、马尔可夫模型、AI规划器、自然语言处理、增强学习、C4.5决策树、KNN算法、逻辑回归、随机森林、多层感知器、长短期记忆网络、启发式搜索遗传算法、模拟退火算法、爬坡算法、生成式模型、长短期记忆网络、深度强化学习、蚁群优化算法、启发式方法人工神经网络、支持向量机、决策树、信息模糊网络Kmeans聚类算法、C4.5决策树、增强学习算法、CBR算法、ANN、Markov模型、KNN算法、逻辑

10、回归-SVM排名算法C4.5决策树SVM、线性回归、KNN、随机森林、多层感知人工智能技术在软件测试领域的应用催生出了具有人工智能特征的软件系统质量体系,人工智能软件测试系统采用预定义的质量验证模型、程序和工具6,利用机器学习的模型和技术评估系统的特征,通常用于达成以下测试目的:(1)针对人工智能的功能,确定质量检测和评价标准;(2)检测人工智能功能、限制和缺陷,以及质量的挑战;(3)获得由人工智能技术和机器学习模型创建的人工智能功能的技术特征;(4)根据确认的质量要求和标准,评估人工智能系统的效果。软件测试的测试对象包括了人工智能软件,使用机器学习和自然语言处理(NLP)的不同方法和算法,可

11、有效促进和优化人工智能软件的测试效果。针对 AI软件的常用测试方法包括:分类、AI、模型、自动化测试、众包、蜕变。主流的AI软件测试服务包括:使用预定义的模型和方法测试和评估软件;作为第三方独立机构,使用AI指令认证服务标准对政府和企事业单位提供认证服务;在AI验收测试中为客户提供软件质量测试。近年来,人工智能技术在软件测试领域的应用越来越多,通过作者对业内的观察和分析发现,不同的人工智能技术通常被应用于软件测试的不同分支领域(见表2)。表 2AI技术应用于软件测试分支领域汇总AI算法决定树算法K均值聚类算法支持向量机算法(SVM)遗传算法自然语言处理算法软件测试分支领域黑盒测试规范的细化和类

12、别划分规范的改进对测试用例进行分类,以提升回归测试的效率识别失效的GUI测试用例生成高效的测试数据预测失效的手动测试用例3人工智能技术在软件测试领域应用研究人工智能技术在软件测试领域的应用已崭露头角并蕴藏着巨大的应用价值,尤其在以下几个应用场景具有较大潜力。(1)降低劳动强度。人工智能系统与自动化测试技术相结合,替代重复度高和复杂性低的手动测试的繁重工作,为软件测试人员腾出更多时间和精力解决复杂的技术问题,软件测试人员的角色正由“工程师”向“科学家”转变。(2)模拟测试。人工智能系统提供虚拟仿真的测试环境和执行过程,其结果可为真实的测试工作提供“靶向”,指明了测试工作的重点,进而提高了后续测试

13、工作的准确度和效率。(3)缺陷修复。人工智能的软件测试除了传统的排查缺陷的任务,在未来还将包括修正缺陷的能力,人工智能与软件开发和测试活动的深入融合将确保这种修正能力的实现,即“在人工监控下的排查和修正缺陷的智能系统”。(4)提高质量。人工智能具有智能学习的能力,能够根据测试需求和规格设计测试用例,进而保证了基于最优测试效率的最大的测试覆盖率。目前,人工智能技术已进入到了软件测试从计划到执行再到报告的所有测试环节,并将在各环节持续深入地应用。测试人员正在从繁重的测试工作(如:测试策略、回归测试、负载测试)中解脱出来,随着人工智能自动化测试的深入应用,人工智能技术正在帮助缩小人类 57现代计算机

14、2023年与机器驱动测试能力之间的差异,测试人员的工作重心将转为完善产品的功能和质量细节工作上,可以预见到,交付的软件产品质量将显著提高。(5)优化成本。在人工智能技术在软件领域大范围和持续深入的应用下,软件测试和开发工作随着人员数量减少、场地需求减少、能耗的减少,相应的成本都在大幅降低。少量的测试人员将工作重点放置于探索性测试和智能测试系统的维护上。此外,人工智能将影响所有软件产品领域的测试方式和流程,包括移动应用程序、Web应用程序、物联网、嵌入式系统、数据库应用系统、游戏行业、实时应用程序、操作系统软件等软件产品的测试方式,都在逐步实现基于人工智能化的自动化。随着人工智能技术在软件测试领

15、域的应用越来越热,也已取得部分不菲的效果,但从长期发展的角度看,人工智能技术在软件测试领域的更大范围应用还存在着诸多障碍和不确定性。来自业内的主要的挑战、热点问题和改进需求被分别介绍如下7。AI技术的应用面临的最大挑战是训练AI系统的训练集和测试数据集的建设问题,此外,还有以下几个挑战尤其需要引起重视:挑战1:如何使用系统的方法为基于机器学习的AI系统设计和开发出一流的测试模型?挑战2:如何建立基于大数据的机器学习方法和AI系统的测试覆盖标准和质量保证需求?挑战3:如何开发自动化工具和解决方案来促进基于人工智能的系统验证?挑战4:如何建立足够的质量测试覆盖率并定义质量保证标准体系?挑战 5:如

16、何为今天的 AI系统地生成高质量训练数据集和高覆盖率的测试数据集?AI技术应用于软件测试领域存在着巨大的市场价值,但挑战性问题也很多,以下研究热点已成为主要的攻关方向。研究热点1:在机器学习模型和大数据构建的智能系统中,有哪些自动化方法和技术可以辅助大规模地自动测试人工智能软件应用?研究热点2:针对软件验证和质量保证的标准及其实施细则,比如程序、评估指标、政策和规则?研究热点 3:对于 AI功能和特性,是否存在理想的验证模型和测试覆盖标准?未来,人工智能技术在软件测试领域应用的改进方向受到需求的影响,众多需求可被归纳为几个需求方向8:需求1:开发匹配的验证模型和标准,以满足基于功能测试的要求,

17、如针对对象及其类别的检测,针对测试对象的选取和测试结果的预测。需求2:开发理想的软件质量保证计划和标准,以满足符合人工智能特性的功能相关的质量标准。需求3:创新的测试方法和测试工具,以解决测试人工智能软件的功能和解决大数据覆盖的测试需求。4结语复杂的数据可以通过使用人工智能的模型和算法进行分析,经过近几年的行业应用,人工智能技术已证明它可提升软件测试的效率,改进测试结果。未来,人工智能测试将开启质量保证工作的新时代,大部分测试工作将由人工智能执行和确认,精准和高效的测试将带来巨大的生产价值,人工智能技术将对质量保证和测试行业带来深远的变革。通过提供可靠的和最少化缺陷的应用程序,智能软件测试将提

18、高软件质量和可靠性,并对用户体验有质的提升作用。在未来,人工智能将在软件测试中发挥巨大作用,软件测试人员将从繁重的手动测试中解放出来,并将工作重心放在评估AI算法和改进匹配模型上。值得关注的是,当前的人工智能测试算法将与新出现的技术相融合,以实现对应用程序的测试优化,生成更准确、更高效、更智能的测试用例和优化的效果。深度学习、自然语言处理和其他技术将在软件测试中发挥越来越重要的作用。58王东:人工智能技术在软件测试领域的应用研究第12期参考文献:1 陈宏刚.软件测试:软件开发的科学与艺术 节选J.程序员,2002(6):111115.2 胡芸,陈怡海.新版软件产品质量要求和测试标准剖析 J.信

19、息技术与标准化,2015(4):4245.3 伍炳霖,李昕昕,龚勋.QTP自动化测试工具技术以及与手工测试的对比J.电脑知识与技术,2018,14(26):195197.4 郭文欣.以软件需求为导向的软件测试实践教学探索 J.科技创新导报,2019,16(34):226,228.5 赵东明,张林晓,张文华.人工智能背景下软件测试技术应用研究 J.信息与电脑(理论版),2020,32(23):132133.6 王磊.人工智能技术在软件自动化测试的应用研究J.信息与电脑(理论版),2022,34(8):174176.7 胡中奇,植赐佳.人工智能时代下软件测试的发展与应用 J.电子世界,2021(2

20、4):101103.8 MCCARTHY J.Programs with common sense C Proceedings of the Symposium on Mechanisation ofThought Processes,London:Her Majesty s Stationery Office,1958:7784.Research on the application of artificial intelligence technology insoftware testing fieldWang Dong*(Big Data and Computing Institute

21、,Guangdong Baiyun University,Guangzhou 510450,China)Abstract:With the rapid development of artificial intelligence technology in the field of software testing,artificial intelligencetechnology is becoming increasingly important.With the help of artificial intelligence technology,software testing is

22、capable to getaccurate test results quickly.By introducing the application of artificial intelligence technology in software testing field,this paperhighlights the importance of artificial intelligence technology for software testing.The results of this paper reveal that the efficiencyand results of

23、 software testing using artificial intelligence technology are better than those of traditional testing methods.Forecastthe future,the scope and depth of software testing jobs will be further enhanced by artificial intelligence.Software testing jobsbased on artificial intelligence can significantly improve productivity,and is also the best technical path to cope with more complexsoftware testing jobs.It is also the basis of creating intelligent automatic testing for complex software applications.Keywords:AI;software testing;automation testing;nature language processing 59

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 论文指导/设计

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服