CN114691514A - 项目测试方法、设备及存储介质 - Google Patents
项目测试方法、设备及存储介质 Download PDFInfo
- Publication number
- CN114691514A CN114691514A CN202210360171.XA CN202210360171A CN114691514A CN 114691514 A CN114691514 A CN 114691514A CN 202210360171 A CN202210360171 A CN 202210360171A CN 114691514 A CN114691514 A CN 114691514A
- Authority
- CN
- China
- Prior art keywords
- test
- project
- interface
- code
- test case
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3676—Test management for coverage analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请涉及一种项目测试方法、设备及存储介质,属于计算机技术领域,其包括:基于待测项目的项目信息生成测试任务;在执行每项测试任务的过程中进行代码插桩操作,得到待测项目的代码的方法块和每一行代码;基于测试任务中UI界面的界面元素和界面节点生成测试用例;执行测试用例得到测试结果;基于代码插桩操作的插桩结果和测试用例的执行结果生成测试报告,测试报告包括测试用例的执行覆盖率、测试用例所涉及的代码中方法块的代码覆盖率和待测项目全局的代码覆盖率;可以解决黑盒测试无法判断项目中所有代码是否全部被执行到,测试是否全面、以及无法自动生成测试用例的问题;提高测试用例的生成效率;保证测试的全面性。
Description
本申请要求于2021年12月24日提交中国专利局、申请号为202111595760.8、发明名称为“基于UI测试的软件测试方法、平台、装置、存储介质”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
【技术领域】
本申请涉及一种项目测试方法、设备及存储介质,属于计算机技术领域。
【背景技术】
现有的项目完成后需要经过测试才能上线。目前的测试方式一般为:通过UI界面对功能进行黑盒测试。
然而,黑盒测试无法判断项目中所有代码是否全部被执行到,测试是否全面。
【发明内容】
本申请提供了一种项目测试方法、设备及存储介质,可以解决黑盒测试无法判断项目中所有代码是否全部被执行到,测试是否全面的问题、同时可以解决UI界面功能无法直接转换为直接可用的测试用例文档的问题。本申请提供如下技术方案:
一方面,提供一种项目测试方法,所述方法包括:
获取人工定义的待测项目的项目信息;
基于所述项目信息生成测试任务;
在执行每项测试任务的过程中进行代码插桩操作,得到所述待测项目的代码的方法块和每一行代码;
提取所述测试任务中UI界面的界面元素和界面节点;
基于所述界面元素和所述界面节点生成测试用例;
执行所述测试用例,得到测试结果;所述测试结果包括测试的预期结果与实际结果是否相符;
基于所述代码插桩操作的插桩结果和测试用例的执行结果生成测试报告,所述测试报告包括所述测试用例的执行覆盖率、所述测试用例所涉及的代码中方法块的代码覆盖率和所述待测项目全局的代码覆盖率。
可选地,所述项目信息包括开发语言,所述在执行每项测试任务的过程中进行代码插桩操作,得到所述待测项目的代码的方法块和每一行代码,包括:
对所述待测项目的代码进行词法分析和语法分析,得到所述待测项目的方法块位置和代码行位置;
在所述方法块位置和所述代码行位置设置所述开发语言对应的探针函数;
在执行每项测试任务的过程中执行所述探针函数,得到所述待测项目的代码的方法块和每一行代码。
可选地,所述提取所述测试任务中UI界面的界面元素和界面节点,包括:
使用预设选择器返回所述UI界面中的所有界面元素和界面节点。
可选地,所述基于所述界面元素和所述界面节点生成测试用例,包括:
在预设的模板库中确定所述界面元素和所述界面节点相匹配的测试用例模板;
将所述界面元素和所述界面节点的界面参数输入所述测试用例模板,得到所述测试用例。
可选地,所述基于所述代码插桩操作的插桩结果和测试用例的执行结果生成测试报告,包括:
将所述测试用例对应的测试代码与项目代码进行比较,得到所述执行覆盖率;
将所述测试用例所涉及的方法块与项目代码进行比较,得到所述方法块的代码覆盖率;
将所述插桩结果与所述项目代码进行比较,得到所述全局的代码覆盖率。
可选地,所述测试报告还包括所述待测项目的项目需求和所述测试任务、以及所述测试用例的关系图谱,所述关系图谱基于所述界面元素和界面节点之间的关系确定。
可选地,所述基于所述项目信息生成测试任务,包括:
配置所述待测项目的测试人员;
设置所述待测项目的测试任务和每个测试任务对应的测试人员。
可选地,所述基于所述界面元素和所述界面节点生成测试用例之后,还包括:
接收对所述测试用例的修改操作,以修正所述测试用例。
另一方面,一种电子设备,所述电子设备包括处理器和存储器;所述存储器中存储有程序,所述程序由所述处理器加载并执行以实现上述项目测试方法。
另一方面,一种计算机可读存储介质,所述存储介质中存储有程序,所述程序被处理器执行时用于实现上述项目测试方法。
本申请的有益效果至少包括:通过获取人工定义的待测项目的项目信息;基于项目信息生成测试任务;在执行每项测试任务的过程中进行代码插桩操作,得到待测项目的代码的方法块和每一行代码;提取测试任务中UI界面的界面元素和界面节点;基于界面元素和界面节点生成测试用例;执行测试用例,得到测试结果;测试结果包括测试的预期结果与实际结果是否相符;基于代码插桩操作的插桩结果和测试用例的执行结果生成测试报告,测试报告包括测试用例的执行覆盖率、测试用例所涉及的代码中方法块的代码覆盖率和待测项目全局的代码覆盖率;可以解决黑盒测试无法判断项目中所有代码是否全部被执行到,测试是否全面的问题、同时可以解决UI界面功能无法直接转换为直接可用的测试用例文档的问题;通过提取UI界面的界面元素和界面节点即可自动生成测试用例,可以提高测试用例的生成效率。同时,通过代码插桩操作可以确定出代码覆盖率,可以判断项目中所有代码是否全部被执行到,保证测试的全面性。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,并可依照说明书的内容予以实施,以下以本申请的较佳实施例并配合附图详细说明如后。
【附图说明】
图1是本申请一个实施例提供的项目测试方法的流程图;
图2是本申请一个实施例提供的项目测试装置的框图;
图3是本申请一个实施例提供的电子设备的框图。
【具体实施方式】
下面结合附图和实施例,对本申请的具体实施方式做进一步详细描述。以下实施例用于说明本申请,但不用来限制本申请的范围。
首先,对于本申请涉及的若干名词进行介绍。
测试用例(Test Case):是指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。测试用例的内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等,最终形成文档。简单地认为,测试用例是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,用于核实是否满足某个特定软件需求。
元素(element):页面里面所有的标签都是元素。
节点(node):网页中所有内容都是节点(标签,属性,文本,注释等)。
代码覆盖率:是软件测试中的一种度量,描述程序中源代码被测试的比例和程度,所得比例称为代码覆盖率。
可选地,本申请以各个实施例提供的项目测试方法用于电子设备中为例进行说明,该电子设备为终端或服务器,终端可以为手机、计算机、平板电脑等,本实施例不对电子设备的类型作限定。
图1是本申请一个实施例提供的项目测试方法的流程图,该方法至少包括以下几个步骤:
步骤101,获取人工定义的待测项目的项目信息。
电子设备通过测试软件的显示界面显示项目信息的输入框,以供用户人工定义项目信息。
示意性地,项目信息包括但不限于:项目需求、项目测试地址、开发语言及项目部署的服务信息等。
步骤102,基于项目信息生成测试任务。
具体地,基于项目信息生成测试任务,包括:配置待测项目的测试人员;设置待测项目的测试任务和每个测试任务对应的测试人员。
可选地,电子设备还可以获取每个测试人员的测试权限,以按照测试权限为每个测试任务分配测试人员。
每个待测项目可以被划分为至少一个测试任务,划分方式可以是按照单元划分,或者按照用户自定义的模块划分等,本实施例不对测试任务的划分方式作限定。
步骤103,在执行每项测试任务的过程中进行代码插桩操作,得到待测项目的代码的方法块和每一行代码。
示意性地,项目信息包括开发语言,在执行每项测试任务的过程中进行代码插桩操作,得到待测项目的代码的方法块和每一行代码,包括:对待测项目的代码进行词法分析和语法分析,得到待测项目的方法块位置和代码行位置;在方法块位置和代码行位置设置开发语言对应的探针函数;在执行每项测试任务的过程中执行探针函数,得到待测项目的代码的方法块和每一行代码。
步骤104,提取测试任务中UI界面的界面元素和界面节点。
可选地,提取测试任务中UI界面的界面元素和界面节点,包括:使用预设选择器返回UI界面中的所有界面元素和界面节点。
其中,预设选择器可以是CSS选择器,或者用户定义的元素标识和节点标识等,本实施例不对预设选择器的实现方式作限定。
步骤105,基于界面元素和界面节点生成测试用例。
具体地,基于界面元素和界面节点生成测试用例,包括:在预设的模板库中确定界面元素和界面节点相匹配的测试用例模板;将界面元素和界面节点的界面参数输入测试用例模板,得到测试用例。
可选地,基于界面元素和界面节点生成测试用例之后,还包括:接收对测试用例的修改操作,以修正测试用例。
修正操作包括但不限于:对测试用例的内容进行修改、补充测试的预期结果和测试版本信息等,本实施例不对修正操作的具体内容作限定。
步骤106,执行测试用例,得到测试结果;测试结果包括测试的预期结果与实际结果是否相符。
按照测试用例对测试任务进行测试,得到测试结果。在测试的预期结果与实际结果相符的情况下,说明UI界面的界面元素和界面节点对应的功能符合项目需求;在测试的预期结果与实际结果不相符的情况下,说明UI界面的界面元素和界面节点对应的功能不符合项目需求,此时,需要对测试任务对应的项目代码进行修改。
步骤107,基于代码插桩操作的插桩结果和测试用例的执行结果生成测试报告,测试报告包括测试用例的执行覆盖率、测试用例所涉及的代码中方法块的代码覆盖率和待测项目全局的代码覆盖率。
示意性地,基于代码插桩操作的插桩结果和测试用例的执行结果生成测试报告,包括:将测试用例对应的测试代码与项目代码进行比较,得到执行覆盖率;将测试用例所涉及的方法块与项目代码进行比较,得到方法块的代码覆盖率;将插桩结果与项目代码进行比较,得到全局的代码覆盖率。
可选地,测试报告还包括待测项目的项目需求和测试任务、以及测试用例的关系图谱。其中,关系图谱基于界面元素和界面节点之间的关系确定。
每个UI界面可以通过文档对象模型(Document Object Model,DOM)树表示,DOM树中的每个节点表示一个HTML标签或标签内的文本项,DOM树的边描述了HTML文档中标签间的相互关联性。基于DOM树即可确定出界面元素和界面节点之间的关系,从而确定出测试用例的关系图谱。
综上所述,本实施例提供的项目测试方法,通过获取人工定义的待测项目的项目信息;基于项目信息生成测试任务;在执行每项测试任务的过程中进行代码插桩操作,得到待测项目的代码的方法块和每一行代码;提取测试任务中UI界面的界面元素和界面节点;基于界面元素和界面节点生成测试用例;执行测试用例,得到测试结果;测试结果包括测试的预期结果与实际结果是否相符;基于代码插桩操作的插桩结果和测试用例的执行结果生成测试报告,测试报告包括测试用例的执行覆盖率、测试用例所涉及的代码中方法块的代码覆盖率和待测项目全局的代码覆盖率;可以解决黑盒测试无法判断项目中所有代码是否全部被执行到,测试是否全面的问题、同时可以解决UI界面功能无法直接转换为直接可用的测试用例文档的问题;通过提取UI界面的界面元素和界面节点即可自动生成测试用例,可以提高测试用例的生成效率。同时,通过代码插桩操作可以确定出代码覆盖率,可以判断项目中所有代码是否全部被执行到,保证测试的全面性。
图2是本申请一个实施例提供的项目测试装置的框图。该装置至少包括以下几个模块:信息定义模块210、任务生成模块220、代码插桩模块230、界面提取模块240、用例生成模块250、用例执行模块260和报告生成模块270。
信息定义模块210,用于获取人工定义的待测项目的项目信息;
任务生成模块220,用于基于所述项目信息生成测试任务;
代码插桩模块230,用于在执行每项测试任务的过程中进行代码插桩操作,得到所述待测项目的代码的方法块和每一行代码;
界面提取模块240,用于提取所述测试任务中UI界面的界面元素和界面节点;
用例生成模块250,用于基于所述界面元素和所述界面节点生成测试用例;
用例执行模块260,用于执行所述测试用例,得到测试结果;所述测试结果包括测试的预期结果与实际结果是否相符;
报告生成模块270,用于基于所述代码插桩操作的插桩结果和测试用例的执行结果生成测试报告,所述测试报告包括所述测试用例的执行覆盖率、所述测试用例所涉及的代码中方法块的代码覆盖率和所述待测项目全局的代码覆盖率。
相关细节参考上述方法实施例。
需要说明的是:上述实施例中提供的项目测试装置在进行项目测试时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将项目测试装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的项目测试装置与项目测试方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图3是本申请一个实施例提供的电子设备的框图。该设备至少包括处理器301和存储器302。
处理器301可以包括一个或多个处理核心,比如:4核心处理器、8核心处理器等。处理器301可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器301也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器301可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器301还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器302可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器302还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器302中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器301所执行以实现本申请中方法实施例提供的项目测试方法。
在一些实施例中,电子设备还可选包括有:外围设备接口和至少一个外围设备。处理器301、存储器302和外围设备接口之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口相连。示意性地,外围设备包括但不限于:射频电路、触摸显示屏、音频电路、和电源等。
当然,电子设备还可以包括更少或更多的组件,本实施例对此不作限定。
可选地,本申请还提供有一种计算机可读存储介质,所述计算机可读存储介质中存储有程序,所述程序由处理器加载并执行以实现上述方法实施例的项目测试方法。
可选地,本申请还提供有一种计算机产品,该计算机产品包括计算机可读存储介质,所述计算机可读存储介质中存储有程序,所述程序由处理器加载并执行以实现上述方法实施例的项目测试方法。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种项目测试方法,其特征在于,所述方法包括:
获取人工定义的待测项目的项目信息;
基于所述项目信息生成测试任务;
在执行每项测试任务的过程中进行代码插桩操作,得到所述待测项目的代码的方法块和每一行代码;
提取所述测试任务中UI界面的界面元素和界面节点;
基于所述界面元素和所述界面节点生成测试用例;
执行所述测试用例,得到测试结果;所述测试结果包括测试的预期结果与实际结果是否相符;
基于所述代码插桩操作的插桩结果和测试用例的执行结果生成测试报告,所述测试报告包括所述测试用例的执行覆盖率、所述测试用例所涉及的代码中方法块的代码覆盖率和所述待测项目全局的代码覆盖率。
2.根据权利要求1所述的方法,其特征在于,所述项目信息包括开发语言,所述在执行每项测试任务的过程中进行代码插桩操作,得到所述待测项目的代码的方法块和每一行代码,包括:
对所述待测项目的代码进行词法分析和语法分析,得到所述待测项目的方法块位置和代码行位置;
在所述方法块位置和所述代码行位置设置所述开发语言对应的探针函数;
在执行每项测试任务的过程中执行所述探针函数,得到所述待测项目的代码的方法块和每一行代码。
3.根据权利要求1所述的方法,其特征在于,所述提取所述测试任务中UI界面的界面元素和界面节点,包括:
使用预设选择器返回所述UI界面中的所有界面元素和界面节点。
4.根据权利要求1所述的方法,其特征在于,所述基于所述界面元素和所述界面节点生成测试用例,包括:
在预设的模板库中确定所述界面元素和所述界面节点相匹配的测试用例模板;
将所述界面元素和所述界面节点的界面参数输入所述测试用例模板,得到所述测试用例。
5.根据权利要求1所述的方法,其特征在于,所述基于所述代码插桩操作的插桩结果和测试用例的执行结果生成测试报告,包括:
将所述测试用例对应的测试代码与项目代码进行比较,得到所述执行覆盖率;
将所述测试用例所涉及的方法块与项目代码进行比较,得到所述方法块的代码覆盖率;
将所述插桩结果与所述项目代码进行比较,得到所述全局的代码覆盖率。
6.根据权利要求1所述的方法,其特征在于,所述测试报告还包括所述待测项目的项目需求和所述测试任务、以及所述测试用例的关系图谱,所述关系图谱基于所述界面元素和界面节点之间的关系确定。
7.根据权利要求1所述的方法,其特征在于,所述基于所述项目信息生成测试任务,包括:
配置所述待测项目的测试人员;
设置所述待测项目的测试任务和每个测试任务对应的测试人员。
8.根据权利要求1所述的方法,其特征在于,所述基于所述界面元素和所述界面节点生成测试用例之后,还包括:
接收对所述测试用例的修改操作,以修正所述测试用例。
9.一种电子设备,其特征在于,所述电子设备包括处理器和存储器;所述存储器中存储有程序,所述程序由所述处理器加载并执行以实现如权利要求1至8任一项所述的项目测试方法。
10.一种计算机可读存储介质,其特征在于,所述存储介质中存储有程序,所述程序被处理器执行时用于实现如权利要求1至8任一项所述的项目测试方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111595760 | 2021-12-24 | ||
CN2021115957608 | 2021-12-24 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114691514A true CN114691514A (zh) | 2022-07-01 |
Family
ID=82142436
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210360171.XA Pending CN114691514A (zh) | 2021-12-24 | 2022-04-07 | 项目测试方法、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114691514A (zh) |
-
2022
- 2022-04-07 CN CN202210360171.XA patent/CN114691514A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3563243B1 (en) | Determining application test results using screenshot metadata | |
CN109697468B (zh) | 样本图像的标注方法、装置及存储介质 | |
CN110990053A (zh) | 机器学习方案模板的创建方法、使用方法及装置 | |
CN108170425B (zh) | 一种程序代码的修改方法、修改装置及终端设备 | |
CN111209203B (zh) | 一种基于源代码的模型验证方法 | |
CN113835643B (zh) | 数据存储方法、装置、电子设备及可读存储介质 | |
CN111475390A (zh) | 日志采集系统部署方法、装置、设备及存储介质 | |
CN110908915A (zh) | 一种测试覆盖率的展示方法、装置及计算机系统 | |
CN108304614B (zh) | 集成电路版图引脚的设置方法及装置 | |
CN103049374B (zh) | 一种自动化测试的方法及装置 | |
CN113342692B (zh) | 测试用例自动生成方法、装置、电子设备及存储介质 | |
CN110134598B (zh) | 一种批量处理方法、装置及系统 | |
CN115168130A (zh) | 一种芯片测试方法、装置、电子设备及存储介质 | |
CN114880238A (zh) | 移动端界面测试方法、装置、设备及存储介质 | |
CN108776632B (zh) | 面向信号自检流程自动生成方法、装置、设备及可读存储介质 | |
CN114691514A (zh) | 项目测试方法、设备及存储介质 | |
CN114385155A (zh) | vue项目可视化工具生成方法、装置、设备及存储介质 | |
CN112685023A (zh) | 基于基础库的前端开发处理方法、装置、设备和存储介质 | |
CN112699103A (zh) | 基于数据预分析的数据规则探查方法及装置 | |
CN113377648A (zh) | 软件系统诊断方法、装置、电子设备及计算机可读介质 | |
CN112445711A (zh) | 一种基于Web网页可视化拖拽生成模拟测试场景的测试方法 | |
CN111078574A (zh) | 生成影响分析报告的方法及装置 | |
US11443092B2 (en) | Defect weight formulas for analog defect simulation | |
CN110309038B (zh) | 性能测试方法、装置、电子设备及计算机可读存储介质 | |
CN115687129A (zh) | 一种覆盖率报告生成方法、装置、存储介质和计算机设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |