CN111651346B - 前端组件的测试方法、装置、存储介质及计算机设备 - Google Patents

前端组件的测试方法、装置、存储介质及计算机设备 Download PDF

Info

Publication number
CN111651346B
CN111651346B CN202010341624.5A CN202010341624A CN111651346B CN 111651346 B CN111651346 B CN 111651346B CN 202010341624 A CN202010341624 A CN 202010341624A CN 111651346 B CN111651346 B CN 111651346B
Authority
CN
China
Prior art keywords
test
code
end component
parameters
report
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.)
Active
Application number
CN202010341624.5A
Other languages
English (en)
Other versions
CN111651346A (zh
Inventor
张玉荣
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Ping An Medical Health Technology Service Co Ltd
Original Assignee
Shenzhen Ping An Medical Health Technology Service Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Ping An Medical Health Technology Service Co Ltd filed Critical Shenzhen Ping An Medical Health Technology Service Co Ltd
Priority to CN202010341624.5A priority Critical patent/CN111651346B/zh
Publication of CN111651346A publication Critical patent/CN111651346A/zh
Application granted granted Critical
Publication of CN111651346B publication Critical patent/CN111651346B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3676Test management for coverage analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3692Test management for test results analysis

Abstract

本发明测试自动化技术领域,公开了一种前端组件的测试方法,其中方法包括:获取前端组件代码和前端组件测试需求信息,并在前端组件代码中嵌入代码覆盖率统计代码,得到测试代码;根据测试代码和前端组件代码测试需求信息,在集成开发环境的单元测试框架下建立测试用例集;对测试用例集进行测试,得到测试结果;根据测试结果,生成测试报告和代码覆盖率统计报告。上述方法可以可以在生成测试结果的同时生成代码覆盖率统计报告,无需二次操作即可及时的查询出测试的全面度情况,同时,本方案还可以根据测试需求自动搭建测试用例集,以准确的测试出前端组件代码的功能实现情况,提高了前端组件代码的测试效率。

Description

前端组件的测试方法、装置、存储介质及计算机设备
技术领域
本发明涉及软件测试领域,尤其是涉及一种前端组件的测试方法、装置、存储介质及计算机设备。
背景技术
软件测试是系统开发过程中一个非常重要的环节,在过往的软件项目测试过程中,很多测试问题都是在应用组装环节才被发现的,在这种情形下,测试问题暴露的较晚,反复测试的次数较多,测试周期也较长,目前的方法是采用单元测试,即对软件项目中最小可测试单元进行检验和验证,以尽快暴露各种测试问题。
对于需要测试大量的B/S架构系统且存在很多公用的组件模块而言,前端组件的单元测试意义极大。但是,目前市场上还没有一个很好的前端代码单元测试工具,都是需要根据对应的业务系统业务逻辑,利用MoCha框架编写前端代码自动化测试脚本来开展单元测试工作,这种测试方法存在很多不足,如整体测试效率较低以及查询代码覆盖率操作性差等,如果前端组件无法充分测试,会遗留较多的问题,那么,当组件库为其他项目所使用时,调试的过程将非常繁琐,会浪费大量的开发时间。
发明内容
有鉴于此,本申请提供了一种前端组件的测试方法、装置、存储介质及计算机设备,主要目的在于解决前端组件整体测试效率较低以及查询代码覆盖率操作性较差的技术问题。
根据本发明的第一个方面,提供了一种前端组件的测试方法,该方法包括:
获取前端组件代码和前端组件测试需求信息,并在前端组件代码中嵌入代码覆盖率统计代码,得到测试代码;
根据测试代码和前端组件代码测试需求信息,在集成开发环境的单元测试框架下建立测试用例集;
对测试用例集进行测试,得到测试结果;
根据测试结果,生成测试报告和代码覆盖率统计报告。
根据本发明的第二个方面,提供了一种前端组件的测试装置,所述装置包括:
测试代码生成模块,用于获取前端组件代码和前端组件测试需求,并在前端组件代码中嵌入代码覆盖率统计代码,得到测试代码;
测试用例搭建模块,用于根据测试代码和前端组件代码测试需求,在集成开发环境的单元测试框架下建立一组测试用例集;
测试结果生成模块,用于对所述测试用例集进行测试,得到测试结果;
测试报告生成模块,用于根据所述测试结果,生成测试报告和代码覆盖率统计报告。
根据本发明的第三个方面,提供了一种存储介质,其上存储有计算机程序,所述程序被处理器执行时实现上述前端组件的测试方法。
根据本发明的第四个方面,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述前端组件的测试方法。
本发明提供的一种前端组件的测试方法、装置、存储介质及计算机设备,首先获取了前端组件代码和前端组件测试需求,然后在前端组件代码中嵌入代码覆盖率统计代码,以便在测试的同时进行代码覆盖率统计,继而,根据前端组件代码测试需求在集成开发环境的单元测试框架下建立一组测试用例集,最后,对该测试用例集进行测试,得到测试结果并生成测试报告和代码覆盖率统计报告。本方案通过在前端组件代码中嵌入代码覆盖率统计代码,可以在生成测试结果的同时生成代码覆盖率统计报告,无需二次操作即可及时的查询出测试的代码覆盖率情况,同时,本方案还可以根据测试需求自动搭建测试用例集,以准确的测试出前端组件代码的功能实现情况,提高了前端组件代码的测试效率,便于用户发现前端组件代码中存在的问题。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1示出了本发明实施例提供的一种前端组件的测试方法的流程示意图;
图2示出了本发明实施例提供的另一种前端组件的测试方法的流程示意图;
图3示出了本发明实施例提供的一种前端组件的测试装置的结构示意图;
图4示出了本发明实施例提供的另一种前端组件的测试装置的结构示意图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
在一个实施例中,如图1所示,提供了一种前端组件的测试方法,以该方法应用于计算机设备为例进行说明,包括以下步骤:
如背景技术所述,对于复杂架构的系统且存在很多公用的组件模块而言,前端组件的单元测试意义极大,其中,单元测试是开发人员编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。通常而言,一个单元测试是用于判断某个特定条件或者场景下某个特定函数的行为。例如,单元测试可以把一个很大的值放入一个有序列表中去,然后确认该值出现在列表的尾部。或者,单元测试也可以会从字符串中删除匹配某种模式的字符,然后确认字符串确实不再包含这些字符了。总的来说,单元就是人为规定的最小的被测功能模块,具体到前端组件中,可以指一个窗口或一个菜单等。
101、获取前端组件代码和前端组件测试需求信息,并在前端组件代码中嵌入代码覆盖率统计代码,得到测试代码。
具体的,可以首先通过前端组件库地址获取待测试的前端组件代码,以及获取与该前端组件代码对应的测试需求信息,然后在前端组件代码的每一行可执行语句或特定行可执行语句后插入一组代码覆盖率统计代码,其中,特定行可执行语句包括代码基本块的某一行语句和跳转语句等在代码中可以起到标记作用的语句;代码基本块指的是一段程序中第一条语句被执行过一次,则这段程序中的每一条语句都被执行一次的一个程序块;代码覆盖率统计代码可以是一组或一个变量,其插入的行的代码执行过一次,其值就累加一次,以此就可以计算该行执行的次数,在本实施例中,代码覆盖率统计代码可以自动识别出嵌入的位置,并将相应的代码设置在识别好的位置处。需要说明的是,覆盖率代码与测试代码的功能无关联,且单独占用内存,因此嵌入的覆盖率统计代码不会对测试代码造成影响。
102、根据测试代码和前端组件代码测试需求信息,在集成开发环境的单元测试框架下建立测试用例集。
其中,单元测试框架指的是一个可复用的公共结构,此公共结构可以在多个应用程序之间进行共享,并且可以通过功能拓展满足特定的要求;集成开发环境指的是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面等工具。
具体的,前端组件测试需求信息中记载有前端组件代码的输入参数和预期输出参数,因此,可以根据前端组件代码测试需求信息中记载的每一组输入参数分别生成一个配置代码,然后将配置代码和测试代码进行结合生成测试用例,通过此方法,可生成多个分别涵盖有所有输入参数的测试用例,最后通过单元测试框架,将多个测试用例搭建在一起,即可构成一组测试用例集。
103、对测试用例集进行测试,得到测试结果。
具体的,可以设置多组涵盖所有输入情形的测试参数,包括正常参数、边界参数和非法参数等,然后将各正常参数、边界参数和非法参数等测试参数分别输入到测试用例集中,以分别得到正常参数、边界参数和非法参数对应的实际输出参数,将所有的输入参数和对应的输出参数归总在一起,就得到了测试用例集的测试结果。
104、根据测试结果,生成测试报告和代码覆盖率统计报告。
具体的,可以将测试结果中的多组实际输出参数和预期输出参数进行一一对比,得到测试用例通过结果,然后,将测试用例通过结果导入到预设的测试报告模板中就可以生成可视化的测试报告。其中,测试报告的内容可以包括测试用例集名称、测试用例条数、测试用例通过信息和测试用例执行时间等信息。进一步的,可以提取测试结果中的覆盖率统计信息,然后将覆盖率统计信息保存在全局变量中,并根据全局变量中的覆盖率统计信息,生成预设格式的代码覆盖率统计报告。其中,代码覆盖率统计报告的内容可以包括语句覆盖率、分支覆盖率、函数覆盖率和行覆盖率等信息。
通过测试报告和代码覆盖率统计报告,可以清晰的查看到前端组件代码的功能实现情况,以及每一行代码执行的频率,代码实际执行的条数,每段代码使用的计算时间,根据这些信息,可以进一步查找到代码中可优化的点,增强代码的稳定性。
本实施例提供的一种前端组件的测试方法,首先获取了前端组件代码和前端组件测试需求,然后在前端组件代码中嵌入代码覆盖率统计代码,以便在测试的同时进行代码覆盖率统计,继而,根据前端组件代码测试需求在集成开发环境的单元测试框架下建立一组测试用例集,最后,对该测试用例集进行测试,得到测试结果并生成测试报告和代码覆盖率统计报告。本方案通过在前端组件代码中嵌入代码覆盖率统计代码,可以在生成测试结果的同时生成代码覆盖率统计报告,无需二次操作即可及时的查询出测试的代码覆盖率情况,同时,本方案还可以根据测试需求自动搭建测试用例集,以准确的测试出前端组件代码的功能实现情况,提高了前端组件代码的测试效率,便于用户发现前端组件代码中存在的问题。
进一步的,作为上述实施例具体实施方式的细化和扩展,为了完整说明本实施例的实施过程,提供了前端组件的测试方法,如图2所示,该方法包括以下步骤:
201、获取前端组件代码和前端组件测试需求信息,并在前端组件代码中嵌入代码覆盖率统计代码,得到测试代码。
具体的,可以首先通过前端组件库地址获取待测试的前端组件代码,以及获取与该前端组件代码对应的测试需求信息,然后在前端组件代码的每一行可执行语句或特定行可执行语句后插入一组代码覆盖率统计代码,插入代码覆盖率统计代码的具体过程可以包括:将前端组件代码转换为抽象语法树,并在抽象语法树中的特定位置处注入代码覆盖率统计代码,最后,对注入了代码覆盖率统计代码的抽象语法树进行转换,得到测试代码。在本实施例中,代码覆盖率统计代码可以自动识别出嵌入的位置,并将相应的代码设置在识别好的位置处。
202、根据测试代码和前端组件代码测试需求信息,在集成开发环境的单元测试框架下建立测试用例集。
具体的,可以根据前端组件测试需求信息中记载的前端组件代码的输入参数和预期输出参数,获取与每一个输入参数相对应的测试配置代码,然后,将测试配置代码嵌入到测试代码中,生成多个测试用例,最后,通过单元测试框架,将多个测试用例建立为测试用例集。
在本实施例中,建立测试用例集的过程可以采用如下方式:在Nodejs等集成开发环境下,运用npm install mocha进行MoCha框架的安装,其中,Mocha是一个在Nodejs和浏览器上运行的功能丰富的JavaScript测试框架,测试时可以采用串行方式进行。在MoCha框架里,可以使用it(name,fn)定义多个测试用例,然后采用describe(name,fn)函数将多个测试用例搭建为一个测试用例集。
203、根据前端组件测试需求信息,确定测试用例集的测试用例参数和预期输出参数。
其中,测试用例参数包括正常参数、边界参数和非法参数。正常参数包括离散覆盖参数值域内的任意参数,边界参数包括空值、零值和最大值等参数,非法参数包括类型非法或内存溢出等参数。具体的,可以根据前端组件测试需求信息以及被测前端组件代码的逻辑,分别确定各类测试用例参数对应的预期输出参数。
204、对测试用例集进行测试,得到测试结果。
具体的,可以分别将正常参数、边界参数和非法参数等测试参数输入到测试用例集中,以分别得到正常参数、边界参数和非法参数对应的实际输出参数,从而得到测试结果。
205、根据测试结果,生成测试报告。
具体的,可以将测试结果中的多组实际输出参数和预期输出参数进行一一对比,得到测试用例通过结果,然后,将测试用例通过结果导入到预设的测试报告模板中就生成了测试报告。其中,测试报告的内容可以包括测试用例集名称、测试用例条数、测试用例通过信息和测试用例执行时间等信息。具体的,在执行测试用例之前,可以首先引用moachawesome报告模块,然后在scripts命令中添加--reporter mochawesome命令行,并执行npm run test语句命令运行测试用例集,最后自动生成测试报告,从而使使用者对测试结果有一个很直观的认知。
进一步的,测试用例通过结果的判定过程如下:通过引言库依次判断正常参数、边界参数和非法参数的实际输出参数与预期输出参数是否相同,若实际输出参数和预期输出参数均相同,则判定测试用例测试通过,若实际输出参数和预期输出参数不相同,则判定测试用例测试不通过。例如,测试用例可以将一个测试用例参数输入一个测试用例中,然后利用chai等断言库将实际出参值和预期出参值作比较,继而采用assert断言,当实际出参值和预期出参值相等时,代表一条测试用例通过。
206、根据测试结果,生成代码覆盖率统计报告。
具体的,可以提取测试结果中的覆盖率统计信息,然后将覆盖率统计信息保存在全局变量中,并根据全局变量中的覆盖率统计信息,生成预设格式的代码覆盖率统计报告。其中,代码覆盖率统计报告的内容可以包括语句覆盖率、分支覆盖率、函数覆盖率和行覆盖率等信息。还包括将所述代码覆盖率统计报告上传至区块链中
例如,可以根据项目需求,利用istanbul和babel-istanbul覆盖率统计模块,来量化被测代码和测试用例所覆盖到的代码占比,同时,也可以使用cover参数结合mocha,执行npm run test:cover,在编辑器中直观看到每个前端代码文件夹对应的测试覆盖率,可以理解的是,覆盖率越大,被测代码越多,代码质量得到的保证就越多。
另外,本实施例还可以基于代码覆盖率统计报告得到对应的摘要信息,具体来说,摘要信息由代码覆盖率统计报告进行散列处理得到,比如利用sha256s算法处理得到。将摘要信息上传至区块链可保证其安全性和对用户的公正透明性。用户设备可以从区块链中下载得该摘要信息,以便查证代码覆盖率统计报告是否被篡改。
本实施例所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
本实施例提供的前端组件的测试方法,首先利用单元测试测试颗粒度小、测试覆盖面大的优势,极大地提高了代码质量,然后采用嵌入覆盖率统计代码的方式对代码的覆盖率进行实时统计,使测试工作有了一个更加精细化的展示,有效的减少了系统共用前端组件库调试时的代码漏洞,使开发人员可更加放心重构,提高了测试人员对历史代码回归测试的效率。
进一步的,作为图1、图2所示方法的具体实现,本实施例提供了一种前端组件的测试装置,如图3所示,该装置包括:测试代码生成模块31、测试用例搭建模块32、测试结果生成模块33、测试报告生成模块34。
测试代码生成模块31,可用于获取前端组件代码和前端组件测试需求信息,并在前端组件代码中嵌入代码覆盖率统计代码,得到测试代码;
测试用例搭建模块32,可用于根据测试代码和前端组件代码测试需求信息,在集成开发环境的单元测试框架下建立测试用例集;
测试结果生成模块33,可用于对测试用例集进行测试,得到测试结果;
测试报告生成模块34,可用于根据测试结果,生成测试报告和代码覆盖率统计报告。
在具体的应用场景中,所述测试代码生成模块31,具体可用于将前端组件代码转换为抽象语法树;在抽象语法树中注入代码覆盖率统计代码;对注入了代码覆盖率统计代码的抽象语法树进行转换,得到测试代码。
在具体的应用场景中,所述测试用例搭建模块32,具体可用于根据前端组件测试需求信息,获取与前端组件测试需求相对应的测试配置代码;将测试配置代码嵌入到测试代码中,生成多个测试用例;通过单元测试框架,将多个测试用例建立为测试用例集。
在具体的应用场景中,如图4所示,本装置还包括:测试参数确定模块35,所述测试参数确定模块35可用于根据前端组件测试需求信息,确定测试用例集的测试用例参数和预期输出参数,其中,测试用例参数包括正常参数、边界参数和非法参数。
在具体的应用场景中,所述测试报告生成模块34,具体可用于将测试结果中的实际输出参数和预期输出参数进行对比,得到测试用例通过结果;将测试用例通过结果导入到预设的测试报告模板中,生成测试报告,测试报告的内容包括测试用例集名称、测试用例条数、测试用例通过信息和测试用例执行时间。
在具体的应用场景中,所述测试报告生成模块34,具体还可用于通过引言库,依次判断正常参数、边界参数和非法参数的实际输出参数与预期输出参数是否相同;若实际输出参数和预期输出参数均相同,则判定测试用例测试通过;若实际输出参数和预期输出参数不相同,则判定测试用例测试不通过。
在具体的应用场景中,所述测试报告生成模块34,具体又可用于提取测试结果中的覆盖率统计信息;将覆盖率统计信息保存在全局变量中;根据全局变量中的覆盖率统计信息,生成预设格式的代码覆盖率统计报告,代码覆盖率统计报告的内容包括语句覆盖率、分支覆盖率、函数覆盖率和行覆盖率。还包括上传模块,将代码覆盖率统计报告上传至区块链中。
在具体的应用场景中,可以基于代码覆盖率统计报告得到对应的摘要信息,具体来说,摘要信息由代码覆盖率统计报告进行散列处理得到,比如利用sha256s算法处理得到。将摘要信息上传至区块链可保证其安全性和对用户的公正透明性。用户设备可以从区块链中下载得该摘要信息,以便查证代码覆盖率统计报告是否被篡改。
需要说明的是,本实施例提供的一种前端组件的测试装置所涉及各功能单元的其它相应描述,可以参考图1、图2中的对应描述,在此不再赘述。
基于上述如图1、图2所示方法,相应的,本实施例还提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述如图1、图2所示的前端组件的测试方法。
基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该待识别软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施场景所述的方法。
基于上述如图1、图2所示的方法,以及图3和图4所示的前端组件的测试装置实施例,为了实现上述目的,本实施例还提供了一种前端组件的测试的实体设备,具体可以为个人计算机、服务器、智能手机、平板电脑、智能手表、或者其它网络设备等,该实体设备包括存储介质和处理器;存储介质,用于存储计算机程序;处理器,用于执行计算机程序以实现上述如图1、图2所示的方法。
可选的,该实体设备还可以包括用户接口、网络接口、摄像头、射频(RadioFrequency,RF)电路,传感器、音频电路、WI-FI模块等等。用户接口可以包括显示屏(Display)、输入单元比如键盘(Keyboard)等,可选用户接口还可以包括USB接口、读卡器接口等。网络接口可选的可以包括标准的有线接口、无线接口(如WI-FI接口)等。
本领域技术人员可以理解,本实施例提供的一种前端组件的测试的实体设备结构并不构成对该实体设备的限定,可以包括更多或更少的部件,或者组合某些部件,或者不同的部件布置。
存储介质中还可以包括操作系统、网络通信模块。操作系统是管理上述实体设备硬件和待识别软件资源的程序,支持信息处理程序以及其它待识别软件和/或程序的运行。网络通信模块用于实现存储介质内部各组件之间的通信,以及与信息处理实体设备中其它硬件和软件之间通信。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本申请可以借助软件加必要的通用硬件平台的方式来实现,也可以通过硬件实现。通过应用本申请的技术方案,可以对前端组件进行较为全面的测试,以及时发现前端组件代码中存在的问题,在测试的同时,也会对代码覆盖率进行及时的统计,并在测试结束后生成测试报告和代码覆盖率报告。与现有技术相比,可提高前端组件的测试效率和测试全面度。
本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或流程并不一定是实施本申请所必须的。本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景描述进行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本申请序号仅仅为了描述,不代表实施场景的优劣。以上公开的仅为本申请的几个具体实施场景,但是,本申请并非局限于此,任何本领域的技术人员能思之的变化都应落入本申请的保护范围。

Claims (7)

1.一种前端组件的测试方法,其特征在于,所述方法包括:
获取前端组件代码和前端组件测试需求信息,并在所述前端组件代码中嵌入代码覆盖率统计代码,得到测试代码;
根据所述测试代码和前端组件代码测试需求信息,在集成开发环境的单元测试框架下建立测试用例集;
对所述测试用例集进行测试,得到测试结果;
根据所述测试结果,生成测试报告和代码覆盖率统计报告;
对所述代码覆盖率统计报告进行散列处理,得到对应的摘要信息,将所述摘要信息上传至区块链;
其中,所述对所述测试用例集进行测试,得到测试结果之前,所述方法还包括:
根据所述前端组件测试需求信息,确定所述测试用例集的测试用例参数和预期输出参数,其中,所述测试用例参数包括正常参数、边界参数和非法参数;
其中,所述根据所述测试结果,生成测试报告,包括:
将所述测试结果中的实际输出参数和所述预期输出参数进行对比,得到测试用例通过结果;
将所述测试用例通过结果导入到预设的测试报告模板中,生成测试报告,所述测试报告的内容包括测试用例集名称、测试用例条数、测试用例通过信息和测试用例执行时间;
其中,所述将所述测试结果中的实际输出参数和所述预期输出参数进行对比,得到测试用例通过结果,包括:
通过引言库,依次判断所述正常参数、边界参数和非法参数的实际输出参数与所述预期输出参数是否相同;
若所述实际输出参数和预期输出参数均相同,则判定所述测试用例测试通过;
若所述实际输出参数和预期输出参数不相同,则判定所述测试用例测试不通过。
2.根据权利要求1所述的方法,其特征在于,所述在所述前端组件代码中嵌入代码覆盖率统计代码,得到测试代码,包括:
将所述前端组件代码转换为抽象语法树;
在所述抽象语法树中注入代码覆盖率统计代码;
对所述注入了代码覆盖率统计代码的抽象语法树进行转换,得到测试代码。
3.根据权利要求1所述的方法,其特征在于,所述根据所述测试代码和前端组件代码测试需求信息,在集成开发环境的单元测试框架下建立测试用例集,包括:
根据所述前端组件测试需求信息,获取与所述前端组件测试需求相对应的测试配置代码;
将所述测试配置代码嵌入到所述测试代码中,生成多个测试用例;
通过所述单元测试框架,将所述多个测试用例建立为测试用例集。
4.根据权利要求1所述的方法,其特征在于,所述根据所述测试结果,生成代码覆盖率统计报告,包括:
提取测试结果中的覆盖率统计信息;
将所述覆盖率统计信息保存在全局变量中;
根据所述全局变量中的覆盖率统计信息,生成预设格式的代码覆盖率统计报告,所述代码覆盖率统计报告的内容包括语句覆盖率、分支覆盖率、函数覆盖率和行覆盖率。
还包括将所述代码覆盖率统计报告上传至区块链中。
5.一种前端组件的测试装置,其特征在于,所述装置包括:
测试代码生成模块,获取前端组件代码和前端组件测试需求信息,并在所述前端组件代码中嵌入代码覆盖率统计代码,得到测试代码;
测试用例搭建模块,用于根据所述测试代码和前端组件代码测试需求信息,在集成开发环境的单元测试框架下建立测试用例集;
测试结果生成模块,用于对所述测试用例集进行测试,得到测试结果;
测试报告生成模块,用于根据所述测试结果,生成测试报告和代码覆盖率统计报告;
所述装置,还用于对所述代码覆盖率统计报告进行散列处理,得到对应的摘要信息,将所述摘要信息上传至区块链;
测试参数确定模块,用于根据前端组件测试需求信息,确定测试用例集的测试用例参数和预期输出参数,其中,测试用例参数包括正常参数、边界参数和非法参数;
测试报告生成模块,具体用于将测试结果中的实际输出参数和预期输出参数进行对比,得到测试用例通过结果;将测试用例通过结果导入到预设的测试报告模板中,生成测试报告,测试报告的内容包括测试用例集名称、测试用例条数、测试用例通过信息和测试用例执行时间;
测试报告生成模块,具体还可用于通过引言库,依次判断正常参数、边界参数和非法参数的实际输出参数与预期输出参数是否相同;若实际输出参数和预期输出参数均相同,则判定测试用例测试通过;若实际输出参数和预期输出参数不相同,则判定测试用例测试不通过。
6.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4中任一项所述的方法的步骤。
7.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4中任一项所述的方法的步骤。
CN202010341624.5A 2020-04-27 2020-04-27 前端组件的测试方法、装置、存储介质及计算机设备 Active CN111651346B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010341624.5A CN111651346B (zh) 2020-04-27 2020-04-27 前端组件的测试方法、装置、存储介质及计算机设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010341624.5A CN111651346B (zh) 2020-04-27 2020-04-27 前端组件的测试方法、装置、存储介质及计算机设备

Publications (2)

Publication Number Publication Date
CN111651346A CN111651346A (zh) 2020-09-11
CN111651346B true CN111651346B (zh) 2022-11-18

Family

ID=72349249

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010341624.5A Active CN111651346B (zh) 2020-04-27 2020-04-27 前端组件的测试方法、装置、存储介质及计算机设备

Country Status (1)

Country Link
CN (1) CN111651346B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9280442B1 (en) * 2011-01-27 2016-03-08 Trimble Navigation Limited System and method for generating coverage reports for software unit tests
CN105389256A (zh) * 2015-11-11 2016-03-09 中国建设银行股份有限公司 一种单元测试方法及系统
CN105938454A (zh) * 2016-04-13 2016-09-14 珠海迈科智能科技股份有限公司 一种测试用例的生成方法及系统
CN106874187A (zh) * 2016-12-29 2017-06-20 腾讯科技(深圳)有限公司 代码覆盖率收集方法和装置
CN108170600A (zh) * 2017-12-27 2018-06-15 广州品唯软件有限公司 前端代码测试的覆盖率统计方法、装置及系统
CN111061469A (zh) * 2019-11-06 2020-04-24 贝壳技术有限公司 Web前端源代码生成方法、装置、存储介质及处理器

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7240199B2 (en) * 2000-12-06 2007-07-03 Rpost International Limited System and method for verifying delivery and integrity of electronic messages
CN100487667C (zh) * 2005-12-14 2009-05-13 中兴通讯股份有限公司 一种软件单元测试自动化系统及其方法
CN101604288A (zh) * 2009-07-10 2009-12-16 北京航空航天大学 一种基于测试数据的软件质量评价方法
EP2381367A1 (en) * 2010-04-20 2011-10-26 Siemens Aktiengesellschaft Method and apparatus for the performing unit testing of software modules in software systems
CN105893237A (zh) * 2015-08-04 2016-08-24 乐视致新电子科技(天津)有限公司 一种测试数据驱动的方法及设备
WO2017118937A1 (en) * 2016-01-05 2017-07-13 Sentient Technologies (Barbados) Limited Webinterface generation and testing using artificial neural networks
CN108427632B (zh) * 2017-02-14 2021-12-31 腾讯科技(深圳)有限公司 自动测试方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9280442B1 (en) * 2011-01-27 2016-03-08 Trimble Navigation Limited System and method for generating coverage reports for software unit tests
CN105389256A (zh) * 2015-11-11 2016-03-09 中国建设银行股份有限公司 一种单元测试方法及系统
CN105938454A (zh) * 2016-04-13 2016-09-14 珠海迈科智能科技股份有限公司 一种测试用例的生成方法及系统
CN106874187A (zh) * 2016-12-29 2017-06-20 腾讯科技(深圳)有限公司 代码覆盖率收集方法和装置
CN108170600A (zh) * 2017-12-27 2018-06-15 广州品唯软件有限公司 前端代码测试的覆盖率统计方法、装置及系统
CN111061469A (zh) * 2019-11-06 2020-04-24 贝壳技术有限公司 Web前端源代码生成方法、装置、存储介质及处理器

Also Published As

Publication number Publication date
CN111651346A (zh) 2020-09-11

Similar Documents

Publication Publication Date Title
CN105094783B (zh) 安卓应用稳定性测试的方法及装置
CN106776338B (zh) 一种测试方法、装置及服务器
Xue Reengineering legacy software products into software product line based on automatic variability analysis
US20130179867A1 (en) Program Code Analysis System
CN111427771A (zh) 一种代码覆盖率分析方法、设备、服务器及可读存储介质
CN104021072A (zh) 用于评估失效的软件程序的机器和方法
CN113590454A (zh) 测试方法、装置、计算机设备和存储介质
Espada et al. Performance analysis of Spotify® for Android with model-based testing
Martin-Lopez AI-driven web API testing
CN107622017B (zh) 一种通用自动化软件测试的解析方法
US10592703B1 (en) Method and system for processing verification tests for testing a design under test
CN110287700B (zh) 一种iOS应用安全分析方法及装置
CN111651346B (zh) 前端组件的测试方法、装置、存储介质及计算机设备
US10579761B1 (en) Method and system for reconstructing a graph presentation of a previously executed verification test
CN116383025A (zh) 基于Jmeter的性能测试方法、装置、设备及介质
CN106557419B (zh) 程序的测试方法及装置
CN115422865B (zh) 仿真方法及装置、计算设备、计算机可读存储介质
CN111708712A (zh) 用户行为测试用例的生成方法、流量回放方法及电子设备
CN113806231B (zh) 一种代码覆盖率分析方法、装置、设备和介质
EP2820547B1 (en) Debugging method and computer program product
US20140053139A1 (en) Symbolic testing of software using concrete software execution
CN114706738A (zh) 客户端自动埋点的方法及装置
CN110471829B (zh) 软件代码测试覆盖率的检查方法及装置
CN110321130A (zh) 基于系统调用日志的不可重复编译定位方法
CN111104318B (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
TA01 Transfer of patent application right

Effective date of registration: 20220525

Address after: 518000 China Aviation Center 2901, No. 1018, Huafu Road, Huahang community, Huaqiang North Street, Futian District, Shenzhen, Guangdong Province

Applicant after: Shenzhen Ping An medical and Health Technology Service Co.,Ltd.

Address before: Room 12G, Area H, 666 Beijing East Road, Huangpu District, Shanghai 200001

Applicant before: PING AN MEDICAL AND HEALTHCARE MANAGEMENT Co.,Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant