CN113254328B - 白盒测试方法、系统、移动终端及存储介质 - Google Patents
白盒测试方法、系统、移动终端及存储介质 Download PDFInfo
- Publication number
- CN113254328B CN113254328B CN202110477217.1A CN202110477217A CN113254328B CN 113254328 B CN113254328 B CN 113254328B CN 202110477217 A CN202110477217 A CN 202110477217A CN 113254328 B CN113254328 B CN 113254328B
- Authority
- CN
- China
- Prior art keywords
- tested
- version
- subsystem
- subsystems
- test
- 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
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/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
本发明提供了一种白盒测试方法、系统、移动终端及存储介质,该方法包括:创建虚拟项目,确定分布式系统中的待测试子系统;对待测试子系统进行插桩编译,将被编译的待测试子系统的版本识别号插入插桩代码中;将虚拟项目分别与确定到的待测试子系统进行关联,在虚拟项目中创建测试用例;分别在待测试子系统中执行虚拟项目中创建的测试用例,得到测试数据,根据测试数据确定执行测试用例的待测试子系统,得到目标子系统;在目标子系统内创建测试数据对应的测试用例,得到目标用例,将测试数据存储至目标用例。本发明当待测试子系统中的版本发生迭代时,无需对分布式系统中的其他子系统重新进行测试,提高了白盒测试效率。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种白盒测试方法、系统、移动终端及存储介质。
背景技术
分布式系统是建立在网络之上的软件系统,通过处理各项协助的任务,然后整合出结果。分布式系统拥有多种通用的物理和逻辑资源,可以动态的分配任务,分散的物理和逻辑资源通过计算机网络实现信息交换。
现有的分布式系统进行白盒测试时,通过将分布式系统中的所有子系统统一编译到一个测试项目中,并通过执行编译后的测试项目,以达到对分布式系统的白盒测试效果,但当分布式系统中的任一子系统内的版本发生迭代时,则需要将分布式系统中的所有子系统重新编译到一个测试项目,进而降低了白盒测试效率。
发明内容
本发明实施例的目的在于提供一种白盒测试方法、系统、移动终端及存储介质,旨在解决现有的分布式系统进行白盒测试时,由于分布式系统中任一子系统内的版本发生迭代时,需要将所有子系统重新编译到一个测试项目,所导致的白盒测试效率低下的问题。
本发明实施例是这样实现的,一种白盒测试方法,所述方法包括:
创建虚拟项目,并确定分布式系统中的待测试子系统,确定到的所述待测试子系统的数量至少为1个;
对所述待测试子系统进行插桩编译,并将被编译的所述待测试子系统的版本识别号插入插桩代码中;
将所述虚拟项目分别与确定到的所述待测试子系统进行关联,并在所述虚拟项目中创建测试用例;
分别在所述待测试子系统中执行所述虚拟项目中创建的所述测试用例,得到测试数据,并根据所述测试数据确定执行所述测试用例的所述待测试子系统,得到目标子系统;
在所述目标子系统内创建所述测试数据对应的所述测试用例,得到目标用例,并将所述测试数据存储至所述目标用例。
更进一步的,所述确定分布式系统中的待测试子系统,包括:
对所述分布式系统中的子系统分别进行版本迭代检测,所述版本迭代检测用于检测所述分布式系统中的子系统的版本是否有发生了版本迭代;
若检测到的所述分布式系统中的任一子系统的版本发生了版本迭代,则将发生了版本迭代的子系统确定为所述待测试子系统。
更进一步的,所述将所述虚拟项目分别与确定到的所述待测试子系统进行关联,包括:
分别获取所述待测试子系统中的待测试版本,并分别对所述待测试版本进行版本识别号设置;
分别获取所述待测试子系统的真实版本信息,所述真实版本信息包括对应所述待测试子系统的子系统名称、版本号和版本识别号;
对所述虚拟项目进行项目信息设置,所述项目信息包括所述虚拟项目的项目名称、项目编号和项目标识,并将所述项目信息分别与所述真实版本信息进行信息关联。
更进一步的,所述根据所述测试数据确定执行所述测试用例的所述待测试子系统,得到目标子系统,包括:
提取所述测试数据中的版本识别号,并将所述测试数据中的版本识别号与所述真实版本信息中的版本识别号进行匹配;
将匹配到的所述真实版本信息对应的所述待测试子系统,确定为执行所述测试用例的所述待测试子系统,并将确定到的所述待测试子系统设置为所述目标子系统。
更进一步的,所述将所述测试数据存储至所述目标用例之后,还包括:
对所述目标用例中存储的所述测试数据进行上线检测,所述上线检测用于检测所述测试数据对应的所述待测试版本是否能上线运行;
若所述目标用例中存储的所述测试数据上线检测不合格,则针对所述目标用例对应的所述待测试版本发送版本迭代指令,并返回执行所述将所述虚拟项目分别与确定到的所述待测试子系统进行关联的步骤,所述版本迭代指令用于指示所述待测试子系统对所述待测试版本进行版本迭代。
更进一步的,所述对所述目标用例中存储的所述测试数据进行上线检测之后,还包括:
若所述目标用例中存储的所述测试数据上线检测合格,则断开所述测试数据对应所述待测试子系统与所述虚拟项目之间的关联。
更进一步的,所述若所述目标用例中存储的所述测试数据上线检测合格之后,还包括:
将所述目标用例对应的所述待测试版本设置为发布版本,并根据所述发布版本和所述发布版本对应的所述待测试子系统生成版本发布信息,所述版本发布信息包括所述待测试子系统的系统名称和所述发布版本对应的版本号。
本发明实施例的另一目的在于提供一种白盒测试系统,所述系统包括:
虚拟项目创建模块,用于创建虚拟项目,并确定分布式系统中的待测试子系统,确定到的所述待测试子系统的数量至少为1个;
插桩编译模块,对所述待测试子系统进行插桩编译,并将被编译的所述待测试子系统的版本识别号插入插桩代码中;
测试用例创建模块,用于将所述虚拟项目分别与确定到的所述待测试子系统进行关联,并在所述虚拟项目中创建测试用例;
测试用例执行模块,用于分别在所述待测试子系统中执行所述虚拟项目中创建的所述测试用例,得到测试数据,并根据所述测试数据确定执行所述测试用例的所述待测试子系统,得到目标子系统;
测试数据存储模块,用于在所述目标子系统内创建所述测试数据对应的所述测试用例,得到目标用例,并将所述测试数据存储至所述目标用例。
本发明实施例的另一目的在于提供一种移动终端,包括存储设备以及处理器,所述存储设备用于存储计算机程序,所述处理器运行所述计算机程序以使所述移动终端执行上述的白盒测试方法。
本发明实施例的另一目的在于提供一种存储介质,其存储有上述的移动终端中所使用的计算机程序,该计算机程序被处理器执行时实现上述的白盒测试方法的步骤。
本发明实施例,通过确定分布式系统中的待测试子系统,防止了对无需测试的子系统的检测,提高了白盒检测效率,通过将虚拟项目分别与确定到的待测试子系统进行关联,提高了测试用例执行的准确性,防止了无需测试的子系统中测试用例的执行,通过分别在待测试子系统中执行虚拟项目中创建的测试用例,保障了测试用例在所有待测试子系统中的执行,提高了白盒测试的准确性,且当待测试子系统中的版本发生迭代时,无需对分布式系统中的其他子系统重新进行测试,提高了白盒测试效率,通过根据测试数据确定执行测试用例的待测试子系统,提高了测试数据与目标用例之间数据存储的准确性。
附图说明
图1是本发明第一实施例提供的白盒测试方法的流程图;
图2是本发明第二实施例提供的白盒测试方法的流程图;
图3是第二实施例提供的一种白盒测试结果的示意图;
图4是本发明第三实施例提供的白盒测试方法的流程图;
图5是第三实施例提供的一种白盒测试结果的示意图;
图6是本发明第四实施例提供的白盒测试系统的结构示意图;
图7是本发明第五实施例提供的移动终端的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
实施例一
请参阅图1,是本发明第一实施例提供的白盒测试方法的流程图,该白盒测试方法可以应用于任一终端设备,该终端设备可以为手机、平板、服务器或可穿戴智能设备等,该白盒测试方法包括步骤:
步骤S10,创建虚拟项目,并确定分布式系统中的待测试子系统;
其中,该虚拟项目是指在创建时通过增加字段进行虚拟标识的待测试子系统项目,且在完成虚拟项目的创建后,对创建的虚拟项目进行编号,该分布式系统中的子系统数据至少为1个,且确定到的待测试子系统的数量至少为1个,该步骤中,通过确定分布式系统中的待测试子系统,防止了对无需测试的子系统的检测,提高了白盒检测效率。
可选的,该步骤中,所述确定分布式系统中的待测试子系统,包括:
对所述分布式系统中的子系统分别进行版本迭代检测,其中,版本迭代检测用于检测分布式系统中的子系统的版本是否有发生了版本迭代;
若检测到的所述分布式系统中的任一子系统的版本发生了版本迭代,则将发生了版本迭代的子系统确定为所述待测试子系统;
例如,当该分布式系统包括子系统a1、子系统a2、子系统a3和子系统a4时,且检测到子系统a1、子系统a2和子系统a3中的版本发生了版本迭代,则分别将子系统a1、子系统a2和子系统a3设置为待测试子系统,而由于子系统a4中未发生版本迭代,因此,无需将子系统a4设置为待测试子系统,防止了对子系统a4的错误检测。
步骤S20,对所述待测试子系统进行插桩编译,并将被编译的所述待测试子系统的版本识别号插入插桩代码中;
其中,通过对待测试子系统进行插桩编译,并将被编译的所述待测试子系统的版本识别号插入插桩代码中,使得经过插桩编译后的待测试子系统在执行测试用例后能得到对应的测试数据,保障了后续待测试子系统中测试用例执行的准确性。
步骤S30,将所述虚拟项目分别与确定到的所述待测试子系统进行关联,并在所述虚拟项目中创建测试用例;
其中,该测试用例用于对该待测试子系统中的系统版本进行测试,将虚拟项目分别与确定到的待测试子系统进行关联,有效地提高了后续测试用例执行的准确性。
该步骤中,可以根据用户的需求进行该测试用例的创建,也可以通过用户预先设置的用例导入接口进行该测试用例的导入,且在该测试用例创建的过程中,对创建的测试用例进行编号,并对测试用例和该测试用例的用例信息进行保存,该用例信息包括对应测试用例的编号、名称和虚拟项目的编号。
步骤S40,分别在所述待测试子系统中执行所述虚拟项目中创建的所述测试用例,得到测试数据,并根据所述测试数据确定执行所述测试用例的所述待测试子系统,得到目标子系统;
其中,通过分别在待测试子系统中执行虚拟项目中创建的测试用例,保障了测试用例在所有待测试子系统中的执行,提高了白盒测试的准确性,且当待测试子系统中的版本发生迭代时,无需对分布式系统中的其他子系统重新进行测试,提高了白盒测试效率。
例如,当待测试子系统包括子系统a1、子系统a2和子系统a3,虚拟项目中创建的测试用例包括用例b1和用例b2时,则在子系统a1、子系统a2和子系统a3中分别执行用例b1和用例b2,并获取该子系统a1、子系统a2和子系统a3中的测试数据。
该步骤中,通过根据测试数据确定执行测试用例的待测试子系统,进而提高了后续目标用例创建和测试数据存储的准确性,可选的,本实施例中,当虚拟项目关联的待测试子系统都执行了虚拟项目中创建的所有测试用例后,停止执行测试用例。
步骤S50,在所述目标子系统内创建所述测试数据对应的所述测试用例,得到目标用例,并将所述测试数据存储至所述目标用例;
其中,通过在目标子系统内创建测试数据对应的测试用例,有效地方便了用户对待测试子系统中已经完成测试的测试用例的查询,且通过将测试数据存储至目标用例,基于存储后的测试数据,方便了对对应待测试子系统中代码运行信息查询,基于查询到的代码运行信息,方便了对该待测试子系统当前运行版本是否能上线的判断。
本实施例,通过确定分布式系统中的待测试子系统,防止了对无需测试的子系统的检测,提高了白盒检测效率,通过将虚拟项目分别与确定到的待测试子系统进行关联,提高了测试用例执行的准确性,防止了无需测试的子系统中测试用例的执行,通过分别在待测试子系统中执行虚拟项目中创建的测试用例,保障了测试用例在所有待测试子系统中的执行,提高了白盒测试的准确性,且当待测试子系统中的版本发生迭代时,无需对分布式系统中的其他子系统重新进行测试,提高了白盒测试效率,通过根据测试数据确定执行测试用例的待测试子系统,提高了测试数据与目标用例之间数据存储的准确性。
实施例二
请参阅图2,是本发明第二实施例提供的白盒测试方法的流程图,该实施例用于对步骤S20作进一步细化,包括步骤:
步骤S21,分别获取所述待测试子系统中的待测试版本,并分别对所述待测试版本进行版本识别号设置;
其中,该待测试版本可以为待测试子系统中当前的运行版本或未运行的版本,同一待测试子系统中可以设置多个不同的待测试版本,不同待测试子系统中的待测试版本均可以根据用户需求进行设置和迭代,该步骤中,版本识别号的设置主要在于通过插桩编译插入插桩代码中,从而使测试数据中包含版本识别号信息,保障了后续目标子系统的查找,且通过设置每个待测试子系统的待测试版本一个版本识别号,并分别进行插桩编译,将被编译的待测试子系统的版本识别号直接插入到插桩代码中,待测试子系统的版本号与版本识别号一一对应。
例如,当确定到的待测试子系统包括ProjectA系统、ProjectB系统和ProjectC系统,在ProjectA系统中获取到的待测试版本为版本V2,在ProjectB系统中获取到的待测试版本为版本V3,在ProjectC系统中获取到的待测试版本为版本V3;
针对ProjectA系统中的版本V2,可以将版本V2的版本识别号设置为102;
针对ProjectB系统中的版本V3,可以将版本V3的版本识别号设置为203;
针对ProjectC系统中的版本V3,可以将版本V3的版本识别号设置为303。
步骤S22,分别获取所述待测试子系统的真实版本信息;
其中,该真实版本信息包括对应该待测试子系统的子系统名称、版本号和版本识别号,例如,请参阅表1:
子系统名称 | 版本号 | 版本识别号 |
ProjectA | V2 | 102 |
ProjectB | V3 | 203 |
ProjectC | V3 | 303 |
表1
其中,该步骤中包括三条真实版本信息,分别为:ProjectA-V2-102,ProjectB-V3-203和ProjectC-V3-303,即,ProjectA的待测试版本对应的版本号为V2;ProjectB的待测试版本对应的版本号为V3;ProjectC的待测试版本对应的版本号为V3,对三个真实项目对应的待测试版本分别赋予一个版本识别号,其中ProjectA的版本号为V2的版本对应的版本识别号为102;ProjectB的版本号为V3的版本对应的版本识别号为203;ProjectC的版本号为V3的版本对应的版本识别号为303。
步骤S23,对所述虚拟项目进行项目信息设置,并将所述项目信息分别与所述真实版本信息进行信息关联;
其中,项目信息包括虚拟项目的项目名称、项目编号和项目标识,例如,请参阅表2:
项目名称 | 项目编号 | 项目标识 |
VirtualVersion | 00001 | virtualFlag |
表2
该虚拟项目的项目名称为“VirtualVersion”,项目编号为“00001”,项目标识为“virtualFlag”;
本实施例中,通过将项目信息分别与真实版本信息进行信息关联,有效地提高了待测试子系统中测试用例执行的准确性,例如,表1所示的真实版本信息与表2所示的项目信息进行关联,真实版本信息与项目信息的对应关系可以包括表3所示信息:
项目编号 | 子系统名称 | 版本识别号 |
00001 | ProjectA | 102 |
00001 | ProjectB | 203 |
00001 | ProjectC | 303 |
表3
如上表3所示,虚拟项目的项目编号“00001”、子系统名称“ProjectA”、版本识别号“102”形成一组对应关系;虚拟项目的项目编号“00001”、子系统名称“ProjectB”、版本识别号“203”形成一组对应关系;虚拟项目编号“00001”、子系统名称“ProjectC”、版本识别号“303”形成一组对应关系。
本实施例中,在步骤S20之后,还包括:
对创建的所述测试用例进行编号,并编号后的所述测试用例与所述真实版本信息进行关联;
其中,通过将虚拟项目中创建的测试用例与真实版本信息进行关联,有效地提高了待测试子系统中测试用例的执行,例如,请参阅表4,为测试用例与真实版本信息之间的关联关系:
子系统名称 | 版本号 | 版本识别号 | 测试用例名称 | 测试用例编号 |
ProjectA | V2 | 102 | TestCase1 | C1 |
ProjectB | V3 | 203 | TestCase1 | C1 |
ProjectC | V3 | 303 | TestCase1 | C1 |
ProjectA | V2 | 102 | TestCase2 | C2 |
ProjectB | V3 | 203 | TestCase2 | C2 |
ProjectC | V3 | 303 | TestCase2 | C2 |
ProjectA | V2 | 102 | TestCase3 | C3 |
ProjectB | V3 | 203 | TestCase3 | C3 |
ProjectC | V3 | 303 | TestCase3 | C3 |
本实施例中,经过插桩编译的待测试子系统在执行测试用例时,可以获得待测试子系统的动态数据,当被编译的待测试子系统的版本识别号被插入到插桩代码中时,待测试子系统在执行测试用例时,可以获得包含待测试子系统的版本识别号的动态数据,因此,本实施例中,可以通过对动态数据所包含的版本识别号进行分析,确定执行测试的待测试子系统以及执行测试的版本。
可选的,本实施例中,针对步骤S30,所述根据所述测试数据确定执行所述测试用例的所述待测试子系统,得到目标子系统,包括:
提取所述测试数据中的版本识别号,并将所述测试数据中的版本识别号与所述真实版本信息中的版本识别号进行匹配;
其中,该测试数据中存储执行测试用例后的代码运行信息以及版本识别号等信息,因此,通将该测试数据中的版本识别号与真实版本信息中的版本识别号进行匹配,能有效地查询到执行该测试数据对应测试用户的待测试子系统,及待测试子系统中执行该测试用例的版本。
将匹配到的所述真实版本信息对应的所述待测试子系统,确定为执行所述测试用例的所述待测试子系统,并将确定到的所述待测试子系统设置为所述目标子系统;
其中,通过将匹配到的真实版本信息对应的待测试子系统,确定为执行测试用例的待测试子系统,提高了目标子系统设置的准确性。
例如,当执行的测试用例为C1,得到的测试数据包括测试数据Q1、测试数据Q2和测试数据Q3:
当测试数据Q1中存储的版本识别号为102,则可以确定执行测试的待测试子系统为ProjectA系统,版本号为V2,因此,在ProjectA系统的V2版本下创建测试用例编号为C1的测试用例,得到目标用例D1,并将测试数据Q1中的动态数据添加到目标用例D1中;
当测试数据Q2中存储的版本识别号为203,则可以确定执行测试的待测试子系统为ProjectB系统,版本号为V3,在ProjectB系统的V3版本下创建测试用例编号为C1的测试用例,得到目标用例D2,并将测试数据Q2中的动态数据添加到目标用例D2中;
当测试数据Q3中存储的版本识别号为303,则可以确定执行测试的待测试子系统为ProjectC系统,版本号为V3,在ProjectC系统的V3版本下创建测试用例编号为C1的测试用例,得到目标用例D3,并将测试数据Q3中的动态数据添加到目标用例D3中。
请参阅图3,为本实施例提供的一种白盒测试结果,其中,分布式系统RealVersion有5个子系统,名称分别为ProjectA、ProjectB、ProjectC、ProjectD、ProjectE,其中ProjectA、ProjectB、ProjectC为确定到的待测试子系统。ProjectA有2个版本,版本号分别为V1、V2,ProjecB有3个版本,版本号分别为V1、V2、V3,ProjecC有4个版本,版本号分别为V1、V2、V3、V4。
创建虚拟项目VirtualVersion,在ProjectA、ProjectB、ProjectC的待测版本插桩编译后,将虚拟项目VirtualVersion与ProjectA、ProjectB、ProjectC中的待测版本进行关联。
在虚拟项目VirtualVersion中创建或导入3个测试用例,编号分别为C1、C2、C3。
虚拟项目关联的每一个待测试子系统中的待测试版本分别执行虚拟项目中所有的测试用例,当测试数据的结果满足上线要求时可以交付上线,当测试结果不满足上线要求时需要对待测试子系统中的待测试版本进行修改,产生新的待测试版本,并重复测试过程。如图3所示,ProjectA的V2版本下创建了C1、C2、C3三个测试用例,则说明ProjectA的V2版本已执行完所有测试用例,ProjectB的V3版本下创建了C1、C2、C3三个测试用例,则说明ProjectB的V3版本已执行完所有测试用例,ProjectC的V3版本下创建了C1、C2、C3三个测试用例,则说明ProjectC的V3版本已执行完所有测试用例,ProjectC的V4版本虽然进行插桩编译,但是并未执行测试。
本实施例中,当分布式系统中某一个或某几个子系统发生版本迭代,可以仅就发生了版本迭代的子系统与虚拟项目关联和测试,对于已完成测试的子系统,可以在虚拟项目中取消关联,未发生版本迭代的子系统未与虚拟项目进行关联,无需进行重复测试,大大提高了测试效率,对未测试子系统的使用不造成干扰。
本实施例中,通过分别对待测试版本进行版本识别号设置,有效地方便了不同待测试子系统之间待测试版本的区分,通过将项目信息分别与真实版本信息进行信息关联,有效地提高了待测试子系统中测试用例执行的准确性。
实施例三
请参阅图4,是本发明第三实施例提供的白盒测试方法的流程图,该实施例用于对步骤S40之后的步骤作进一步细化,包括步骤:
步骤S50,对所述目标用例中存储的所述测试数据进行上线检测;
其中,该上线检测用于检测测试数据对应的待测试版本是否能上线运行。
步骤S60,若所述目标用例中存储的所述测试数据上线检测不合格,则针对所述目标用例对应的所述待测试版本发送版本迭代指令,并返回执行所述将所述虚拟项目分别与确定到的所述待测试子系统进行关联的步骤;
其中,该版本迭代指令用于指示待测试子系统对待测试版本进行版本迭代,该步骤中,通过针对目标用例对应的待测试版本发送版本迭代指令,能有效地指示该待测试子系统中对应待测试版本的版本迭代操作,保障了每个待测试子系统中待测试版本的上线质量。
步骤S70,若所述目标用例中存储的所述测试数据上线检测合格,则断开所述测试数据对应所述待测试子系统与所述虚拟项目之间的关联;
其中,通过若目标用例中存储的测试数据上线检测合格,通过断开测试数据对应待测试子系统与虚拟项目之间的关联,防止了对上线检测合格的待测试版本的重复检测,提高了白盒检测的检测效率。
可选的,本实施例中,所述若所述目标用例中存储的所述测试数据上线检测合格之后,还包括:将所述目标用例对应的所述待测试版本设置为发布版本,并根据所述发布版本和所述发布版本对应的所述待测试子系统生成版本发布信息,其中,版本发布信息包括待测试子系统的系统名称和发布版本对应的版本号,通过根据发布版本和发布版本对应的待测试子系统生成版本发布信息,方便了用户对待测试版本上发布版本信息的查看。
请参阅图5,为本实施例提供的一种白盒测试结果,ProjectA、ProjectB、ProjectC为分布式系统的三个待测试子系统,需要对这三个子系统进行测试,在测试结果满足上线条件的基础上进行上线发布;测试结果不满足上线条件时进行版本迭代,重新进行测试。已经上线发布的版本,在进行版本更新时,将重新进行测试。
图5中纵轴表示测试时间,横轴表示测试版本。ProjectA、ProjectB、ProjectC用填充不同图案的矩形来表示,在对应的矩形中添加版本号用来表示子系统的待测试版本。ProjectA、ProjectB、ProjectC的初始版本均为V1。ProjectA进行了一次迭代,共有V1、V2两个版本;ProjectB进行了两次迭代,共有V1、V2、V3三个版本;ProjectC进行了三次迭代,共有V1、V2、V3、V4四个版本。具体测试过程如下:
1月1日对ProjectA的V1版本进行了测试,测试结果未达到上线条件;
1月2日对ProjectB的V1版本进行了测试,测试结果未达到上线条件;
1月3日对ProjectB的V2版本进行了测试,测试结果未达到上线条件;
1月4日对ProjectC的V1版本、ProjectA的V2版本进行了测试,ProjectC的V1版本测试结果未达到上线条件,ProjectA的V2版本测试结果达到了上线条件,上线发布;
1月6日对ProjectC的V2版本、ProjectB的V3版本进行了测试,ProjectC的V2版本测试结果未达到上线条件,ProjectB的V3版本测试结果达到了上线条件,上线发布;
1月7日对ProjectC的V3版本进行了测试,测试结果达到上线条件,上线发布;
1月8日对ProjectC的V4版本进行了测试,测试结果未达到上线条件。
因此,ProjectA上线发布的版本为V2版本,ProjectB上线发布的版本为V3版本,ProjectC上线发布的版本为V3版本。
本实施例中,通过对目标用例中存储的测试数据进行上线检测,能有效地检测到目标用例对应的待测试版本是否能进行版本上线,通过针对目标用例对应的待测试版本发送版本迭代指令,能有效地指示该待测试子系统中对应待测试版本的版本迭代操作,保障了每个待测试子系统中待测试版本的上线质量,通过若目标用例中存储的测试数据上线检测合格,通过断开测试数据对应待测试子系统与虚拟项目之间的关联,防止了对上线检测合格的待测试版本的重复检测。
实施例四
请参阅图6,是本发明第四实施例提供的白盒测试系统100的结构示意图,包括:虚拟项目创建模块10、插桩编译模块11、测试用例创建模块12、测试用例执行模块13和测试数据存储模块14,其中:
虚拟项目创建模块10,用于创建虚拟项目,并确定分布式系统中的待测试子系统,确定到的所述待测试子系统的数量至少为1个。
其中,该虚拟项目创建模块10还用于:对所述分布式系统中的子系统分别进行版本迭代检测,所述版本迭代检测用于检测所述分布式系统中的子系统的版本是否有发生了版本迭代;
若检测到的所述分布式系统中的任一子系统的版本发生了版本迭代,则将发生了版本迭代的子系统确定为所述待测试子系统。
插桩编译模块11,用于对所述待测试子系统进行插桩编译,并将被编译的所述待测试子系统的版本识别号插入插桩代码中。
测试用例创建模块12,用于将所述虚拟项目分别与确定到的所述待测试子系统进行关联,并在所述虚拟项目中创建测试用例。
其中,该测试用户创建模块11还用于:分别获取所述待测试子系统中的待测试版本,并分别对所述待测试版本进行版本识别号设置;
分别获取所述待测试子系统的真实版本信息,所述真实版本信息包括对应所述待测试子系统的子系统名称、版本号和版本识别号;
对所述虚拟项目进行项目信息设置,所述项目信息包括所述虚拟项目的项目名称、项目编号和项目标识,并将所述项目信息分别与所述真实版本信息进行信息关联。
测试用例执行模块13,用于分别在所述待测试子系统中执行所述虚拟项目中创建的所述测试用例,得到测试数据,并根据所述测试数据确定执行所述测试用例的所述待测试子系统,得到目标子系统。
其中,该测试用户执行模块12还用于:提取所述测试数据中的版本识别号,并将所述测试数据中的版本识别号与所述真实版本信息中的版本识别号进行匹配;
将匹配到的所述真实版本信息对应的所述待测试子系统,确定为执行所述测试用例的所述待测试子系统,并将确定到的所述待测试子系统设置为所述目标子系统。
测试数据存储模块14,用于在所述目标子系统内创建所述测试数据对应的所述测试用例,得到目标用例,并将所述测试数据存储至所述目标用例。
可选的,本实施例中,该白盒测试系统100还包括:
上线检测模块15,用于对所述目标用例中存储的所述测试数据进行上线检测,所述上线检测用于检测所述测试数据对应的所述待测试版本是否能上线运行;
若所述目标用例中存储的所述测试数据上线检测不合格,则针对所述目标用例对应的所述待测试版本发送版本迭代指令,并返回执行所述将所述虚拟项目分别与确定到的所述待测试子系统进行关联的步骤,所述版本迭代指令用于指示所述待测试子系统对所述待测试版本进行版本迭代。
其中,该上线检测模块15还用于:若所述目标用例中存储的所述测试数据上线检测合格,则断开所述测试数据对应所述待测试子系统与所述虚拟项目之间的关联。
可选的,该上线检测模块15还用于:将所述目标用例对应的所述待测试版本设置为发布版本,并根据所述发布版本和所述发布版本对应的所述待测试子系统生成版本发布信息,所述版本发布信息包括所述待测试子系统的系统名称和所述发布版本对应的版本号。
本实施例,通过确定分布式系统中的待测试子系统,防止了对无需测试的子系统的检测,提高了白盒检测效率,通过将虚拟项目分别与确定到的待测试子系统进行关联,提高了测试用例执行的准确性,防止了无需测试的子系统中测试用例的执行,通过分别在待测试子系统中执行虚拟项目中创建的测试用例,保障了测试用例在所有待测试子系统中的执行,提高了白盒测试的准确性,且当待测试子系统中的版本发生迭代时,无需对分布式系统中的其他子系统重新进行测试,提高了白盒测试效率,通过根据测试数据确定执行测试用例的待测试子系统,提高了测试数据与目标用例之间数据存储的准确性。
实施例五
请参阅图7,是本发明第五实施例提供的移动终端101,包括存储设备以及处理器,所述存储设备用于存储计算机程序,所述处理器运行所述计算机程序以使所述移动终端101执行上述的白盒测试方法。
本实施例还提供了一种存储介质,其上存储有上述移动终端101中所使用的计算机程序,该程序在执行时,包括如下步骤:
创建虚拟项目,并确定分布式系统中的待测试子系统,确定到的所述待测试子系统的数量至少为1个;
对所述待测试子系统进行插桩编译,并将被编译的所述待测试子系统的版本识别号插入插桩代码中;
将所述虚拟项目分别与确定到的所述待测试子系统进行关联,并在所述虚拟项目中创建测试用例;
分别在所述待测试子系统中执行所述虚拟项目中创建的所述测试用例,得到测试数据,并根据所述测试数据确定执行所述测试用例的所述待测试子系统,得到目标子系统;
在所述目标子系统内创建所述测试数据对应的所述测试用例,得到目标用例,并将所述测试数据存储至所述目标用例。所述的存储介质,如:ROM/RAM、磁碟、光盘等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元或模块完成,即将存储装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施方式中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。
本领域技术人员可以理解,图6中示出的组成结构并不构成对本发明的白盒测试系统的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置,而图1、图2和图4中的白盒测试方法亦采用图6中所示的更多或更少的部件,或者组合某些部件,或者不同的部件布置来实现。本发明所称的单元、模块等是指一种能够被所述目标白盒测试系统中的处理器(图未示)所执行并功能够完成特定功能的一系列计算机程序,其均可存储于所述目标白盒测试系统的存储设备(图未示)内。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种白盒测试方法,其特征在于,所述方法包括:
创建虚拟项目,并确定分布式系统中的待测试子系统,确定到的所述待测试子系统的数量至少为1个;
对所述待测试子系统进行插桩编译,并将被编译的所述待测试子系统的版本识别号插入插桩代码中;
将所述虚拟项目分别与确定到的所述待测试子系统进行关联,并在所述虚拟项目中创建测试用例;
分别在所述待测试子系统中执行所述虚拟项目中创建的所述测试用例,得到测试数据,并根据所述测试数据确定执行所述测试用例的所述待测试子系统,得到目标子系统;
在所述目标子系统内创建所述测试数据对应的所述测试用例,得到目标用例,并将所述测试数据存储至所述目标用例;
所述确定分布式系统中的待测试子系统,包括:
对所述分布式系统中的子系统分别进行版本迭代检测,所述版本迭代检测用于检测所述分布式系统中的子系统的版本是否有发生了版本迭代;
若检测到的所述分布式系统中的任一子系统的版本发生了版本迭代,则将发生了版本迭代的子系统确定为所述待测试子系统。
2.如权利要求1所述的白盒测试方法,其特征在于,所述将所述虚拟项目分别与确定到的所述待测试子系统进行关联,包括:
分别获取所述待测试子系统中的待测试版本,并分别对所述待测试版本进行版本识别号设置;
分别获取所述待测试子系统的真实版本信息,所述真实版本信息包括对应所述待测试子系统的子系统名称、版本号和版本识别号;
对所述虚拟项目进行项目信息设置,所述项目信息包括所述虚拟项目的项目名称、项目编号和项目标识,并将所述项目信息分别与所述真实版本信息进行信息关联。
3.如权利要求2所述的白盒测试方法,其特征在于,所述根据所述测试数据确定执行所述测试用例的所述待测试子系统,得到目标子系统,包括:
提取所述测试数据中的版本识别号,并将所述测试数据中的版本识别号与所述真实版本信息中的版本识别号进行匹配;
将匹配到的所述真实版本信息对应的所述待测试子系统,确定为执行所述测试用例的所述待测试子系统,并将确定到的所述待测试子系统设置为所述目标子系统。
4.如权利要求2所述的白盒测试方法,其特征在于,所述将所述测试数据存储至所述目标用例之后,还包括:
对所述目标用例中存储的所述测试数据进行上线检测,所述上线检测用于检测所述测试数据对应的所述待测试版本是否能上线运行;
若所述目标用例中存储的所述测试数据上线检测不合格,则针对所述目标用例对应的所述待测试版本发送版本迭代指令,并返回执行所述将所述虚拟项目分别与确定到的所述待测试子系统进行关联的步骤,所述版本迭代指令用于指示所述待测试子系统对所述待测试版本进行版本迭代。
5.如权利要求4所述的白盒测试方法,其特征在于,所述对所述目标用例中存储的所述测试数据进行上线检测之后,还包括:
若所述目标用例中存储的所述测试数据上线检测合格,则断开所述测试数据对应所述待测试子系统与所述虚拟项目之间的关联。
6.如权利要求4所述的白盒测试方法,其特征在于,所述若所述目标用例中存储的所述测试数据上线检测合格之后,还包括:
将所述目标用例对应的所述待测试版本设置为发布版本,并根据所述发布版本和所述发布版本对应的所述待测试子系统生成版本发布信息,所述版本发布信息包括所述待测试子系统的系统名称和所述发布版本对应的版本号。
7.一种白盒测试系统,其特征在于,所述系统包括:
虚拟项目创建模块,用于创建虚拟项目,并确定分布式系统中的待测试子系统,确定到的所述待测试子系统的数量至少为1个;
所述虚拟项目创建模块,还用于:对所述分布式系统中的子系统分别进行版本迭代检测,所述版本迭代检测用于检测所述分布式系统中的子系统的版本是否有发生了版本迭代;
若检测到的所述分布式系统中的任一子系统的版本发生了版本迭代,则将发生了版本迭代的子系统确定为所述待测试子系统;
插桩编译模块,用于对所述待测试子系统进行插桩编译,并将被编译的所述待测试子系统的版本识别号插入插桩代码中;
测试用例创建模块,用于将所述虚拟项目分别与确定到的所述待测试子系统进行关联,并在所述虚拟项目中创建测试用例;
测试用例执行模块,用于分别在所述待测试子系统中执行所述虚拟项目中创建的所述测试用例,得到测试数据,并根据所述测试数据确定执行所述测试用例的所述待测试子系统,得到目标子系统;
测试数据存储模块,用于在所述目标子系统内创建所述测试数据对应的所述测试用例,得到目标用例,并将所述测试数据存储至所述目标用例。
8.一种移动终端,其特征在于,包括存储设备以及处理器,所述存储设备用于存储计算机程序,所述处理器运行所述计算机程序以使所述移动终端执行根据权利要求1至6任一项所述的白盒测试方法。
9.一种存储介质,其特征在于,其存储有权利要求8所述的移动终端中所使用的计算机程序,该计算机程序被处理器执行时实现权利要求1至6任一项所述的白盒测试方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110477217.1A CN113254328B (zh) | 2021-04-29 | 2021-04-29 | 白盒测试方法、系统、移动终端及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110477217.1A CN113254328B (zh) | 2021-04-29 | 2021-04-29 | 白盒测试方法、系统、移动终端及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113254328A CN113254328A (zh) | 2021-08-13 |
CN113254328B true CN113254328B (zh) | 2022-08-09 |
Family
ID=77223611
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110477217.1A Active CN113254328B (zh) | 2021-04-29 | 2021-04-29 | 白盒测试方法、系统、移动终端及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113254328B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107807881A (zh) * | 2017-09-28 | 2018-03-16 | 北京新能源汽车股份有限公司 | 代码覆盖率的测试方法、装置和计算机设备 |
CN108563562A (zh) * | 2018-03-22 | 2018-09-21 | 平安科技(深圳)有限公司 | 分布式系统的测试方法、装置、计算机设备及存储介质 |
CN109271309A (zh) * | 2017-07-18 | 2019-01-25 | 北京嘀嘀无限科技发展有限公司 | 自动化测试软件的方法及装置、服务器、设备和存储介质 |
CN109960643A (zh) * | 2017-12-22 | 2019-07-02 | 网宿科技股份有限公司 | 一种代码测试方法和装置 |
CN109976994A (zh) * | 2017-12-27 | 2019-07-05 | 航天信息股份有限公司 | Java项目的白盒测试方法、装置、计算机设备 |
CN111045706A (zh) * | 2019-12-16 | 2020-04-21 | 广州品唯软件有限公司 | 测试项目的执行包更新方法及装置和计算机可读存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9792203B2 (en) * | 2013-11-14 | 2017-10-17 | Sap Se | Isolated testing of distributed development projects |
US9811451B1 (en) * | 2015-09-17 | 2017-11-07 | Amazon Technologies, Inc. | Distributed software testing |
US10783065B2 (en) * | 2018-03-23 | 2020-09-22 | Sungard Availability Services, Lp | Unified test automation system |
CN108563579B (zh) * | 2018-04-23 | 2021-06-18 | 苏州科达科技股份有限公司 | 白盒测试方法、装置、系统及存储介质 |
CN109951355B (zh) * | 2019-03-13 | 2022-09-06 | 苏州洞察云信息技术有限公司 | 一种用于分布式系统白盒关联路径追踪的方法 |
-
2021
- 2021-04-29 CN CN202110477217.1A patent/CN113254328B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109271309A (zh) * | 2017-07-18 | 2019-01-25 | 北京嘀嘀无限科技发展有限公司 | 自动化测试软件的方法及装置、服务器、设备和存储介质 |
CN107807881A (zh) * | 2017-09-28 | 2018-03-16 | 北京新能源汽车股份有限公司 | 代码覆盖率的测试方法、装置和计算机设备 |
CN109960643A (zh) * | 2017-12-22 | 2019-07-02 | 网宿科技股份有限公司 | 一种代码测试方法和装置 |
CN109976994A (zh) * | 2017-12-27 | 2019-07-05 | 航天信息股份有限公司 | Java项目的白盒测试方法、装置、计算机设备 |
CN108563562A (zh) * | 2018-03-22 | 2018-09-21 | 平安科技(深圳)有限公司 | 分布式系统的测试方法、装置、计算机设备及存储介质 |
CN111045706A (zh) * | 2019-12-16 | 2020-04-21 | 广州品唯软件有限公司 | 测试项目的执行包更新方法及装置和计算机可读存储介质 |
Non-Patent Citations (3)
Title |
---|
aSIT:面向接口的分布式自动化测试系统;蔡高扬 等;《广东通信技术》;20200430;第40卷(第4期);第38-43页 * |
分布式系统测试;ydzhang;《https://www.cnblogs.com/yunnotes/archive/2013/04/19/3032290.html》;20130419;第1-3页 * |
分布式系统测试模型与框架的研究与应用;何腾蛟;《中国优秀硕士学位论文全文数据库 信息科技辑》;20091115;I138-482 * |
Also Published As
Publication number | Publication date |
---|---|
CN113254328A (zh) | 2021-08-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107665171B (zh) | 自动回归测试方法及装置 | |
CN109522228B (zh) | 接口自动化测试数据构造方法、装置、平台及存储介质 | |
US7089535B2 (en) | Code coverage with an integrated development environment | |
CN107659455B (zh) | 一种iOS端Mock数据的方法、存储介质、设备及系统 | |
CN110704297A (zh) | 代码评审方法、装置、计算机设备及存储介质 | |
CN111597110B (zh) | 页面测试方法、装置、电子设备及存储介质 | |
CN111241111B (zh) | 数据查询方法及装置、数据对比方法及装置、介质及设备 | |
CN111026670B (zh) | 测试用例的生成方法、测试用例的生成装置及存储介质 | |
CN112948473A (zh) | 数据仓库的数据处理方法、装置、系统及存储介质 | |
CN112181854A (zh) | 一种生成流程自动化脚本的方法、装置、设备及存储介质 | |
CN113448985A (zh) | 一种api接口生成方法、调用方法、装置及电子设备 | |
CN112395182A (zh) | 自动化测试方法、装置、设备及计算机可读存储介质 | |
CN110555185A (zh) | 基于pc客户端的页面定制方法及系统 | |
CN107193736B (zh) | 测试方法、装置、电子设备以及存储介质 | |
CN109446077A (zh) | 一种数据库测试方法及装置 | |
CN109086198A (zh) | 数据库的测试方法、装置及存储介质 | |
CN113254328B (zh) | 白盒测试方法、系统、移动终端及存储介质 | |
CN114356454B (zh) | 对账数据处理方法、设备、存储介质及程序产品 | |
CN116737535A (zh) | 接口测试方法、装置、计算机设备和存储介质 | |
CN115757174A (zh) | 一种数据库的差异检测方法及装置 | |
CN113641628B (zh) | 数据质量检测方法、装置、设备及存储介质 | |
CN114706586A (zh) | 代码编译、代码运行方法、装置、计算机设备及存储介质 | |
CN113220586A (zh) | 一种自动化的接口压力测试执行方法、装置和系统 | |
CN113806231A (zh) | 一种代码覆盖率分析方法、装置、设备和介质 | |
CN113238940A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |