软件测试系统及软件测试方法与流程

未命名 08-15 阅读:162 评论:0


1.本发明涉及一种测试系统,尤其是一种应用于软件的软件测试系统及软件测试方法。


背景技术:

2.软件可以被拆分为一个或多个组件,并且通过这些组件基于各种用例(use case)来与其他服务组件协同操作以获取对应的需求。一般而言,组件可执行功能测试以基于测试用例(test case)生成返回结果,以使测试人员通过返回结果来确定此组件是否正确地操作。
3.然而,由于应用数据驱动编程的组件具有复杂的业务逻辑,因此返回结果仅可指示组件的整体操作是否正常,而无法检视各个业务逻辑所对应的场景需求。也就是说,对于应用数据驱动编程的组件而言,功能测试无法判断此组件的内部调用顺序以及对应的输入数据等操作是否正确,而增加测试人员的负担。


技术实现要素:

4.本发明是针对一种软件测试系统,能够逐一校验被测试组件的多个调用操作,以提高测试作业的效能。
5.根据本发明的实施例,本发明的软件测试系统包括存储装置以及处理器。存储装置存储多个模块。处理器耦接存储装置。处理器执行多个模块。多个模块包括接口模块、执行模块以及判断模块。接口模块存取电子装置的启动用例信息以生成测试用例文件,以使电子装置通过被测试组件根据测试用例文件对接口模块执行测试调用操作。接口模块包括多个模拟组件接口。执行测试调用操作包括多个子测试调用操作。执行模块分别分析被测试组件依序调用多个模拟组件接口的多个子测试调用操作以生成多组测试进度信息。判断模块根据测试配置文件以及多组测试进度信息生成测试结果至电子装置。
6.根据本发明的实施例,本发明的软件测试方法包括以下的步骤。通过处理器执行多个模块。多个模块包括接口模块、执行模块以及判断模块。通过接口模块存取电子装置的启动用例信息以生成测试用例文件,以使电子装置通过被测试组件根据测试用例文件对接口模块执行测试调用操作。接口模块包括多个模拟组件接口。执行测试调用操作包括多个子测试调用操作。通过执行模块分别分析被测试组件依序调用多个模拟组件接口的多个子测试调用操作以生成多组测试进度信息。通过判断模块根据测试配置文件以及多组测试进度信息生成测试结果至电子装置。
7.基于上述,本发明的软件测试系统及软件测试方法通过接口模块生成测试用例文件,能够通过电子装置触发被测试组件基于测试用例文件操作。此外,通过执行模块依序分析被测试组件所执行的多个子测试调用操作,能够逐一确定这些操作的场景需求(即,多组测试进度信息),并据以判断被测试组件是否正常地操作,据以提高测试作业的效能。
8.为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详
细说明如下。
附图说明
9.图1是本发明的一实施例的软件测试系统的电路方块图;
10.图2是本发明的一实施例的软件测试方法的流程图;
11.图3是本发明的图1实施例的软件测试系统的操作示意图;
12.图4是本发明的另一实施例的软件测试系统的电路方块图;
13.图5是本发明的图4实施例的软件测试系统的操作示意图。
14.附图标记说明
15.100、400:软件测试系统;
16.110:存储装置;
17.111、411:接口模块;
18.112、412:执行模块;
19.131、413:判断模块;
20.120:处理器;
21.200:电子装置;
22.210:依赖组件;
23.300:被测试组件;
24.310:中间组件;
25.320:业务组件;
26.511:编号派发组件;
27.512:模拟接口组件;
28.521:请求参数解析组件;
29.522:进度管理组件;
30.523:配置解析组件;
31.524:断言执行组件;
32.525:数据预置组件;
33.531:测试结果组件;
34.52a~52b:执行组件;
35.cid:测试用例配置编号;
36.cl0、cl1、cl21~cl23、cl3:调用请求;
37.dt1~dtn:测试进度信息;
38.r0、r1、r21~r23、r3、rt:调用回复;
39.s1:启动用例信息;
40.s2:测试用例文件;
41.s210~s230:步骤;
42.s3:测试结果;
43.s311~s342、s611~2662:模块;
44.tid:测试编号。
具体实施方式
45.现将详细地参考本发明的示范性实施例,示范性实施例的实例说明于附图中。只要有可能,相同元件符号在图式和描述中用来表示相同或相似部分。
46.图1是本发明的一实施例的软件测试系统的电路方块图。参考图1,软件测试系统100可以是应用功能测试的系统,以提供用户测试目标组件。目标组件可例如是软件中经模块化且可被更换的独立部分,并且可通过接口在场景中获取目标需求以实现对应的功能。在本实施例中,目标组件可例如是应用数据驱动编程的组件,以通过一连串的行动逻辑来获取目标需求。目标组件可例如是以被测试组件300来被实现。
47.在本实施例中,软件测试系统100耦接电子装置200以及被测试组件300。电子装置200可操作用户接口以通过应用程序接口(application programming interface,api)调用软件测试系统100以及被测试组件300,进而通过软件测试系统100以及被测试组件300获取目标需求。例如,电子装置200通过api调用被测试组件300,以使测试组件300进一步调用软件测试系统100,据以通过软件测试系统100获取被测试组件300的功能测试的结果(即,测试结果s3)。
48.在本实施例中,电子装置200也可操作用户接口以通过api调用企业系统中的各种组件,进而通过这些组件执行各种业务服务(business service)。企业系统可例如是企业资源规划(enterprise resource planning,erp)系统。电子装置200可例如是手机、平板计算机、笔记本电脑与桌面计算机等。在本实施例中,被测试组件300可例如是应用在企业系统中的组件。
49.在本实施例中,软件测试系统100可设置在云端,以供用户通过电子装置200连线并执行同样设置在软件测试系统100中的不同的api的相关业务服务功能(例如是erp系统的相关功能)。软件测试系统100可例如是软件即服务(software as a service,saas)服务器,以通过api对企业系统(例如是被测试组件300)执行关于功能测试的应用程序。在一些实施例中,软件测试系统100可设置在企业内部的地端中,以供用户通过电子装置200将软件测试系统100与设置在云端的其他系统互相连接进而输入/输出数据,据以通过api执行对应的应用程序。
50.在本实施例中,软件测试系统100可包括存储装置110以及处理器120。存储装置110可存储多个模块111~113。这些模块可包括接口模块111、执行模块112以及判断模块113。在本实施例中,接口模块111可包括多个模拟组件接口(例如是图5所示组件512中的多个接口)。
51.在本实施例中,存储装置110还可存储各个模块111~113分别的相关算法、运算软件等诸如此类用于实现本发明关于数据驱动、调用、预置、断言(assertion)、以及各种计算的相关算法、程序及数据。存储装置110可例如是动态随机存取记忆体(dynamic random access memory,dram)、闪存(lash memory)、非挥发性随机存取记忆体(non-volatile random access memory,nvram)或这些记忆体的组合。
52.在本实施例中,处理器120耦接存储装置110。处理器120可存取存储装置110,并且可执行存储装置110中的数据、各个模块111~113、来自电子装置200的数据(例如是启动用例信息s1)、以及来自被测试组件300的数据。在本实施例中,处理器120可例如是信号转换器、现场可编程逻辑门阵列(field programmable gate array,fpga)、中央处理单元
(central processing unit,cpu),或是其他可编程之一般用途或特殊用途的微处理器(microprocessor)、数字信号处理器(digital signal processor,dsp)、可程序化控制器、特殊应用集成电路(application specific integrated circuits,asic)、可编程逻辑设备(programmable logic device,pld)或其他类似装置或这些装置的组合,其可加载并执行计算机程序相关韧体或软件,以实现数据驱动、调用、预置、断言、各种计算、以及执行等功能。
53.图2是本发明的一实施例的软件测试方法的流程图。参考图1以及图2,软件测试系统100可执行步骤s210~s230。这些步骤s210~s230的顺序仅为示例说明,并不以此为限。
54.在步骤s210,处理器120执行接口模块111,以使接口模块111存取电子装置200的启动用例信息s1以生成测试用例文件s2,以使电子装置200通过被测试组件300根据测试用例文件s2对接口模块111执行测试调用操作。在本实施例中,测试调用操作可包括多个子测试调用操作,以对应多个逻辑配置。
55.也就是说,电子装置200可通过启动用例信息s1发起功能测试作业。此时,接口模块111根据启动用例信息s1定义测试用例文件s2,并且输出测试用例文件s2至电子装置200。电子装置200根据测试用例文件s2调用被测试组件300,以使被测试组件300根据测试用例文件s2调用接口模块111以开始测试被测试组件300的各种行动逻辑。
56.在本实施例中,启动用例信息s1可例如是指示哪一个组件(例如是被测试组件300)将应用功能测试作业。在本实施例中,测试用例文件s2可例如是根据各种测试场景所定义的多个逻辑配置、断言配置、以及这些逻辑对应的请求配置、预置配置、以及回复配置等数据配置。也就是说,测试用例文件s2可包括多组用例配置。这些用例配置可规范被测试组件300执行测试调用操作时的多个调用步骤(即,多个子测试调用操作)。在本实施例中,测试用例文件s2可例如是是以json(javascript object notation)、可延伸标记式语言(extensible markup language,xml)或yaml等诸如此类的程序语言来实现的,但本发明也不限于此。
57.在步骤s220,处理器120执行执行模块112,以使执行模块112分别分析被测试组件300依序调用多个模拟组件接口的多个子测试调用操作以生成多组测试进度信息dt1~dtn,其中n可例如是正整数。
58.在本实施例中,接口模块111中的这些模拟组件接口可分别例如是对应于测试用例文件s2中的多个逻辑配置的接口。也就是说,这些模拟组件接口可被模拟为被测试组件300所需的外部api服务接口。由于被测试组件300基于逻辑配置依序调用这些模拟组件接口,因此在每一个的调用步骤中(即,子测试调用操作),执行模块112存取并且分析各个调用步骤以生成对应的单组数据配置(例如是测试进度信息dt1)。
59.在本实施例中,多组测试进度信息dt1~dtn可例如是被测试组件300在执行多个子测试调用操作的过程中所使用(或生成)的数据,并且通过执行模块112存取而形成的多组数据配置。每一组数据配置对应于测试调用操作中的每一个步骤(即,子测试调用操作)。每一组数据配置可例如是包括断言配置、请求配置、预置配置、以及回复配置等数据配置,并可作为每一个步骤的测试内容。
60.在步骤s230,处理器120执行判断模块113,以使判断模块113根据测试配置文件s2以及多组测试进度信息dt1~dtn生成测试结果s3。此外,判断模块113输出测试结果s3至电
子装置200,以供用户检视被测试组件300是否通过功能测试。也就是说,判断模块113根据多组测试进度信息dt1~dtn判断被测试组件300是否符合测试配置文件s2的规范。规范可例如是包括多个子测试调用操作的调用顺序、调用次数以及对应的调用内容等数据配置。如此,判断模块113生成测试结果s3,以指示被测试组件300是否通过功能测试而可正常操作。
61.在此值得一提的是,通过接口模块111根据启动用例信息s1生成测试用例文件s2,能够通过电子装置200触发被测试组件300开始执行测试功能作业。此外,通过接口模块111的多个模拟组件接口作为模拟的api服务接口,使被测试组件300依序调用这些模拟组件接口以通过执行模块121依序分析这些子测试调用操作,能够逐一确定这些操作的场景需求(即,多组测试进度信息)。如此一来,通过软件测试系统100能够实现对数据驱动组件(即,被测试组件300)内部发生的每一次对外调用操作(即,子测试调用操作)的测试。通过精细化为测试被测试组件300内部的行动逻辑,能够提高测试用例的场景覆盖度,并且降低被测试组件300的设计错误率,以提高功能测试作业的准确性以及效能。
62.图3是本发明的图1实施例的软件测试系统的操作示意图。参考图1以及图3,电子装置200、被测试组件300以及软件测试系统100可协同操作以通过执行模块s311~342实现功能测试作业,以示例说明图2的实施细节。
63.在本实施例中,电子装置200输出启动用例信息s1至被测试组件300以及软件测试系统100以发起功能测试作业。软件测试系统100根据启动用例信息s1定义(或创建)测试用例文件s2,并且根据测试用例文件s2提供所需的多个模拟组件接口。
64.举例来说,测试用例文件s2规范的场景依序包括多个行动逻辑。这些行动逻辑可例如是调用bpm接口一次(即,第一行动逻辑)、调用esp接口三次(即,第二行动逻辑)、以及调用esp接口一次(即,第三行动逻辑)。接口模块111所提供的多个模拟组件接口可包括knowledgemaps接口、bpm接口、以及esp接口。
65.在此实例中,被测试组件300执行模块s311,以根据启动用例信息s1分析测试调用操作的输入参数。被测试组件300根据经分析的输入参数输出调用请求cl0至软件测试系统100(例如是knowledgemaps接口),以求取测试调用操作的行动逻辑(即,第一至第三行动逻辑)。软件测试系统100执行模块s312,以使knowledgemaps接口响应于调用请求cl0,回传测试用例文件s2中经定义的第一至第三行动逻辑至被测试组件300。在本实施例中,模块s311~s312的操作可例如是图2步骤s210的实施细节。
66.被测试组件300执行模块s341,以根据测试用例文件s2执行第三行动逻辑。详细而言,被测试组件300输出调用请求cl3至软件测试系统100(例如是esp接口),以执行第一子测试调用操作。软件测试系统100执行模块s342,以使esp接口接口响应于调用请求cl3,回传调用回复r3至被测试组件300以完成第一子测试调用操作。同时,软件测试系统100通过执行模块112分析关于调用esp接口的第一子测试调用操作以生成第一组测试进度信息dt1。第一组测试进度信息dt1可包括调用请求cl3以及调用回复r3。
67.接着,被测试组件300执行模块s331,以根据测试用例文件s2执行第二行动逻辑。详细而言,被测试组件300输出调用请求cl21至软件测试系统100(例如是esp接口),以执行第二子测试调用操作。软件测试系统100执行模块s332,以使esp接口接口响应于调用请求cl21,回传调用回复r21至被测试组件300以完成第二子测试调用操作。同时,软件测试系统
100通过执行模块112分析关于调用esp接口的第二子测试调用操作以生成第二组测试进度信息dt2。第二组测试进度信息dt2可包括调用请求cl21以及调用回复r21。
68.此外,被测试组件300依序输出调用请求cl22、cl23,以使软件测试系统100依序回传调用回复r22、r23至被测试组件300以分别完成第三子测试调用操作以及第四子测试调用操作。软件测试系统100通过执行模块112分析前述的多个子测试调用操作以生成对应的多组测试进度信息dt3、dt4。测试进度信息dt3、dt4可包括调用请求cl22、cl23、以及调用回复r22、r23。
69.接着,被测试组件300执行模块s321,以根据测试用例文件s2执行第一行动逻辑,并使软件测试系统100执行模块s322。模块s321、s322的操作可以参照模块s331、s332的相关说明并加以类推。在本实施例中,模块s321~s342的操作可例如是图2步骤s220的实施细节。
70.当被测试组件300完成测试调用操作之后,软件测试系统100根据测试配置文件s2以及多组测试进度信息dt1~dt4生成测试结果s3,据以判断被测试组件300是否通过功能测试。软件测试系统100将测试结果s3作为调用回复rt,以回传调用回复rt至电子装置200。在一些实施例中,软件测试系统100通过被测试组件300回传调用回复rt。
71.在本实施例中,功能测试是否通过可以包括以下的一些实例。例如,若各组测试进度信息dt1~dt4符合测试配置文件s2所规范的场景,则调用回复rt(即,测试结果s3)指示被测试组件300为通过。又例如,若一组测试进度信息dt3中的调用回复r23不符合规范,则调用回复rt指示被测试组件300为不通过、以及调用回复r23的内容不符合预期的场景。
72.例如,若一组测试进度信息dt1中的调用请求cl1为esp的调用请求而非bpm的调用请求,则调用回复rt指示被测试组件300为不通过、以及调用esp接口(即,第二行动逻辑)的执行次数不符合预期的场景。又例如,若一组测试进度信息dt2中的调用回复r22为预期中的调用回复r21的内容,则调用回复rt指示被测试组件300为不通过、以及调用esp接口(即,第二行动逻辑)的执行顺序不符合预期的场景。
73.图4是本发明的另一实施例的软件测试系统的电路方块图。参考图4,软件测试系统400耦接电子装置200、被测试组件300、以及依赖组件210。软件测试系统400的存储装置可存储接口模块411、执行模块412以及判断模块413。软件测试系统400、多个模块411~413、电子装置200、以及被测试组件300可以参照软件测试系统100的相关说明并加以类推。
74.在图4实施例中,接口模块411可包括编号派发组件511以及模拟接口组件512。接口模块411通过这些组件511~512生成测试用例文件(如图1所示的文件s2)以准备测试调用操作。在本实施例中,判断模块413可包括测试结果组件531以回复测试调用操作的结果(如图1所示的测试结果s3)。
75.在本实施例中,执行模块412可包括第一执行组件52a以及第二执行组件52b。执行模块412通过这些组件52a~52b与被测试组件300协同执行测试调用操作。在本实施例中,第一执行组件52a可包括请求参数解析组件521、进度管理组件522、以及配置解析组件523处理调用请求。第二执行组件52b可包括断言执行组件524、以及数据预置组件525。
76.在本实施例中,电子装置200可操作用户接口以通过api调用依赖组件210。依赖组件210可例如是应用在企业系统或其他服务系统中的外部组件。依赖组件210可例如是设置在服务器中的数据库,以存储特定数据的地址信息。依赖组件210可包括mysql数据库、
mongo数据库、remote dictionary server(redis)数据库、mq数据库、日志中心、以及配置中心等存储组件。
77.在本实施例中,被测试组件300可包括中间组件310以及业务组件320。中间组件310可例如是用以调用存储器(例如是依赖组件210)以获取地址信息的接口组件。中间组件310可包括mysql接口、mongo接口、redis接口、mq接口、日志接口、以及配置接口等接口组件。这些接口组件可分别调用依赖组件210中的多个存储组件。在本实施例中,业务组件320可例如是用以调用服务系统(例如是软件测试系统400)以获取目标需求的接口组件。业务组件320包括km接口、ai接口、eoc接口、iam接口、以及esp接口等接口组件。这些接口组件可分别调用软件测试系统400中的多个模拟组件接口(例如是图5所示组件512中的多个接口)。
78.在本实施例中,软件测试系统400可与电子装置200一同被设置在相同的环境中(例如是企业内部的地端中)。被测试组件300可被设置在另一环境中(例如是企业外部的地端中)。依赖组件210可被设置在其他环境中(例如是外部系统的云端中)。
79.一并参考图5,图5是本发明的图4实施例的软件测试系统的操作示意图。电子装置200、依赖组件210、被测试组件300以及软件测试系统400可协同操作以通过执行模块s611~662实现功能测试作业,以示例说明图2的实施细节。
80.在本实施例中,启动用例信息(如图1所示的信息s1)可包括测试用例配置编号cid,以指示当前的功能测试作业。电子装置200根据测试用例配置编号cid发起功能测试作业。测试用例配置编号cid可例如是功能测试作业的编号以作为此作业的唯一性标识。
81.在功能测试作业中,软件测试系统400执行模块s611~s612,以根据测试用例配置编号cid定义(或创建)测试用例文件s2,并且将测试用例文件s2回传至电子装置200。也就是说,在执行调用测试操作之前,电子装置200获取本次功能测试作业的测试编号tid,以根据此测试编号tid获取对应的测试结果文件s32(即,图1所示的测试结果s3)。
82.在本实施例中,测试用例文件s2可包括对应于启动用例信息(例如是编号cid)的测试编号tid以及测试用例配置s22。测试编号tid可例如是目标组件(例如是被测试组件300)的编号以作为此组件的唯一性标识。测试用例配置s22可例如是测试用例文件s2规范的场景内容,并可包括测试用例配置编号cid。测试用例配置s22可包括断言配置、回复配置(例如是mock数据)、以及预置数据的配置等数据配置。
83.详细而言,在模块s611,接口模块411通过编号派发组件511,根据测试用例配置编号cid生成测试编号tid。接口模块411将测试编号tid回传至电子装置200,以使电子装置200根据测试编号tid通过被测试组件300对接口模块411(例如是模拟接口组件512)执行测试调用操作。在模块s612,接口模块411通过模拟接口组件512,根据测试用例配置编号cid读取测试用例配置s22,以使接口模块411通过模拟接口组件512,根据测试用例文件s2中的测试用例配置s22预置作为模拟外部接口的多个模拟组件接口。
84.在本实施例中,电子装置200根据测试编号tid调用被测试组件300以使被测试组件300执行模块s621以开始执行测试调用操作。详细而言,在模块s621,被测试组件300对经预置的模拟接口组件512依序执行多个子测试调用操作。接口组件512中的这些模拟组件接口可包括模拟esp接口、模拟bpm接口、模拟ee接口、模拟eoc接口、模拟iam接口、模拟ai接口、以及模拟km接口等模拟组件接口。
85.在本实施例中,各个子测试调用操作可包括预置数据、以及执行测试用例文件s2中的测试用例配置s22,以操作断言数据、回复数据(即,mock数据)、以及预置数据。如此,各个子测试调用操作可使判断模块413在后续的模块中,判断对应的各组测试进度信息(如图1所示的信息dt1~dtn)是否通过经定义的规范以生成测试结果中对应的测试结果文件s32。
86.接续上述的说明,执行模块412执行模块s631~s633、以及s651~s652,以通过第一执行组件52a处理并且记录关于各个子测试调用操作的调用请求。详细而言,在模块s631,执行模块412通过请求参数解析组件521,分析各个子测试调用操作中关于调用请求的内容,并且初始化以封装成对应于调用请求的对象(request testing object)。
87.在模块s632,执行模块412通过进度管理组件522,根据经分析而被封装的对象获取对应的测试进度信息(如图1所示的信息dt1)。在模块s633,执行模块412通过进度管理组件522,根据当前的测试进度,并且基于测试用例配置编号cid来读取测试用例配置s22。此外,进度管理组件522也可对每一次的测试进度进行读取以及修改,并且将这些过程以及数据内容记录在测试用例实例文件中。
88.在模块s651,执行模块412通过配置解析组件523,根据测试编号tid以及测试用例配置编号cid检查当前的测试用例配置s22是否有在上一个子测试调用操作中尚未结束的测试用例实例文件。若前述的检查结果为是,则配置解析组件523将此尚未结束的测试用例实例文件移动至错误目录。在另一方面,若前述的检查结果为否,则配置解析组件523续行模块s652。
89.在模块s652,执行模块412通过配置解析组件523,将多组测试进度信息配置成测试用例实例文件,以通过将测试进度信息(如图1所示的信息dt1)记录在测试用例实例文件中来创建测试用例实例文件。在本实施例中,配置解析组件523可根据测试编号tid以及测试用例配置编号cid分别的名称来创建测试用例实例文件。
90.在本实施例中,测试用例实例文件可例如是具有tif文件格式,并且可包括多组测试进度信息。测试用例实例文件可被保存在测试用例配置s22中。也就是说,测试用例实例文件可例如是在调用测试操作的执行过程中的实例文件,以记录每一次子测试调用操作中的调用请求的具体执行信息。
91.此外,在模块s652,执行模块412通过配置解析组件523,存取测试用例配置s22中对应于测试进度信息(如图1所示的信息dt1)的步骤配置信息。在本实施例中,步骤配置信息可例如是关于当前的子测试调用操作的规范,并且可包括在测试用例配置s22中对应的断言数据、回复数据(即,mock数据)、以及预置数据等数据配置。在每一个子测试调用操作中,步骤配置信息可对应于测试进度信息。
92.在本实施例中,在被测试组件300执行当前的子测试调用操作的最后一个步骤时,执行模块412执行模块s641。也就是说,执行模块412通过多个组件521~523执行如前述关于模块s631~s633的操作。执行模块412完成当前的子测试调用操作的参数分析,并且根据测试用例配置编号cid读取当前的测试进度信息以及测试用例配置s22。
93.接着,执行模块412执行模块s642~s645,以通过第二执行组件52b处理并且记录关于各个子测试调用操作的调用回复,并据以生成多组测试进度信息(如图1所示的信息dt1~dtn)。在本实施例中,第二执行组件52b执行断言,记录具体执行信息,并且更新测试
进度信息以预置下一个子测试调用操作所需的配置,据以完成当前的子测试调用操作。
94.详细而言,在模块s642,执行模块412通过断言执行组件524,根据经定义的测试用例配置s22对步骤配置信息执行断言操作以更新步骤配置信息。在模块s643,执行模块412通过断言执行组件524,根据经更新的步骤配置信息更新测试用例实例文件。
95.在本实施例中,测试结果文件s32可例如是具有trf文件格式,并且可包括多组测试进度信息对应的测试结果信息。也就是说,测试结果文件s32可例如是记录多个子测试调用操作的测试结果的文件。测试结果文件s32可由测试用例实例文件转换而来。
96.在模块s644,执行模块412通过数据预置组件525,根据经更新的步骤配置信息预置下一个子测试调用操作对应的测试数据。也就是说,被测试组件300执行当前的子测试调用操作的最后一个步骤时,数据预置组件525预置下一个子测试调用操作所需的数据的配置。举例来说,数据预置组件525通过调用依赖组件210中的至少一个数据库以获取预置数据的地址信息,并且通过调用模拟接口组件512中的多个模拟组件接口以继续执行多个子测试调用操作。
97.在模块s645,执行模块412通过数据预置组件525,将对应于当前的子测试调用操作的调用回复(即,mock数据)返回至被测试组件300,以完成当前的子测试调用操作。
98.回到模块s643,在被测试组件300执行最后一个子测试调用操作时,执行模块412通过断言执行组件524,以使测试结果组件531将最新的测试用例实例文件转换成测试结果文件s32。也就是说,软件测试系统400执行模块s661,以根据测试用例配置s22以及测试用例实例文件中所记录的多组测试进度信息生成测试结果文件s32。在本实施例中,测试结果组件531可根据测试编号tid以及测试用例配置编号cid分别的名称来创建测试结果文件s32。
99.详细而言,在模块s661,当测试用例实例文件中的任一个多组测试进度信息不符合测试用例配置s22的规范而为不通过时,判断模块413通过测试结果组件531,转换测试用例实例文件以生成测试结果文件s32。同时,测试结果组件531结束测试调用操作。也就是说,若当前的子测试操作为不通过时,测试结果组件531记录此操作对应的数据配置并且结束测试调用操作。
100.在本实施例中,测试结果文件s32可包括对应于各个子测试调用操作的测试进度信息、及其对应的步骤配置信息、以及前述二者信息相符或不相符的结果信息。测试结果文件s32可指示哪一个子测试调用操作通过或不通过、以及对应的场景。
101.在本实施例中,测试结果组件531保存测试结果文件s32以提供用户通过电子装置200查询功能测试作业的结果。例如,在模块s662,电子装置200根据测试编号tid,调用判断模块413(例如是测试结果组件531)以获取测试结果文件s3,据以检查执行结果。
102.综上所述,本发明的软件测试系统及软件测试方法通过多个模拟组件接口作为模拟的api服务接口,能够检验被测试组件内部调用的请求内容并且返回模拟的回复。同时,通过这些模拟组件接口能够检验被测试组件调用各组件的顺序性、唯一性以及正确性。如此,软件测试系统能够通过构造模拟的场景来检验被测试组件的行为,以检验各个程序的容错性,进而使测试人员能够快速构建测试作业所需的测试用例,并据以方便维护以及部属测试用例以提高功能测试作业的准确性以及效能。
103.最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽
管参照前述各实施例对本发明执行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案执行修改,或者对其中部分或者全部技术特征执行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

技术特征:
1.一种软件测试系统,其特征在于,包括:存储装置,存储多个模块;以及处理器,耦接所述存储装置,执行所述多个模块,其中所述多个模块包括接口模块、执行模块以及判断模块,其中所述接口模块存取电子装置的启动用例信息以生成测试用例文件,以使所述电子装置通过被测试组件根据所述测试用例文件对所述接口模块执行测试调用操作,其中所述接口模块包括多个模拟组件接口,并且所述执行测试调用操作包括多个子测试调用操作,其中所述执行模块分别分析所述被测试组件依序调用所述多个模拟组件接口的所述多个子测试调用操作以生成多组测试进度信息,其中所述判断模块根据所述测试配置文件以及所述多组测试进度信息生成测试结果至所述电子装置。2.根据权利要求1所述的软件测试系统,其特征在于,其中所述测试用例文件包括对应于所述启动用例信息的测试编号以及测试用例配置,其中所述电子装置根据所述测试编号通过所述被测试组件对所述接口模块执行所述测试调用操作。3.根据权利要求2所述的软件测试系统,其特征在于,其中所述电子装置根据所述测试编号调用所述判断模块以获取所述测试结果。4.根据权利要求1所述的软件测试系统,其特征在于,其中所述接口模块根据所述测试用例文件预置所述多个模拟组件接口。5.根据权利要求1所述的软件测试系统,其特征在于,其中所述执行模块分析各个所述多个子测试调用操作以获取对应的测试进度信息,并且存取所述测试用例文件中对应于所述测试进度信息的步骤配置信息。6.根据权利要求5所述的软件测试系统,其特征在于,其中所述执行模块对所述步骤配置信息执行断言操作以更新所述步骤配置信息,并且根据经更新的步骤配置信息预置下一个所述多个子测试调用操作对应的测试数据。7.根据权利要求1所述的软件测试系统,其特征在于,其中各个所述多个子测试调用操作包括预置数据、以及执行所述测试用例文件,以使所述判断模块判断对应的各个所述多组测试进度信息是否通过以生成所述测试结果。8.根据权利要求1所述的软件测试系统,其特征在于,其中所述执行模块将所述多组测试进度信息配置成测试用例实例文件。9.根据权利要求8所述的软件测试系统,其特征在于,其中当任一个所述多组测试进度信息为不通过时,所述判断模块转换所述测试用例实例文件以生成所述测试结果并且结束所述测试调用操作。10.根据权利要求1所述的软件测试系统,其特征在于,其中所述执行模块调用至少一个数据库以及所述多个模拟组件接口以执行所述多个子测试调用操作。11.一种软件测试方法,其特征在于,包括:通过处理器执行多个模块,其中所述多个模块包括接口模块、执行模块以及判断模块,包括:通过所述接口模块,存取电子装置的启动用例信息以生成测试用例文件,以使所述电子装置通过被测试组件根据所述测试用例文件对所述接口模块执行测试调用操作,其中所
述接口模块包括多个模拟组件接口,并且所述执行测试调用操作包括多个子测试调用操作;通过所述执行模块,分别分析所述被测试组件依序调用所述多个模拟组件接口的所述多个子测试调用操作以生成多组测试进度信息;以及通过所述判断模块,根据所述测试配置文件以及所述多组测试进度信息生成测试结果至所述电子装置。12.根据权利要求11所述的软件测试方法,其特征在于,其中所述测试用例文件包括对应于所述启动用例信息的测试编号以及测试用例配置,其中所述电子装置根据所述测试编号通过所述被测试组件对所述接口模块执行所述测试调用操作。13.根据权利要求12所述的软件测试方法,其特征在于,还包括:通过所述电子装置,根据所述测试编号调用所述判断模块以获取所述测试结果。14.根据权利要求11所述的软件测试方法,其特征在于,还包括:通过所述接口模块,根据所述测试用例文件预置所述多个模拟组件接口。15.根据权利要求11所述的软件测试方法,其特征在于,其中分别分析所述被测试组件依序调用所述多个模拟组件接口的所述多个子测试调用操作以生成所述多组测试进度信息的步骤包括:通过所述执行模块,分析各个所述多个子测试调用操作以获取对应的测试进度信息;以及通过所述执行模块,存取所述测试用例文件中对应于所述测试进度信息的步骤配置信息。16.根据权利要求15所述的软件测试方法,其特征在于,其中分别分析所述被测试组件依序调用所述多个模拟组件接口的所述多个子测试调用操作以生成所述多组测试进度信息的步骤包括:通过所述执行模块,对所述步骤配置信息执行断言操作以更新所述步骤配置信息;以及通过所述执行模块,根据经更新的步骤配置信息预置下一个所述多个子测试调用操作对应的测试数据。17.根据权利要求11所述的软件测试方法,其特征在于,其中根据所述测试配置文件以及所述多组测试进度信息生成所述测试结果至所述电子装置的步骤包括:通过所述判断模块,判断对应的各个所述多组测试进度信息是否通过以生成所述测试结果,其中各个所述多个子测试调用操作包括预置数据、以及执行所述测试用例文件。18.根据权利要求11所述的软件测试方法,其特征在于,还包括:通过所述执行模块,将所述多组测试进度信息配置成测试用例实例文件。19.根据权利要求18所述的软件测试方法,其特征在于,其中根据所述用例配置文件以及所述多组测试进度信息生所述成测试结果至所述电子装置的步骤包括:当任一个所述多组测试进度信息为不通过时,通过所述判断模块,转换所述测试用例实例文件以生成所述测试结果并且结束所述测试调用操作。20.根据权利要求11所述的软件测试方法,其特征在于,还包括:通过所述执行模块,调用至少一个数据库以及所述多个模拟组件接口以执行所述多个
子测试调用操作。

技术总结
本发明提供一种软件测试系统及软件测试方法。软件测试系统包括存储装置以及处理器。存储多个模块。处理器执行存储装置中的多个模块。接口模块存取电子装置的启动用例信息以生成测试用例文件,以使电子装置通过被测试组件根据测试用例文件对接口模块执行测试调用操作。接口模块包括多个模拟组件接口。执行测试调用操作包括多个子测试调用操作。执行模块分别分析被测试组件依序调用多个模拟组件接口的多个子测试调用操作以生成多组测试进度信息。判断模块根据测试配置文件以及多组测试进度信息生成测试结果至电子装置,据以提高测试效能。效能。效能。


技术研发人员:张蔚蔚 冯磊 孙国鑫
受保护的技术使用者:鼎捷软件股份有限公司
技术研发日:2023.05.29
技术公布日:2023/8/13
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐