软件测试方法、装置、电子设备和存储介质与流程

文档序号:27682566发布日期:2021-12-01 00:14阅读:107来源:国知局
软件测试方法、装置、电子设备和存储介质与流程

1.本技术涉及软件测试的技术领域,具体而言,涉及一种软件测试方法、装置、电子设备和存储介质。


背景技术:

2.随着互联网的快速发展,前端技术领域的复杂度也越来越高,对前端工程师的能力要求也越来越高。其中,软件测试是开发过程中一个非常重要的环节,在过往的软件项目测试过程中,往往需要前端工程师自身逐项地对前端组件代码进行形式检测、页面样式检测、单元测试和代码覆盖率统计等分析工作,从而不仅降低了工作效率,造成人力和硬件资源成本的浪费,而且,各个分析工作的结果都是单独展示,不能直观、汇总地展示各个分析工作的结果。


技术实现要素:

3.本技术实施例的目的在于提供一种软件测试方法、装置、电子设备和存储介质,用以提高工作效率。
4.第一方面,本技术提供一种软件测试方法,包括:
5.获取软件代码和软件测试需求信息;
6.基于所述软件测试需求信息,生成测试指令,其中,所述测试指令中包括待测的目标测试插件标识;
7.启动测试平台服务;
8.根据所述测试指令,基于所述测试平台服务调取所述目标测试插件对所述软件代码进行测试,得到测试结果;
9.根据测试结果,生成可视化的测试报告文件。
10.于一实施例中,所述根据测试结果,生成可视化的测试报告文件之后,还包括:
11.判断所述测试报告文件是否打开;
12.若所述测试报告文件没有打开,则发出测试失败的提示信息。
13.于一实施例中,还包括:
14.在所述测试报告文件打开之后,接收关闭所述测试报告文件的指令;
15.生成关闭所述测试报告文件和所述测试平台服务的指令。
16.于一实施例中,所述目标测试插件包括:形式测试插件、页面样式测试插件、单元测试插件和代码覆盖率统计插件。
17.于一实施例中,所述根据所述测试指令,基于所述测试平台服务调取所述目标测试插件对所述软件代码进行测试,得到测试结果,包括:
18.根据所述测试指令,基于所述测试平台服务调取所述形式测试插件对所述软件代码进行逐行形式检测,并记录逐行形式检测结果;
19.基于所述测试平台服务调取所述页面样式测试插件对所述软件代码进行页面样
式检测,并记录页面样式检测结果;
20.基于所述测试平台服务同时调取所述单元测试插件和代码覆盖率统计插件对所述软件代码进行单元测试,并记录单元测试结果和代码覆盖率统计结果。
21.于一实施例中,所述根据测试结果,生成可视化测试报告文件,包括:
22.根据所述逐行形式检测结果、所述页面样式检测结果、所述单元测试结果和所述代码覆盖率统计结果,生成预设样式的所述可视化测试报告文件。
23.第二方面,本技术提供一种软件测试装置,包括:
24.获取模块,用于获取软件代码和软件测试需求信息;
25.第一生成模块,用于基于所述软件测试需求信息,生成测试指令,其中,所述测试指令中包括待测的目标测试插件标识;
26.启动模块,用于启动测试平台服务;
27.调取测试模块,用于根据所述测试指令,基于所述测试平台服务调取所述目标测试插件对所述软件代码进行测试,得到测试结果;
28.第二生成模块,用于根据测试结果,生成可视化的测试报告文件。
29.于一实施例中,软件测试装置,还包括:
30.判断模块,用于判断所述测试报告文件是否打开;
31.提示信息发出模块,用于若所述测试报告文件没有打开,则发出测试失败的提示信息;
32.接收模块,用于在所述测试报告文件打开之后,接收关闭所述测试报告文件的指令;
33.第三生成模块,用于生成关闭所述测试报告文件和所述测试平台服务的指令。
34.于一实施例中,所述目标测试插件包括:形式测试插件、页面样式测试插件、单元测试插件和代码覆盖率统计插件。
35.于一实施例中,所述调取测试模块还用于根据所述测试指令,基于所述测试平台服务调取所述形式测试插件对所述软件代码进行逐行形式检测,并记录逐行形式检测结果;基于所述测试平台服务调取所述页面样式测试插件对所述软件代码进行页面样式检测,并记录页面样式检测结果;基于所述测试平台服务同时调取所述单元测试插件和代码覆盖率统计插件对所述软件代码进行单元测试,并记录单元测试结果和代码覆盖率统计结果。
36.于一实施例中,所述第二生成模块还用于根据所述逐行形式检测结果、所述页面样式检测结果、所述单元测试结果和所述代码覆盖率统计结果,生成预设样式的所述可视化测试报告文件。
37.第三方面,本技术提供一种电子设备,包括:
38.存储器,用以存储计算机程序;
39.处理器,用以执行所述计算机程序,以实现如前述实施方式中任一项所述的方法。
40.第四方面,本技术提供一种非暂态计算机可读存储介质,包括:程序,当其藉由电子设备运行时,使得所述电子设备执行前述实施方式中任一项所述的方法。
41.本技术的软件测试方法、装置、电子设备和存储介质,其能够基于测试平台服务调取目标测试插件对软件代码进行形式检测、页面样式检测、单元测试和代码覆盖率统计等
测试分析工作,从而不仅提高了工作效率,减小了人力和硬件资源成本的浪费,而且,各个测试分析工作的结果可以直观、汇总地展示。
附图说明
42.为了更清楚地说明本技术实施例的技术方案,下面将对本技术实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
43.图1为本技术一实施例示出的电子设备的结构示意图;
44.图2为本技术一实施例示出的代码编辑器的结构示意图;
45.图3为本技术一实施例示出的测试平台服务的执行代码示意图;
46.图4为本技术一实施例示出的测试平台服务的输出结果代码示意图;
47.图5为本技术一实施例示出的软件测试方法的流程示意图;
48.图6为本技术一实施例示出的软件测试方法的流程示意图;
49.图7为本技术一实施例示出的软件测试方法的流程示意图;
50.图8为本技术一实施例示出的软件测试装置的结构示意图。
51.图标:100

电子设备;101

总线;102

存储器;103

处理器;200

软件测试装置;210

获取模块;220

第一生成模块;230

启动模块;240

调取测试模块;250

第二生成模块;300

代码编辑器;310

代码分析可视化插件;311

测试平台服务;321

形式测试插件;322

页面样式测试插件;323

单元测试插件;324

代码覆盖率统计插件。
具体实施方式
52.在本技术的描述中,术语“第一”、“第二”等仅用于区分描述,并不表示排列序号,也不能理解为指示或暗示相对重要性。
53.在本技术的描述中,术语“包括”、“包含”等表示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其他特征、步骤、操作、元素、组件和/或其集合的存在或添加。
54.在本技术的描述中,除非另有明确的规定和限定,术语“安装”、“设置”、“设有”、“连接”、“配置为”应做广义理解。例如,可以是固定连接,也可以是可拆卸连接,或整体式构造;可以是机械连接,也可以是电连接;可以是直接相连,也可以是通过中间媒介间接相连,又或者是两个装置、元件或组成部分之间内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本技术中的具体含义。
55.下面将结合附图对本技术的技术方案进行清楚、完整地描述。
56.请参照图1,其为本技术一实施例示出的电子设备100的结构示意图。电子设备100包括:至少一个处理器103和存储器102,图1中以一个处理器103为例。处理器103和存储器102通过总线101连接,存储器102存储有可被处理器103执行的指令,指令被处理器103执行,以使电子设备100可执行下述的实施例中方法的全部或部分流程,以提高工作效率。
57.于一实施例中,处理器103可以是通用处理器103,包括但不限于中央处理器103(central processing unit,cpu)、网络处理器103(network processor,np)等,还可以是
数字信号处理器103(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器103可以是微处理器103或者该处理器103也可以是任何常规的处理器103等,处理器103是电子设备100的控制中心,利用各种接口和线路连接整个电子设备100的各个部分。处理器103可以实现或者执行本技术实施例中公开的各方法、步骤及逻辑框图。
58.于一实施例中,存储器102可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,包括但不限于,随机存取存储器102(random access memory,ram),只读存储器102(read only memory,rom),静态随机存取存储器102(static random access memory,简称sram),可编程只读存储器102(programmable read

only memory,prom),可擦除只读存储器102(erasable programmable read

only memory,eprom),电可擦除只读存储器102(electric erasable programmable read

only memory,eeprom)。
59.电子设备100可以是手机、笔记本电脑、台式计算机、或者多台计算机组成的运算系统等设备。电子设备100还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。例如电子设备100还包括用于人机交互的输入输出设备。
60.请参照图2,其为本技术一实施例示出的代码编辑器300的结构示意图。该应用场景可以是代码编辑器300。代码编辑器300可以是一个用于前端开发的工具,例如:vs code(英文全称:visual studio code),代码编辑器300也可以是一个用于后端开发的工具。代码编辑器300可以是安装于用户终端或者服务端。
61.代码编辑器300包括代码分析可视化插件310和一个或者多个测试插件,测试插件包括:形式测试插件321、页面样式测试插件322、单元测试插件323或代码覆盖率统计插件324。代码分析可视化插件310与各个测试插件连接,可以调取各个测试插件对代码编辑器300中输入的代码进行测试分析。
62.其中,形式测试插件321可以是es lint(一种代码规范和错误检查工具);形式测试插件321也可以是js lint(一种javascript验证工具),可以扫描javascript源代码来查找问题。
63.页面样式测试插件322可以是css lint(一种开源的校验css文件质量的工具),其中,css文件为层叠样式表(英文全称:cascading style sheets)是一种用来表现html(标准通用标记语言的一个应用)或xml(标准通用标记语言的一个子集)等文件样式的计算机语言。css不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。css能够对网页中元素位置的排版进行像素级精确控制,支持几乎所有的字体字号样式,拥有对网页对象和模型样式编辑的能力。
64.单元测试插件323可以是unit testing(一种对软件中的最小可测试单元进行检查和验证的工具)。代码覆盖率统计插件324可以是code coverage,(一种度量、描述程序中源代码被测试的比例和程度的工具),可以验证是否整个软件中的最小可测试单元均被单元测试过。
65.代码分析可视化插件310可以包括测试平台服务311,测试平台服务311可以是node.js等集成开发环境,即是一个基于chrome v8引擎的javascript运行环境,使用了一个事件驱动、非阻塞式i/o模型,让javascript运行在服务端的开发平台,从而可以供各个
测试插件对代码编辑器300中输入的代码进行测试分析,而无需另外打开浏览器。
66.代码分析可视化插件310在代码编辑器300的界面设置一个或者多个触发入口,分别对应于一个或者多个测试插件,用于进行任一种测试分析工作或者执行全部的测试分析工作,测试出代码的健壮性、可读性等性能指标。
67.于一操作过程中,当用户输入好所有软件代码或者软件代码有改动需要提交时,触发代码编辑器300的编辑窗口界面上代码分析可视化插件310,代码编辑器300根据软件测试需求信息,确定用户所要检测的项目。
68.代码编辑器300启动代码分析可视化插件310中的测试平台服务311,同时发消息(post message)至命令测试平台服务311调取各个测试插件来执行所要检测的项目。
69.当所要求检测的项目测试完成时,生成测试报告文件,同时执行“vscode.workspace.opentextdocument”命令,使得代码编辑器300在编辑窗口界面打开该测试报告文件。
70.若测试报告文件能正常打开,说明所有测试正常完成,通过在编辑窗口界面打开的测试报告文件直观、汇总地显示出这次输入的或改动之后的代码各项性能指标,而且还提高了工作效率,无需前端工程师自身逐项地对前端组件代码进行形式检测、页面样式检测、单元测试和代码覆盖率统计等分析工作,减小了人力和硬件资源成本的浪费。
71.若测试报告文件不能正常打开,说明生成测试报告文件失败,提示错误,通知用户进行修改代码,修改代码之后自动重新检测。
72.在编辑窗口界面打开测试报告文件之后,当代码编辑器300接收到关闭测试报告文件指令时,则生成关闭测试报告文件和测试平台服务311的指令。在关闭测试报告文件时,把测试平台服务311也关闭,不仅表示此次代码测试完成,而且可以避免下次代码测试时启动端口被占用。
73.于一其他的实施例中,形式测试插件321、页面样式测试插件322、单元测试插件323和代码覆盖率统计插件324,均安装在代码分析可视化插件310中。
74.请参照图3,其为本技术一实施例示出的测试平台服务311的执行代码示意图。测试平台服务311依据图3的代码调取各个测试插件来执行用户所要检测的项目。例如依次调取形式测试插件321、页面样式测试插件322和单元测试插件323分别进行代码规范检查、css检查和单元测试。其中,也可以根据执行系统是否为32位的windows操作系统,来分别输入不同的命令。
75.请参照图4,其为本技术一实施例示出的测试平台服务311的输出结果代码示意图。测试平台服务311依据图4的代码将结果输出,展示测试报告文件。
76.请参照图5,其为本技术一实施例示出的软件测试方法的流程示意图。该方法可由图1所示的电子设备100作为图2所示的代码编辑器300执行,以提高工作效率。该方法包括如下步骤:
77.步骤s110:获取软件代码和软件测试需求信息。
78.本步骤中的软件代码为用户在代码编辑器300的编辑窗口界面上输入或者修改的。本步骤中的软件测试需求信息可以为用户触发代码编辑器300的编辑窗口界面上代码分析可视化插件310时形成,或者软件测试需求信息可以为在软件代码中的一串代码命令。
79.步骤s120:基于软件测试需求信息,生成测试指令。
80.本步骤中的测试指令中包括待测的目标测试插件标识。待测的目标测试插件标识
对应于软件测试需求信息中包含的用户所要检测的项目。
81.其中,目标测试插件包括:形式测试插件321、页面样式测试插件322、单元测试插件323和代码覆盖率统计插件324。
82.步骤s130:启动测试平台服务311。
83.本步骤中代码编辑器300启动测试平台服务311以备后续测试分析操作。本步骤中的代码编辑器300同时将测试指令发送给测试平台服务311。
84.步骤s140:根据测试指令,基于测试平台服务311调取目标测试插件对软件代码进行测试,得到测试结果。
85.本步骤中调取各个测试指令中指定的目标测试插件按指令的顺序自动对软件代码在node.js等集成开发环境内进行测试分析,并生成测试结果。由于本步骤是基于node.js等集成开发环境,从而无需另外打开浏览器,即可完成任一种测试分析工作或者执行全部的测试分析工作,测试出代码的健壮性、可读性等性能指标,提高了工作效率,无需代码工程师自身逐项地对软件代码进行各项分析工作,减小了人力和硬件资源成本的浪费。
86.步骤s150:根据测试结果,生成可视化的测试报告文件。
87.本步骤中的测试报告文件可以包括分析图表、结论以及分析细节,从而使得本步骤生成的测试报告文件可以直观、汇总地显示出这次软件代码各项性能指标,而且可以同时展示多项性能指标的测试结果,避免因缓存区限制,即有最大显示行数限制而不利于用户快速了解多项性能指标的测试结果。
88.在本步骤之后,还可以将生成的测试报告文件存储在代码编辑器300所在的本地数据库中,利于多次或多个测试报告文件相互对比,从而利于代码工程师分析各个时间点的代码问题,加快代码修改速度。
89.请参照图6,其为本技术一实施例示出的软件测试方法的流程示意图。该方法可由图1所示的电子设备100作为图2所示的代码编辑器300执行,以提高工作效率。该方法包括如下步骤:
90.步骤s210:获取软件代码和软件测试需求信息。详情请参照上述实施例中步骤s110的描述。
91.步骤s220:基于软件测试需求信息,生成测试指令。详情请参照上述实施例中步骤s120的描述。
92.步骤s230:启动测试平台服务311。详情请参照上述实施例中步骤s130的描述。
93.步骤s240:根据测试指令,基于测试平台服务311调取目标测试插件对软件代码进行测试,得到测试结果。详情请参照上述实施例中步骤s140的描述。
94.步骤s250:根据测试结果,生成可视化的测试报告文件。详情请参照上述实施例中步骤s150的描述。
95.步骤s260:判断测试报告文件是否打开。
96.本步骤中,代码编辑器300控制步骤s260的测试报告文件在编辑窗口界面打开,同时判断测试报告文件是否可以打开,若测试报告文件不能正常打开,说明生成测试报告文件失败,执行步骤s270,提示错误,通知用户进行修改代码,修改代码之后可以返回步骤s210;若测试报告文件能正常打开,说明所有测试正常完成,且在测试报告文件打开之后,
可以执行步骤s280

步骤s290。
97.步骤s270:若测试报告文件没有打开,则发出测试失败的提示信息。
98.步骤s280:在测试报告文件打开之后,接收关闭测试报告文件的指令。
99.步骤s290:生成关闭测试报告文件和测试平台服务311的指令。
100.当接收到关闭测试报告文件的指令,说明用户观看完,用户会进入下一输入代码、修改代码或者测试代码的操作,此时需要生成关闭测试报告文件和测试平台服务311的指令,同时或者先后关闭测试报告文件和测试平台服务311,以避免下次代码测试时启动端口被占用。
101.请参照图7,其为本技术一实施例示出的软件测试方法的流程示意图。该方法可由图1所示的电子设备100作为图2所示的代码编辑器300执行,以提高工作效率。该方法包括如下步骤:
102.步骤s310:获取软件代码和软件测试需求信息。详情请参照上述实施例中步骤s110的描述。
103.步骤s320:基于软件测试需求信息,生成测试指令。详情请参照上述实施例中步骤s120的描述。
104.步骤s330:启动测试平台服务311。详情请参照上述实施例中步骤s130的描述。
105.步骤s340:根据测试指令,基于测试平台服务311调取形式测试插件321对软件代码进行逐行形式检测,并记录逐行形式检测结果。
106.本步骤中的形式测试插件321可以是如上的es lint和js lint,对软件代码中分号、空格等符号的规范性进行检测。本步骤中记录的逐行形式检测结果可以存储在本地数据库中。
107.其中,由于逐行形式检测结果的行数一般等于代码的行数,例如若代码为80行,则逐行形式检测结果也有80行,不利于用户查看,且有的显示界面有最大显示行数限制,无法一次性展示。故本技术通过步骤s370对逐行形式检测结果进行了汇总,生成预设样式的可视化测试报告文件,利于用户快速获取检测结果。
108.步骤s350:基于测试平台服务311调取页面样式测试插件322对软件代码进行页面样式检测,并记录页面样式检测结果。
109.本步骤中页面样式测试插件322可以是如上的css lint。本步骤中记录的页面样式检测结果可以存储在本地数据库中。其中,页面样式检测结果包括css lint根据软件代码的所生成的页面以及对页面中文字、排版等样式的检测结果。所生成的页面也可以在步骤s370生成的可视化测试报告文件中供用户复查。
110.步骤s360:基于测试平台服务311同时调取单元测试插件323和代码覆盖率统计插件324对软件代码进行单元测试,并记录单元测试结果和代码覆盖率统计结果。
111.本步骤中单元测试插件323可以是如上的unit testing,代码覆盖率统计插件324可以是如上的code coverage。本步骤中记录的单元测试结果和代码覆盖率统计结果可以存储在本地数据库中。
112.本步骤中的单元测试结果的个数一般等于或小于代码中最小可测试单元的个数,数量过多,也不利于用户查看。故本技术通过步骤s370对所有的单元测试结果进行了汇总,生成预设样式的可视化测试报告文件,利于用户快速获取检测结果。
113.步骤s370:根据逐行形式检测结果、页面样式检测结果、单元测试结果和代码覆盖率统计结果,生成预设样式的可视化测试报告文件。
114.本步骤中的预设样式为用户自定义的或者系统自带的标准样式。
115.请参照图8,其为本技术一实施例示出的软件测试装置200的结构示意图。该装置可应用于图8所示的电子设备100,包括:获取模块210、第一生成模块220、启动模块230、调取测试模块240和第二生成模块250。各个模块的原理关系如下:
116.获取模块210,用于获取软件代码和软件测试需求信息。
117.第一生成模块220,用于基于软件测试需求信息,生成测试指令,其中,测试指令中包括待测的目标测试插件标识。
118.启动模块230,用于启动测试平台服务311。
119.调取测试模块240,用于根据测试指令,基于测试平台服务311调取目标测试插件对软件代码进行测试,得到测试结果。
120.第二生成模块250,用于根据测试结果,生成可视化的测试报告文件。
121.于一实施例中,软件测试装置200还包括:判断模块、第三生成模块、接收模块和提示信息发出模块。判断模块用于判断测试报告文件是否打开;提示信息发出模块,用于若测试报告文件没有打开,则发出测试失败的提示信息;接收模块,用于在测试报告文件打开之后,接收关闭测试报告文件的指令;第三生成模块,用于生成关闭测试报告文件和测试平台服务311的指令。
122.于一实施例中,调取测试模块240还用于根据测试指令,基于测试平台服务311调取形式测试插件321对软件代码进行逐行形式检测,并记录逐行形式检测结果;基于测试平台服务311调取页面样式测试插件322对软件代码进行页面样式检测,并记录页面样式检测结果;基于测试平台服务311同时调取单元测试插件323和代码覆盖率统计插件324对软件代码进行单元测试,并记录单元测试结果和代码覆盖率统计结果。
123.于一实施例中,第二生成模块250还用于根据逐行形式检测结果、页面样式检测结果、单元测试结果和代码覆盖率统计结果,生成预设样式的可视化测试报告文件。
124.上述软件测试装置200的详细描述,请参见上述实施例中相关方法步骤的描述。
125.本技术实施例还提供了一种非暂态计算机可读存储介质,包括:程序,当其在电子设备100上运行时,使得电子设备100可执行上述实施例中方法的全部或部分流程。其中,存储介质可为磁盘、光盘、只读存储记忆体(read

only memory,rom)、随机存储记忆体(random access memory,ram)、快闪存储器102(flash memory)、硬盘(hard disk drive,缩写:hdd)或固态硬盘(solid

state drive,ssd)等。存储介质还可以包括上述种类的存储器102的组合。
126.在本技术所提供的几个实施例中,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本技术的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。
127.在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反
的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
128.另外,在本技术各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
129.本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。以上仅为本技术的优选实施例而已,仅用于说明本技术的技术方案,并不用于限制本技术。对于本技术领域的普通技术人员而言,凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1