收藏 分销(赏)

软件测试技术及其测试工具的研究与应用.pdf

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

1、现代计算机Modern Computer第 29 卷 第 12 期2023 年 6 月 25 日软件测试技术及其测试工具的研究与应用林生旭,盘茂杰*(广东技术师范大学计算机科学学院,广州 510665)摘要:软件开发的质量随着计算机技术的快速发展而显得日益重要,软件测试是确保软件质量的重要手段之一。软件测试(software testing)是软件开发过程中不可或缺的一环,旨在通过各种方法和工具提高软件质量,提高软件可靠性。介绍软件测试技术的概念和工具应用,并介绍常用的软件测试工具,如QTP、LoadRunner,结合具体案例进行应用。最后,对今后测试技术和测试工具的走向进行总结。关键词:软件

2、测试;测试技术;测试工具文章编号:10071423(2023)12003707DOI:10.3969/j.issn.10071423.2023.12.007收稿日期:20230226修稿日期:20230530基金项目:教育部2022年第一批产学合作协同育人项目(220505211253008);2022年广东省本科高校教学质量与教学改革工程建设项目(991040155);2022 年度“实验教学与实验室安全建设管理改革专项”(991691304)作者简介:林生旭(2001),男,广东揭阳人,本科,研究方向为计算机软件及计算机应用;*通信作者:盘茂杰(1984),男,广东阳江人,硕士,实验师,研

3、究方向为大数据、实验室管理、计算机教育,Email:jet_0引言在软件开发过程中,软件测试(software testing)是确保软件质量的关键步骤之一。既保证了软件的正确性和可靠性,又提高了用户体验。这对提升用户对软件的满意度具有重要意义。伴随着软件产业的高速发展和技术的不断进步,软件测试技术和测试工具也在不断发展和完善。本文将对软件测试技术及其测试工具进行研究,并对其研究现状和应用进行探讨,同时展望其未来的趋势。1软件测试的目的软件测试的目的不是简单地纠正软件的错漏,而是促使项目管理人员及时、准确地了解软件中潜在的漏洞与风险,从而在明确错误的基础上,采取有效的弥补措施,研究其产生的原因

4、和相应的分布特征1。通过软件测试,确保软件符合客户的需求和标准,对软件中的错误、瑕疵、风险等进行识别,从而达到识别客户需求和标准的目的。软件测试也能保证不同环境和条件下的软件性能,并保证软件能够按照预先设定好的方式运行。总之,软件测试为软件的长久使用提供了重要的保障,是确保软件质量的一项重要技术和实践。2软件测试技术很多软件测试方法都是在日新月异的计算机技术背景下派生出来的。但在众多的软件测试方法中,却有可能因为测试路径的不同,测试目标的不同而被归入更多的种类中2。按是否查看代码分类,可分为黑盒、白盒、灰盒测试;按测试技术方式分类,可分为静态测试、动态测试;按研制测试分类,可分为单元测试、集成

5、测试、系统测试和验收测试。此外,还有压力测试和Web测试。其具体分类如图1所示。实践与经验 37现代计算机2023年Web测试按是否查看代码分类按测试技术方式分类按开发测试分类压力测试黑盒测试白盒测试灰盒测试静态测试动态测试单元测试集成测试系统测试验收测试软件测试技术图 1测试技术分类2 2.1 1黑盒黑盒、白盒白盒、灰盒测试灰盒测试黑盒测试(black box test)被称为功能性测试,在实施黑盒测试时,被测试的程序会被设计成一个无法打开的黑盒子,测试者并不知道软件内部的构造和实现细节,而是根据软件的功能和规格来评估它的性能。这种方法通常包括对软件的输入和输出进行测试,以确保软件能够发挥出

6、应有的效果。黑盒测试专注于测试软件的外部表现,不考虑其内部实现。一般情况下,黑盒测试法主要用于检测软件在开发中的功能性错误、软件运行界面存在的问题以及软件初始化错误等3。白盒测试(white box test)被称为结构化测试或逻辑驱动测试,是测试软件内部的代码和逻辑的测试。但有一个必要条件,那就是测试人员必须熟悉并掌握产品的内部结构,并通过各种编程语言设计测试用例后4,才能进行测试。这种测试方法在检查软件代码是否按照标准和规范编写,是否存在漏洞或明显的错误时非常有效。白盒测试可以帮助开发者识别软件中存在的问题,从而提高软件的质量和可靠性。此外,还可以帮助开发人员更好地理解软件的内部工作原理,

7、从而更好地提高软件的性能和效率。灰盒测试是为了保证软件系统的正确性、可靠性、稳定性和可用性而设计的一种介于黑盒测试和白盒测试之间的测试方法,其最终的准确性并不高。灰盒测试在测试过程中,对软件系统的内部结构和实现细节有一定的了解,但对它的了解并不像白盒测试那样面面俱到。大多数软件选择使用灰盒测试法是在内部结果有问题、但输出结果正确的情况下;这种方法的效率和实用性都比较强,所以在具体的使用过程中是有一定价值的5。2 2.2 2静态测试静态测试、动态测试动态测试静态测试(static testing)是在软件研发过程中,通过对源代码、需求文档、设计文档等软件工程文件的走查、审查、静态代码分析工具等方

8、法进行静态分析,从而检测软件的潜在缺陷和问题的一种早期测试技术。静态测试的目的是确保软件的质量,避免在后期开发和测试中出现问题,便于动态测试进一步开展。动态测试(dynamic test)由构造测试用例、执行程序和分析程序的输出结果三部分组成。它通过运行实际软件的情况来检测和评估,以验证软件的正确性、稳定性和可用性。动态测试可以检测出静态测试无法发现的问题,例如内存泄露、锁死、线程安全等。同时,动态测试还可以通过运行预置的案例得到测试结果,从结果中分析出该软件在功能和性能方面的问题5。2 2.3 3单元测试单元测试、集成测试集成测试、系统测试系统测试、验收测试验收测试单元测试(unit tes

9、t)又称模块测试(moduletest),主要用于测试软件的独立单元,是软件测试中的一种重要方法。测试的任务主要是检测单位内测试的标准是否一致,及时发现各模块存在的问题,通常是指模块接口进步数据结构测试(data structure test)的数据流测试6。常见的单元测试工具包括 JUnit、NUnit、TestNG等,这些工具能够自动化地执行单元测试,并对测试结果进行报告,以便于开发人员对问题进行评估和跟踪。集成测试又称为组装测试或联合测试,将所有模块按设计要求组装成子系统或系统,在单元测试的基础上进行综合试验。集成测试的目的是检测在实际使用环境中各部件之间的配合情况,以及它们之间是否可以

10、正常运作。这种检测技术主要有增量检测和非增量检测两种方式。增量测试主要是将待测模块与已测模块进行连接,待测试完成后,再进行下一步的测 38林生旭等:软件测试技术及其测试工具的研究与应用第12期试(survey)。在测试过程中,测试的模块越来越多,要确保模块与软件程序真正对接,需要根据实际情况选择合适的集成方式。非渐增测试主要是将模块的结构图连接起来,再从整体上对照相应的标准来测试7。系统测试(system testing)是将集成的软件系统作为整个基于计算机系统的要素,结合其他系统要素,如计算机硬件、外设、支持软件和数据等,在实际运行环境中所进行的一系列测试活动,其目的是将这些系统作为一个要素

11、8。系统测试针对整个软件系统,而不是每一个单独的单元或功能模块;其涵盖了功能测试、配置测试、安全测试等多个测试阶段,以验证系统是否满足预期的业务需求为主要目的,为系统的正式部署做准备。验收测试被称为可接受性测试,其主体是用户,通常在软件完成所有开发和测试工作后进行,是系统测试的最后环节9。它的目的在于证明软件系统是否符合客户的需要,是否可以正常使用。验收测试的成功是软件项目的重要标志,因为它标志着项目已经完成并且可以交付给用户使用。2 2.4 4压力测试压力测试压力测试并不是单纯的对软件功能进行测试,而是为了保证软件系统运行的稳定性,对软件系统反映的时间和速度进行有效的检测和分析10。它是在软

12、件系统正常工作状态下,通过模拟高负载情况,来评估系统的性能和稳定性的测试过程;目的是评估系统在高负载下的性能表现。压力测试通常是在软件发布前进行,以确保系统在实际使用环境中的稳定性和安全性。此外,压力测试还能够检测系统的容错能力和可靠性,以确保在出现问题时,系统仍能提供有效的服务。2 2.5 5WebWeb测试测试Web测试主要是通过链接访问指定页面来验证某些程序是否可以正常运行、软件是否可以在所有网络端口运行、客户是否会正确使用、性能是否安全等,测试这些程序是否能够正常运行11。Web 测试包括对Web 页面的功能、界面、安全性、响应时间等方面的测试,要保证Web应用程序的可靠性和稳定性,这

13、些测试是必不可少的。常见的Web测试技术包括自动化Web测试、手动Web测试、对Web服务的测试以及对Web接口的测试。此外,Web测试还包括Web应用中的内容,如性能、可用性、安全性等。3软件测试技术和工具的应用3 3.1 1QTPQTP测试工具及其应用测试工具及其应用Quick Test Professional(QTP)是一种自动化测试工具,主要用于 Web 和桌面应用程序的测试。目前,市场上有很多自动化测试工具很受欢迎,而QTP则以简单易学,方便的操作,强大的功能在这些工具中脱颖而出12。该工具支持Visual Basic、Java、C+等多种编程语言,并使用记录和回放技术,以快速生成

14、测试脚本。QTP最重要的功能是对测试用例进行自动录制和回放,这使得测试者可以通过操作应用程序的图形界面对测试用例进行录制。回放时,QTP将自动执行录制的操作,并对应用程序的输出进行验证。QTP还提供了一个功能强大的脚本编辑器,允许测试人员编写脚本进行自定义 测 试。同 时,QTP 还 支 持 包 括 Windows、Web、.NET、VisualBasic、ActiveX 等在内的所有常用环境的功能测试,因此,QTP的使用范围非常广泛13。QTP的应用主要在于功能测试、回归测试和界面测试等方面。它可以帮助测试人员快速验证应用程序的功能是否正确,并确保应用程序在每次更新后仍能正常工作。QTP可以

15、帮助测试者在软件开发周期的后期,迅速进行大量的回归测试,以保证更换后的应用程序仍能满足需要。其应用范围很广,包括金融、保险、电子商务、政府部门等等。这些机构在降低测试周期的同时,可以通过使用QTP来确保软件产品的质量。此外,QTP还提供了一个可视化的用户界面,使得测试人员可以快速识别和解决问题,从而提高整个测试过程的效率。3 3.2 2QTPQTP测试的实例分析测试的实例分析3 3.2 2.1 1制定测试用例制定测试用例录制一个通过12306网站上查询从广州到上 39现代计算机2023年海的班次进程的测试脚本,并以登录账号和密码作为自动化测试的输入条件。3 3.2 2.2 2录制测试脚本录制测

16、试脚本(1)打开QTP并创建一个全新的测试脚本;(2)在“Web”选项卡下,浏览器选择“Microsoft Internet Explorer”类型,并确认“地址”框中的 URL 为 https:/ Applications”选项卡中,确认“下面指定的应用程序”处于选定状态,且未列出任何应用程序。如图2所示;图 2Windows Applications(4)在QTP中点击“确定”按钮,开始进行录制;(5)在登录界面中输入正确的用户名和密码并点击“立即登录”按键,输入班次详细信息,进行查询;(6)在QTP中,单击“测试”工具栏上的“停止”,停止录制进程,完成录制过程。其录制过程如图3所示。3

17、3.2 2.3 3设置检查点设置检查点设置检查点可以检查所设定区域的显示是否和预期结果相符。如果结果不匹配,检查点就会失败。在功能测试中,检查点可用于检查对象的状态是否在修改后的应用程序中发生变化;检测对象数据与预期数据是否相符。可以在录制测试的过程中,或录制结束后,向测试脚本中添加检查点。在“测试结果”窗口中可以查看检查点的结果。检查点测试类型有标准检查点、图像检查点、表检查点、位图检查点、网页检查点、XML检查点、文本/文本区域检查点等。对于用户名和密码而言,一般都是将其设置为文本检测点进行检测;但是在检测之前,需将用户名和密码进行参数化。在输入用户名和密码后,点击OK。右键选择“插入文字

18、考核点”,会打开“文字考核点”属性对话框。最后,单击“确定”接受该对话框中的默认设置,保存测试即可。文本检查点内容如图4所示。图 3测试脚本录制过程 40林生旭等:软件测试技术及其测试工具的研究与应用第12期图 4文本检查点内容3 3.2 2.4 4测试结果测试结果测试结果如图5所示。图 5测试结果3 3.3 3LoadRunnerLoadRunner测试工具及其应用测试工具及其应用LoadRunner是一款由HP公司推出,用于模拟和测试 Web 应用程序和服务器的压力的自动化测试工具。它可以模拟多个用户同时访问WebApp或WebServer来测试系统的可扩展性和可靠性。该工具使用虚拟用户来

19、模拟实际的Web 用户行为,并在整个系统中对所有相关组件进行测试,从而对 Web 应用程序进行详细的性能评估。LoadRunner主要包括三大组件:用户脚本生成器、控制器和分析器14,其工作原理如图6所示。图 6LoadRunner工作原理(1)用户脚本生成器(virtual user generator):用于录制调试 Vuser 脚本,可支持 Web(HTTP/HTML)、Flex、SAPWeb、SAPGUI 等数十种主流协议,支持脚本录制,支持 IE、Firefox、Google等浏览器版本。并且支持多种脚本语言的开发,如JAVA、VB、C语言等15。该工具提供了一种快速有效的方法,以确

20、保软件在并发用户数量增加时仍然具有很高的性能。通过使用 LoadRunner 的用户脚本生成器,在保证测试准确可靠的情况下,可以大大缩短测试时间。(2)控制器(controller):控制器组件是 LR的控制中心,主要包括场景设计和场景执行两个部分。其中Controller控制器提供手动设计和目标导向两种测试场景。由于可以更灵活地根据需求设计场景模型,使场景更好地贴近用户的真实使用。所以在一般情况下,场景设计采用的都是手动测试的方式。面向目标场景是在进行能力规划和能力验证的测试过程中,经常使用到测试性能是否能达到预期目的的测试。(3)分析器(analysis):LoadRunner 分析器是L

21、oadRunner性能测试工具中的一个重要组成部分,它用于分析测试数据并生成有关系统性能的报告。LoadRunner分析器能够收集、存储和分析在LoadRunner测试期间生成的数据,并以图形、报表和表格的形式显示出这些数据。分析器还可以根据用户的要求生成详细的测试结果报告,以评估系统的性能瓶颈,并帮助识别可能的性能问题。41现代计算机2023年LoadRunner的主要应用场景是评估 Web应用程序或网络服务器的性能和可靠性,以及确定系统在极端情况下的表现。它通常用于评估系统的响应时间、吞吐量、瓶颈分析、数据库性能、系统扩展性等方面的性能。通过使用LoadRunner,开发人员和测试人员可以

22、对系统进行完整的性能测试,从而确保系统在生产环境中能够承受大量的访问和交互。4未来发展趋势4 4.1 1智能化测试智能化测试软件测试技术的未来发展方向之一就是智能测试。智能化测试(intelligence testing)是指利用人工智能、机器学习等技术,使软件测试过程自动化、智能化、效率更高、精度更高。它可以自动生成测试用例,评估测试效果,快速识别故障,并进行故障定位和恢复。智能测试技术有助于提高测试效率、降低测试成本、改善软件质量,以及对 DevOps 工作流的更好支持。4 4.2 2深度学习与机器学习深度学习与机器学习近年来,深度学习已广泛应用于自动驾驶等安全关键领域。深度学习技术贯穿多

23、个模块,自动驾驶系统包括感知、决策和控制三个部分。Autopilot 系统基于深度学习技术在边界输入条件下所做出的错误行为,其后果往往是灾难性的。因此,测试 Autopilot系统对提高其可靠性和安全性意义重大16。机器学习致力于研究如何通过计算手段来提高系统自身的性能,即通过对已知数据的训练来帮助对新数据的预测和判断。当前软件测试领域的研究热点是利用机器学习技术提高软件测试效率,确保软件质量17。为此,随着人工智能和机器学习的飞速发展,软件测试领域也正在积极探索深度学习与机器学习的应用。在软件测试中,深度学习与机器学习可以实现自动生成测试用例、自动执行测试、自动诊断故障等功能,大大提高测试效

24、率和准确率。在未来,软件测试中的深度学习和机器学习技术将不断发展,并在软件测试领域中发挥重要作用。所以,对这些技术进行研究,并在实际工作中加以应用,就显得十分必要。4 4.3 3云端测试云端测试云计算为软件测试提供强大支撑,提供了大量资源。将传统和现代技术通过有效的形式进行对比,云计算的计算机软件目前相对于传统的信息技术有以下优势,其具体内容如图7所示。图 7云计算的计算机软件优越性(1)费用相对低廉,因为云计算软件测试设备通常通过云供应商直接提供,再也不用单独采购,这样相应的资金投入就可以合理地节省下来。云计算下的软件测试人员工作都是通过最有效的形式进行的,相对于需要配备固定测试人员的传统软

25、件测试,使用云计算可以节省一定的人力物力资源。(2)人性化付费模式,其本身与传统的测试软件不同,采用的是一次性付费的模式,而云计算一般会根据用户自身的实际情况,采取阶段性收费的方式,也能够对合理的付费方式进行筛选。(3)管理优先,云计算下的测试必须采用集中管理的模式,这样才能合理地提高软件的各种测试协调性,进而提高整体的测试效率,也才能针对实际情况进行恰当的计算,从而达到质量提升的最大化,进而降低人工操作失误所带来的质量问题18,在云计算下的测试必须采用集中管理模式。此外,云计算也能提供更加快速、高效、经济的软件测试解决方案。例如,为了保证软件的高质量,测试者可以在短时间内使用云服务器进行大量

26、测试。同时,云计算也能够在多种不同的环境下对软件进行测试,以保证软件的兼容性和可靠性,提供一个全面的软件测试环境。42林生旭等:软件测试技术及其测试工具的研究与应用第12期5结语软件测试在实现软件精品化方面的作用,正随着软件产业的快速发展而愈加明显。对保证软件质量和可靠性起着至关重要的作用,软件测试技术和工具是软件开发过程中不可缺少的一部分。通过不断演进的软件测试技术和工具,可以更好地评估软件的质量和可靠性,为软件开发提供可靠的保障。未来,将不断发展软件测试技术和工具,提供更加先进和高效的解决方案,为软件开发和研究提供更多支持。参考文献:1 许瑞芳,姜枫.软件测试技术应用与综合管理之探析 J.

27、电子质量,2020(3):5053.2 栗泰之.大数据背景下软件测试技术发展状况 J.数字通信世界,2022(11):171173.3 施莹超.计算机软件测试技术与开发应用探讨 J.信息与电脑(理论版),2019,31(21):8889,92.4 妥泽花.基于黑盒测试与白盒测试的比较探究 J.电子世界,2021(11):5556.5 金培勋.软件工程中软件测试技术的研究 J.信息记录材料,2021,22(9):9899.6 周昱伟.计算机软件测试技术研究 J.电子技术与软件工程,2021(17):4950.7 朱海燕.计算机软件测试技术及其应用研究 J.信息记录材料,2021,22(4):18

28、7188.8 钟治初.关于软件测试的方法 J.农业网络信息,2005(2):5152.9 孔春丽,王应邦.关于大数据背景下软件测试技术的研究 J.信息与电脑(理论版),2019(12):1920.10 张赟.计算机软件开发的数据库测试技术 J.电子技术与软件工程,2020(17):150151.11 史传倩.计算机软件测试技术与深度开发应用研究J.信息与电脑(理论版),2022,34(14):4446.12 伍炳霖,李昕昕,龚勋.QTP自动化测试工具技术以及与手工测试的对比J.电脑知识与技术,2018,14(26):195197.13 梁琛.QTP在自动化测试中的应用 J.电脑编程技巧与维护,

29、2021(6):4952.14 韦亚军,张文文.一种标准化的软件性能测试流程设计与研究 J.计算机测量与控制,2022,30(8):3137.15 王淑满,潘丽云,田雨,等.基于LoadRunner的企业级应用性能测试设计与实现 J.电脑知识与技术,2020,16(25):209211.16 王赞,闫明,刘爽,等.深度神经网络测试研究综述J.软件学报,2020,31(5):12551275.17 邹小彬.基于机器学习的软件测试技术专利分析J.中国科技信息,2020(12):2324.18 常玲霞,宋娅菲,石秀君.基于云计算的计算机软件测试技术分析 J.网络安全技术与应用,2022(3):596

30、0.Research and application of software testing technology and its testingtoolsLin Shengxu,Pan Maojie*(School of Computer Science,Guangdong Polytechnic Normal University,Guangzhou 510665,China)Abstract:The quality of software development is becoming increasingly important with the rapid development o

31、f computertechnology,and software testing is one of the important means to ensure software quality.Software Testing is an indispensable partof the software development process,aiming to improve software quality and software reliability through various methods and tools.The article will introduce the

32、 concept and tool application of software testing technology,and introduce commonly used softwaretesting tools,such as QTP,LoadRunner,combined with specific cases for application.Finally,the trend of testing technology andtest tools in the future is summarized.Keywords:software testing;testing technology;testing tools 43

展开阅读全文
相似文档                                   自信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 

客服