CN112559316A - 软件测试方法和设备、计算机存储介质以及服务器 - Google Patents
软件测试方法和设备、计算机存储介质以及服务器 Download PDFInfo
- Publication number
- CN112559316A CN112559316A CN202010918828.0A CN202010918828A CN112559316A CN 112559316 A CN112559316 A CN 112559316A CN 202010918828 A CN202010918828 A CN 202010918828A CN 112559316 A CN112559316 A CN 112559316A
- Authority
- CN
- China
- Prior art keywords
- test
- data
- data set
- message information
- response
- 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
- 238000000034 method Methods 0.000 title claims abstract description 52
- 238000013522 software testing Methods 0.000 title claims abstract description 46
- 238000003860 storage Methods 0.000 title claims abstract description 6
- 238000012360 testing method Methods 0.000 claims abstract description 226
- 238000004519 manufacturing process Methods 0.000 claims abstract description 71
- 238000000605 extraction Methods 0.000 claims abstract description 13
- 230000004044 response Effects 0.000 claims description 39
- 230000007547 defect Effects 0.000 claims description 11
- 230000008859 change Effects 0.000 claims description 10
- 238000010586 diagram Methods 0.000 description 14
- 238000012545 processing Methods 0.000 description 14
- 230000009977 dual effect Effects 0.000 description 12
- 230000008901 benefit Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 239000000284 extract Substances 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 230000002159 abnormal effect Effects 0.000 description 4
- 238000007621 cluster analysis Methods 0.000 description 4
- 230000006835 compression Effects 0.000 description 4
- 238000007906 compression Methods 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 230000001419 dependent effect Effects 0.000 description 3
- 238000003064 k means clustering Methods 0.000 description 3
- 238000012805 post-processing Methods 0.000 description 3
- 238000007781 pre-processing Methods 0.000 description 3
- 230000005856 abnormality Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000007405 data analysis Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 238000011990 functional testing Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000002156 mixing Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000010998 test method Methods 0.000 description 2
- 101100135641 Caenorhabditis elegans par-3 gene Proteins 0.000 description 1
- 101100406879 Neurospora crassa (strain ATCC 24698 / 74-OR23-1A / CBS 708.71 / DSM 1257 / FGSC 987) par-2 gene Proteins 0.000 description 1
- 101100361282 Schizosaccharomyces pombe (strain 972 / ATCC 24843) rpm1 gene Proteins 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
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
技术领域
本发明涉及软件测试领域,更具体地,涉及一种软件测试方法和设备、计算机存储介质以及服务器。
背景技术
大型联机交易系统的交易量和复杂度日益攀升,提高代码质量以保证交易成功率是至关重要的手段。软件测试是保证代码质量的有效手段,是对系统质量的持续评估。现存的软件测试主要包括单元测试、功能测试、集成测试、回归测试等。
目前的系统测试方法较多依赖于单元测试、功能测试。常见的单元测试框架有Junit。借助Junit,可以通过人为构造单次测试数据,对系统进行单次调试。功能测试依赖于测试人员的经验,通过构造正常数据,边界数据,异常数据等,对系统进行传统的黑盒测试,并只关注系统输入输出结果。测试人员需要以逆向思维的方式思考开发人员的误区,例如系统边界、异常输入输出、系统弱点和漏洞测试等,因此现有的测试数据往往依赖于测试人员的经验并且由测试人员手工生成。
因此,期望一种改进的软件测试方案。
发明内容
根据本发明的一方面,提供了一种软件测试方法,所述方法包括:获取包含报文信息的生产日志;对所述生产日志中的所述报文信息进行特征提取,以便获得第一数据;以及至少基于所述第一数据来生成测试数据集。
作为上述方案的替换或补充,上述方法还可包括:基于所述测试数据集构造测试请求报文;以及将所述测试请求报文持续发送给测试环境。
作为上述方案的替换或补充,上述方法中还可包括:从所述测试环境接收测试应答;以及基于所述测试应答与期望应答的比较,定位错误原因。
作为上述方案的替换或补充,在上述方法中,对所述生产日志中的所述报文信息进行特征提取包括:将所述报文信息转换成json对象,所述对象包括一个或多个特征以及分别与所述一个或多个特征对应的值。
作为上述方案的替换或补充,在上述方法中,至少基于所述第一数据来生成测试数据集包括:基于均值漂移聚类算法对所述第一数据进行数据分类,从而获得所述第一数据的各个特征的取值域;以及在给定各个特征的取值域后,基于全对偶算法来自动生成测试数据。
作为上述方案的替换或补充,在上述方法中,至少基于所述第一数据来生成测试数据集还包括:将所生成的测试数据与真实生产数据混合,以便构造混合测试数据集。
作为上述方案的替换或补充,上述方法还可包括:确定软件系统改动点所涉及的数据类型;以及从所述混合测试数据集中抽取与所述数据类型相应的测试集。
作为上述方案的替换或补充,在上述方法中,基于所述测试应答与期望应答的比较,定位错误原因包括:判断所述测试应答与期望应答是否一致;判断数据库记录中的字段是否一致;以及统计不一致的请求数,从而定位缺陷。
根据本发明的另一个方面,提供了一种软件测试设备,所述设备包括:第一获取装置,用于获取包含报文信息的生产日志;第二获取装置,用于对所述生产日志中的所述报文信息进行特征提取,以便获得第一数据;以及生成装置,用于至少基于所述第一数据来生成测试数据集。
作为上述方案的替换或补充,上述设备还可包括:构造装置,用于基于所述测试数据集构造测试请求报文;以及发送装置,用于将所述测试请求报文持续发送给测试环境。
作为上述方案的替换或补充,上述设备还可包括:接收装置,用于从所述测试环境接收测试应答;以及定位装置,用于基于所述测试应答与期望应答的比较,定位错误原因。
作为上述方案的替换或补充,在上述设备中,所述第二获取装置配置成将所述报文信息转换成json对象,所述对象包括一个或多个特征以及分别与所述一个或多个特征对应的值。
作为上述方案的替换或补充,在上述设备中,所述生成装置配置成:基于均值漂移聚类算法对所述第一数据进行数据分类,从而获得所述第一数据的各个特征的取值域;以及在给定各个特征的取值域后,基于全对偶算法来自动生成测试数据。
作为上述方案的替换或补充,在上述设备中,所述生成装置还配置成:将所生成的测试数据与真实生产数据混合,以便构造混合测试数据集。
作为上述方案的替换或补充,上述设备还可包括:确定装置,用于确定软件系统改动点所涉及的数据类型;以及抽取装置,用于从所述混合测试数据集中抽取与所述数据类型相应的测试集。
作为上述方案的替换或补充,在上述设备中,所述定位装置配置成:判断所述测试应答与期望应答是否一致;判断数据库记录中的字段是否一致;以及统计不一致的请求数,从而定位缺陷。
根据本发明的又一个方面,提供了一种计算机存储介质,所述介质包括指令,所述指令在运行时执行如前所述的软件测试方法。
根据本发明的又一个方面,提供了一种服务器,其包括如前所述的软件测试设备。
综上,本发明的一个实施例的软件测试方案依据实际生产数据特征来生成测试数据集,该测试数据集能最大程度符合原始数据特征,提高测试可靠性。
附图说明
从结合附图的以下详细说明中,将会使本发明的上述和其他目的及优点更加完整清楚,其中,相同或相似的要素采用相同的标号表示。
图1示出了根据本发明的一个实施例的软件测试方法的流程示意图;
图2示出了根据本发明的另一个实施例的软件测试方法的流程示意图;
图3示出了根据本发明的一个实施例的软件测试设备的结构示意图;以及
图4示出了根据本发明的一个实施例的软件测试设备与并行测试环境的交互。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明具体实施例作进一步的详细描述。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。
另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明实施例的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
在下文中,将参考附图详细地描述根据本发明的各示例性实施例的软件测试方案。
图1示出了根据本发明的一个实施例的软件测试方法1000的流程示意图。如图1所示,方法1000包括如下步骤:
在步骤S110中,获取包含报文信息的生产日志;
在步骤S120中,对所述生产日志中的所述报文信息进行特征提取,以便获得第一数据;以及
在步骤S130中,至少基于所述第一数据来生成测试数据集。
在本发明的上下文中,术语“生产数据”是指实际应用场景下所产生的数据。例如,在联机交易场景下,“生产数据”即指“实际交易数据”。类似地,术语“生产日志”是指实际应用场景下记录生产数据的日志文件,该日志文件包含报文信息(message)。
术语“特征提取”在本实施例中是指在对生产数据进行进一步处理(例如聚类处理等)之前所进行的“预处理操作”,该“预处理操作”对生产数据(即生产日志中的报文信息)进行解析并从其中提取出特征。
在一个实施例中,步骤S120包括:将所述报文信息转换成json对象,所述对象包括一个或多个特征以及分别与所述一个或多个特征对应的值。通过将报文信息转换成json对象,可便于后续聚类算法处理。需要说明的是,json(即JavaScript Object Notation,JS对象简谱)是一种轻量级的数据交换格式。它基于ECMAScript(欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得json成为理想的数据交换语言,其易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
在本发明的上下文中,术语“测试数据集”是指用于进行软件测试的测试数据集合,该集合中的测试用例是基于生产日志中的报文信息而生成的。
现有的测试手段未涉及生产数据的加入且测试用例较少,过于依赖经验,同时难以实现自动化,可能导致无法发现隐藏的系统缺陷。形成对比的是,在本发明的一个实施例中,测试数据集基于实际生产数据特征而生成,因此能最大程度符合原始数据特征,提高测试可靠性。
在一个实施例中,步骤S130包括:基于均值漂移聚类算法对所述第一数据进行数据分类,从而获得所述第一数据的各个特征的取值域;以及在给定各个特征的取值域后,基于全对偶算法来自动生成测试数据。
聚类是一种涉及数据点分组的机器学习技术。给定一组数据点,我们就可以使用聚类算法将每个数据点分类到特定的组中。理论上,同一组中的数据点应具有相似的属性或特征,而不同组中的数据点应具有较大差异的属性或特征。聚类是无监督学习的一种方法,也是用于许多领域中统计数据分析的常用技术。在数据科学中,通过使用聚类分析,查看数据点在应用聚类分析算法时所对应的分类,从而挖掘出数据隐藏的信息。
均值漂移聚类(也称为Mean-Shift聚类)是基于滑动窗口的算法,试图找到数据点的密集区域。这是一种基于质心的算法,意味着其目标是定位每个簇的中心点,通过将滑动窗口的均值点作为候选点来迭代更新中心点。在后处理阶段将消除近似重复的窗口,最终形成一组中心点及其相应的簇。
与K-means聚类相比,均值漂移聚类的最大优势就是可以自动发现簇的数量而不需要人工选择。簇的中心向最大密度点聚合的事实也是非常令人满意的,因为它可被非常直观地理解并很自然地契合数据驱动。
假设一个待测函数有n个参数,每个参数都有其取值范围.根据测试经验,可以采用等价类划分、边界值等方法,为每一个参数取几个典型值作为其测试值,则测试用例的生成与选择问题就可归结为这些参数取值的组合问题。可以采用排列组合原理对所有参数的取值进行全组合,该方法涵盖了所有取值的所有可能组合结果。但在实际测试中这种采用排列组合对所有参数的取值进行全组合的方法是不可行的,因为它产生的用例数量太大,且无效用例较多,直接带来测试成本的大幅提高。
因此,在本发明的一个实施例中,使用全对偶算法来自动生成测试数据,从而解决该优化问题。具体来说,在全组合结果基础上进行优化,把其中有效的用例筛选出来,以达到采用最小的测试用例集,覆盖最大的测试域的效果。
全对偶算法的核心思想就是测试用例的任意两个变量至少在测试结果里面出现一次。举例来说,假设有3个参数:V1、V2、V3,压缩后它们的可能取值个数分别为3,2,2,其中V1取:A、B、C;V2取:X、Y;V3取:0,1。如果V1、V2、V3是相互独立的,则可能的组合是3*2*2=12个。采用全对偶算法,可按照如下列表方式进行组合:
变量1 | 变量2 | 变量3 |
A | X | 0 |
A | Y | 1 |
B | X | 1 |
B | Y | 0 |
C | X | 0 |
C | Y | 1 |
从上述列表可看出,采用全对偶算法仅需6个测试用例即可,达到了压缩测试集的目的。而且,全对偶算法的压缩比例随着测试参数的急剧增加而显著提升,当测试参数在6个以上的时候,压缩比例已经接近100%,效果相当明显,可以极大地减轻了测试工作量。因此,全对偶算法是一种从所有测试用例中选出最少的典型测试用例以达到对测试域的最大覆盖的测试用例组合的算法。
在一个实施例中,步骤S130还可包括将所生成的测试数据与真实生产数据混合,以便构造混合测试数据集。例如,在每次进行测试时,确定软件系统改动点所涉及的数据类型(例如交易类型),接着基于该类型从所述混合测试数据集中抽取相应的测试集。
本发明的该实施例可实现测试流程的自动化,且依据少量生产数据即可自动化生成大量测试数据集,提高测试集覆盖面。另外,基于实际生产数据特征生成的测试数据能最大程序符合原始数据特征,提高测试可靠性。
图2示出了根据本发明的一个实施例的软件测试方法2000的流程示意图。如图2所示,方法2000包括如下步骤:
在步骤S210中,获取包含报文信息的生产日志;
在步骤S220中,对所述生产日志中的所述报文信息进行特征提取,以便获得第一数据;
在步骤S230中,至少基于所述第一数据来生成测试数据集;
在步骤S240中,基于所述测试数据集构造测试请求报文;
在步骤S250中,将所述测试请求报文持续发送给测试环境;
在步骤S260中,从所述测试环境接收测试应答;以及
在步骤S270中,基于所述测试应答与期望应答的比较,定位错误原因。
在本发明的上下文中,术语“生产数据”是指实际应用场景下所产生的数据。例如,在联机交易场景下,“生产数据”即指“实际交易数据”。类似地,术语“生产日志”是指实际应用场景下记录生产数据的日志文件,该日志文件包含报文信息(message)。
术语“特征提取”在本实施例中是指在对生产数据进行进一步处理(例如聚类处理等)之前所进行的“预处理操作”,该“预处理操作”对生产数据(即生产日志中的报文信息)进行解析并从其中提取出特征。在一个实施例中,步骤S220包括:将所述报文信息转换成json对象,所述对象包括一个或多个特征以及分别与所述一个或多个特征对应的值。通过将报文信息转换成json对象,可便于后续聚类算法处理。
在本发明的上下文中,术语“测试数据集”是指用于进行软件测试的测试数据集合,该集合中的测试用例是基于生产日志中的报文信息而生成的。
术语“测试请求报文”在本实施例中是指发送给测试环境的报文,该报文用于请求测试。该测试请求报文基于步骤S230中生成的测试数据集来构建。
术语“测试应答”是指从测试环境所返回的针对测试请求的应答。通过将测试应答与期望应答进行比较,可定位出错误原因。这里,“期望应答”可根据生产日志中的报文信息来进行确定,例如报文信息中的原始配对的请求和应答集合中的应答可作为“期望应答”来用于后期的结果比较。
“错误原因”在本发明的上下文中是指代码出错或存在缺陷的原因。例如,在大型联机交易系统场景下,提高代码质量是保证交易成功率至关重要的手段。通过合适的软件测试方案,可有利于发现隐藏的系统缺陷,从而提高系统的可靠性。
在本实施例中,由于测试数据集基于实际生产数据特征而生成,因此能最大程度符合原始数据特征,提高测试可靠性。
在一个实施例中,步骤S230包括:基于均值漂移聚类算法对所述第一数据进行数据分类,从而获得所述第一数据的各个特征的取值域;以及在给定各个特征的取值域后,基于全对偶算法来自动生成测试数据。
具体来说,聚类是一种涉及数据点分组的机器学习技术。给定一组数据点,我们就可以使用聚类算法将每个数据点分类到特定的组中。理论上,同一组中的数据点应具有相似的属性或特征,而不同组中的数据点应具有较大差异的属性或特征。聚类是无监督学习的一种方法,也是用于许多领域中统计数据分析的常用技术。在数据科学中,通过使用聚类分析,查看数据点在应用聚类分析算法时所对应的分类,从而挖掘出数据隐藏的信息。
均值漂移聚类(也称为Mean-Shift聚类)是基于滑动窗口的算法,试图找到数据点的密集区域。这是一种基于质心的算法,意味着其目标是定位每个簇的中心点,通过将滑动窗口的均值点作为候选点来迭代更新中心点。在后处理阶段将消除近似重复的窗口,最终形成一组中心点及其相应的簇。
与K-means聚类相比,均值漂移聚类的最大优势就是可以自动发现簇的数量而不需要人工选择。簇的中心向最大密度点聚合的事实也是非常令人满意的,因为它可被非常直观地理解并很自然地契合数据驱动。
在本发明的一个实施例中,使用全对偶算法来自动生成测试数据,从而可实现测试流程自动化。具体来说,该全对偶算法或策略是在全组合结果基础上进行优化,把其中有效的用例筛选出来,以达到采用最小的测试用例集,覆盖最大的测试域的效果。
在一个实施例中,步骤S230还可包括将所生成的测试数据与真实生产数据混合,以便构造混合测试数据集。例如,在每次进行测试时,确定软件系统改动点所涉及的数据类型(例如交易类型),接着基于该类型从所述混合测试数据集中抽取相应的测试集。
在一个实施例中,步骤S250包括:采用多线程来发送测试请求报文。该方法可进一步提高测试效率。
此外,在一个实施例中,图2所示的软件测试方法2000可生成对比结果文件进行展示,以便直接定位异常原因。
参考图3,它示出了根据本发明的一个实施例的软件测试设备3000的结构示意图。如图3所示,软件测试设备3000包括第一获取装置310、第二获取装置320以及生成装置330。其中,第一获取装置310用于获取包含报文信息的生产日志。第二获取装置320用于对所述生产日志中的所述报文信息进行特征提取,以便获得第一数据。生成装置330用于基于所述第一数据来生成测试数据集。
在本发明的上下文中,术语“生产数据”是指实际应用场景下所产生的数据。例如,在联机交易场景下,“生产数据”即指“实际交易数据”。类似地,术语“生产日志”是指实际应用场景下记录生产数据的日志文件,该日志文件包含报文信息(message)。
术语“特征提取”在本实施例中是指在对生产数据进行进一步处理(例如聚类处理等)之前所进行的“预处理操作”,该“预处理操作”对生产数据(即生产日志中的报文信息)进行解析并从其中提取出特征。
在一个实施例中,第二获取装置320配置成将所述报文信息转换成json对象,所述对象包括一个或多个特征以及分别与所述一个或多个特征对应的值。通过将报文信息转换成json对象,可便于后续聚类算法处理。需要说明的是,json(即JavaScript ObjectNotation,JS对象简谱)是一种轻量级的数据交换格式。它基于ECMAScript(欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得json成为理想的数据交换语言,其易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
在本发明的上下文中,术语“测试数据集”是指用于进行软件测试的测试数据集合,该集合中的测试用例是基于生产日志中的报文信息而生成的。
现有的测试手段未涉及生产数据的加入且测试用例较少,过于依赖经验,同时难以实现自动化,可能导致无法发现隐藏的系统缺陷。形成对比的是,在本发明的一个实施例的软件测试设备3000中,测试数据集基于实际生产数据特征而生成,因此能最大程度符合原始数据特征,提高测试可靠性。
在一个实施例中,尽管图3中未示出,软件测试设备3000还可包括:构造装置,用于基于所述测试数据集构造测试请求报文;以及发送装置,用于将所述测试请求报文持续发送给测试环境。在一个实施例中,发送装置可采用多线程发送请求报文,从而提高测试效率。
在一个实施例中,软件测试设备3000还可包括:接收装置,用于从所述测试环境接收测试应答;以及定位装置,用于基于所述测试应答与期望应答的比较,定位错误原因。此外,软件测试设备3000还可生成对比结果文件进行展示,从而便于直接定位异常原因。在一个实施例中,所述定位装置配置成:判断所述测试应答与期望应答是否一致;判断数据库记录中的字段是否一致;以及统计不一致的请求数,从而定位缺陷。
在软件测试设备3000中,生成装置330可配置成:基于均值漂移聚类算法对所述第一数据进行数据分类,从而获得所述第一数据的各个特征的取值域;以及在给定各个特征的取值域后,基于全对偶算法来自动生成测试数据。
具体来说,生成装置330可利用均值漂移聚类算法来进行测试数据的分类。例如,抽取现有生产数据中的某些关键维度特征,通过均值漂移聚类算法,对生产数据进行特征提取及分类,以获得各维度特征的取值域分布。
生产装置330还利用全对偶策略来进行自动化测试数据生成。在一个实施例中,生产装置330根据各特征的取值域分布,采用全对偶策略自动化生成测试数据集,该测试数据符合现有生产数据特征,尤其对于覆盖较少的交易类型,能够增大其测试覆盖率。
在一个实施例中,生成装置330还配置成:将所生成的测试数据与真实生产数据混合,以便构造混合测试数据集。在该实施例中,软件测试设备3000还可包括:确定装置,用于确定软件系统改动点所涉及的数据类型;以及抽取装置,用于从所述混合测试数据集中抽取与所述数据类型相应的测试集。也就是说,软件测试设备3000使用生产真实数据配合模拟测试数据的混合测试数据集,每次进行测试时候根据系统改动点涉及的数据类型(例如交易类型),从混合测试数据集中抽取相应实际测试集。
通过采用图3的软件测试设备3000,可实现测试流程自动化。在一个实施例中,软件测试设备3000采用多线程发送请求报文,提高测试效率。除此以外,软件测试设备3000至少还具有如下优点:(1)依据少量生产数据自动化生成大量测试数据集,提高测试集覆盖面;(2)基于实际生产数据特征生成的测试数据能最大程度符合原始数据特征,提高测试可靠性以及(3)可生成对比结果文件进行展示,异常原因直接定位。
转到图4,图4示出了根据本发明的一个实施例的软件测试设备3000与测试环境410的交互。如图4所示,软件测试设备3000基于外部输入的生产日志自动生成测试数据集,并基于该测试数据集来构建测试请求报文,以便发送给测试环境410。测试环境410基于所接收的测试请求报文向软件测试设备3000返回应答。测试环境410还可与数据库420进行交互,以便判断数据库记录中的字段是否一致,从而有利于统计不一致的请求数,进而定位缺陷。
以上内容是参照根据本申请实施例的方法和装置(设备)的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
例如,软件测试设备3000可以是一种通用计算机或专用计算器,其在运行相应的计算机指令时可执行日志解析、关键特征提取、均值漂移聚类算法的数据集分类以及取值域划分等操作。
在一个实施例中,软件测试设备3000将包含报文信息的生产日志进行解析,用LogMessage类来描述其包含的内容,包括logId,time,message和type。其示例如下:
同时软件测试设备3000还用PairLogMessage类来保存原始配对的请求和应答,用于后期的结果比较。
在一个实施例中,在数据关键特征提取操作中,软件测试设备3000将LogMessage类中的message转换成相应的json对象,该对象对应一个请求,其中par为特征,val为对应值,以便于后续聚类算法处理。
然后,软件测试设备3000基于均值漂移算法(Mean Shift)进行数据分类及取值域划分。均值漂移算法算法能够无监督地学习数据特征进而将数据分类,具体来说,对于数据集中的每个数据,首先计算以其为中心值的均值漂移量ms,然后将该中心沿着偏移方向移动,重复以上步骤直到所有数据被归类。
通过该算法可实现message数据的分类,此分类是数据的各特征的取值域,例如特征par1的取值域为:{X1,X2,X3,X4,X5},特征par2的取值域为:{Y1,Y2,Y3},特征par3的取值域为:{0,1}等。
均值漂移聚类是基于滑动窗口的算法,试图找到数据点的密集区域。这是一种基于质心的算法,意味着其目标是定位每个簇的中心点,通过将滑动窗口的均值点作为候选点来迭代更新中心点。在后处理阶段将消除近似重复的窗口,最终形成一组中心点及其相应的簇。
与K-means聚类相比,均值漂移聚类的最大优势就是可以自动发现簇的数量而不需要人工选择。簇的中心向最大密度点聚合的事实也是非常令人满意的,因为它可被非常直观地理解并很自然地契合数据驱动。
在一个实施例中,软件测试设备3000基于全对偶算法自动生成测试数据。具体来说,在给定了待测特征par的取值域后,满足全对偶算法需要考虑所有不同特征取值域两两组合的情况下,每个待测特征的所有取值和其他待测特征所有取值组成的对偶值,即要以尽量少的测试用例来覆盖所有的对偶情况。生成的测试用例能最大限度保证符合生产数据特征。
全对偶算法的核心思想就是测试用例的任意两个变量至少在测试结果里面出现一次。举例来说,假设有3个参数:V1、V2、V3,压缩后它们的可能取值个数分别为3,2,2,其中V1取:A、B、C;V2取:X、Y;V3取:0,1。如果V1、V2、V3是相互独立的,则可能的组合是3*2*2=12个。但是在采用全对偶算法之后,仅需6个测试用例即可,达到了压缩测试集的目的。而且,全对偶算法的压缩比例随着测试参数的急剧增加而显著提升,当测试参数在6个以上的时候,压缩比例已经接近100%,效果相当明显,可以极大地减轻了测试工作量。因此,全对偶算法是一种从所有测试用例中选出最少的典型测试用例以达到对测试域的最大覆盖的测试用例组合的算法。
在一个实施例中,软件测试设备3000将生成的测试数据与原有数据构成混合测试集,根据系统单次改动点对数据集进行相应选择和抽取,用于并行测试。这样,所构造的测试数据集能够覆盖系统改动点。
在系统部署到测试机器后,可将优化后的测试集通过软件测试设备3000向并行测试环境410发送,以获取期望系统输出。例如,可使用ResultLogMessage类来保存返回的应答,如下所示:
接着,软件测试设备3000可比对、判断系统返回应答与期望的是否一致,以及数据库记录中的字段是否一致,并统计不一致的请求数,从而定位缺陷。
需要说明的是,尽管在上述实施例中,测试环境410被示出为并行测试环境,但测试环境的类型可根据实际需要而进行改变,并不限于此。而且,在图4中,并行测试环境410、数据库420以及软件测试设备3000被示出为不同的模块或装置,但本领域技术人员容易理解,在一个实施例中,并行测试环境410、数据库420以及软件测试设备3000中的一个或多个可集成在一个设备或系统中。
在一个实施例中,计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
综上,与现有技术方案相比,本发明的各个实施例的软件测试方案可取得如下技术优势:
(1)可实现测试流程自动化;
(2)采用多线程发送请求报文,提高测试效率;
(3)依据少量生产数据自动化生成大量测试数据集,提高测试集覆盖面;
(4)基于实际生产数据特征生成的测试数据能最大程度符合原始数据特征,提高测试可靠性;以及
(5)可生成对比结果文件进行展示,异常原因直接定位。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (18)
1.一种软件测试方法,其特征在于,所述方法包括:
获取包含报文信息的生产日志;
对所述生产日志中的所述报文信息进行特征提取,以便获得第一数据;以及
至少基于所述第一数据来生成测试数据集。
2.如权利要求1所述的方法,还包括:
基于所述测试数据集构造测试请求报文;以及
将所述测试请求报文持续发送给测试环境。
3.如权利要求2所述的方法,还包括:
从所述测试环境接收测试应答;以及
基于所述测试应答与期望应答的比较,定位错误原因。
4.如权利要求1所述的方法,其中,对所述生产日志中的所述报文信息进行特征提取包括:
将所述报文信息转换成json对象,所述对象包括一个或多个特征以及分别与所述一个或多个特征对应的值。
5.如权利要求1所述的方法,其中,至少基于所述第一数据来生成测试数据集包括:
基于均值漂移聚类算法对所述第一数据进行数据分类,从而获得所述第一数据的各个特征的取值域;以及
在给定各个特征的取值域后,基于全对偶算法来自动生成测试数据。
6.如权利要求5所述的方法,其中,至少基于所述第一数据来生成测试数据集还包括:
将所生成的测试数据与真实生产数据混合,以便构造混合测试数据集。
7.如权利要求6所述的方法,还包括:
确定软件系统改动点所涉及的数据类型;以及
从所述混合测试数据集中抽取与所述数据类型相应的测试集。
8.如权利要求3所述的方法,其中,基于所述测试应答与期望应答的比较,定位错误原因包括:
判断所述测试应答与期望应答是否一致;
判断数据库记录中的字段是否一致;以及
统计不一致的请求数,从而定位缺陷。
9.一种软件测试设备,其特征在于,所述设备包括:
第一获取装置,用于获取包含报文信息的生产日志;
第二获取装置,用于对所述生产日志中的所述报文信息进行特征提取,以便获得第一数据;以及
生成装置,用于至少基于所述第一数据来生成测试数据集。
10.如权利要求9所述的设备,还包括:
构造装置,用于基于所述测试数据集构造测试请求报文;以及
发送装置,用于将所述测试请求报文持续发送给测试环境。
11.如权利要求10所述的设备,还包括:
接收装置,用于从所述测试环境接收测试应答;以及
定位装置,用于基于所述测试应答与期望应答的比较,定位错误原因。
12.如权利要求9所述的设备,其中,所述第二获取装置配置成将所述报文信息转换成json对象,所述对象包括一个或多个特征以及分别与所述一个或多个特征对应的值。
13.如权利要求9所述的设备,其中,所述生成装置配置成:
基于均值漂移聚类算法对所述第一数据进行数据分类,从而获得所述第一数据的各个特征的取值域;以及
在给定各个特征的取值域后,基于全对偶算法来自动生成测试数据。
14.如权利要求13所述的设备,其中,所述生成装置还配置成:将所生成的测试数据与真实生产数据混合,以便构造混合测试数据集。
15.如权利要求14所述的设备,还包括:
确定装置,用于确定软件系统改动点所涉及的数据类型;以及
抽取装置,用于从所述混合测试数据集中抽取与所述数据类型相应的测试集。
16.如权利要求11所述的设备,其中,所述定位装置配置成:
判断所述测试应答与期望应答是否一致;
判断数据库记录中的字段是否一致;以及
统计不一致的请求数,从而定位缺陷。
17.一种计算机存储介质,其特征在于,所述介质包括指令,所述指令在运行时执行如权利要求1至8中任一项所述的软件测试方法。
18.一种服务器,其包括如权利要求9至16中任一项所述的软件测试设备。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010918828.0A CN112559316A (zh) | 2020-09-03 | 2020-09-03 | 软件测试方法和设备、计算机存储介质以及服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010918828.0A CN112559316A (zh) | 2020-09-03 | 2020-09-03 | 软件测试方法和设备、计算机存储介质以及服务器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112559316A true CN112559316A (zh) | 2021-03-26 |
Family
ID=75041013
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010918828.0A Pending CN112559316A (zh) | 2020-09-03 | 2020-09-03 | 软件测试方法和设备、计算机存储介质以及服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112559316A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113596871A (zh) * | 2021-07-05 | 2021-11-02 | 哲库科技(上海)有限公司 | 一种测试方法、服务器及计算机存储介质 |
CN113778835A (zh) * | 2021-11-11 | 2021-12-10 | 广州粤芯半导体技术有限公司 | 压力测试方法 |
CN116541854A (zh) * | 2023-07-06 | 2023-08-04 | 北京华云安信息技术有限公司 | 漏洞测试方法、装置、电子设备和存储介质 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101394646A (zh) * | 2008-11-06 | 2009-03-25 | 北京天碁科技有限公司 | 一种软件测试方法和系统 |
CN102184135A (zh) * | 2011-04-19 | 2011-09-14 | 中国工商银行股份有限公司 | 在银行系统中基于指令脚本的测试方法及系统 |
JP2013105358A (ja) * | 2011-11-15 | 2013-05-30 | Japan Research Institute Ltd | プログラムの新旧バージョンに対する差分比較テストシステム及びテスト方法 |
CN104951399A (zh) * | 2015-06-19 | 2015-09-30 | 北京齐尔布莱特科技有限公司 | 一种软件测试系统和方法 |
CN107908549A (zh) * | 2017-10-24 | 2018-04-13 | 北京小米移动软件有限公司 | 测试用例生成方法、装置及计算机可读存储介质 |
CN109344055A (zh) * | 2018-09-07 | 2019-02-15 | 武汉达梦数据库有限公司 | 一种测试方法以及测试装置 |
CN109410982A (zh) * | 2018-12-20 | 2019-03-01 | 斑马网络技术有限公司 | 语音测试方法、装置、设备以及存储介质 |
CN109460349A (zh) * | 2018-09-19 | 2019-03-12 | 武汉达梦数据库有限公司 | 一种基于日志的测试用例生成方法和装置 |
CN109726128A (zh) * | 2018-12-29 | 2019-05-07 | 亚信科技(中国)有限公司 | 一种测试用例生成方法、装置及服务器 |
CN111177005A (zh) * | 2019-12-31 | 2020-05-19 | 中国银行股份有限公司 | 业务应用的测试方法、装置、服务器和存储介质 |
CN111190808A (zh) * | 2018-11-14 | 2020-05-22 | 北京京东尚科信息技术有限公司 | 自动化测试方法、系统、装置和计算机可读存储介质 |
-
2020
- 2020-09-03 CN CN202010918828.0A patent/CN112559316A/zh active Pending
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101394646A (zh) * | 2008-11-06 | 2009-03-25 | 北京天碁科技有限公司 | 一种软件测试方法和系统 |
CN102184135A (zh) * | 2011-04-19 | 2011-09-14 | 中国工商银行股份有限公司 | 在银行系统中基于指令脚本的测试方法及系统 |
JP2013105358A (ja) * | 2011-11-15 | 2013-05-30 | Japan Research Institute Ltd | プログラムの新旧バージョンに対する差分比較テストシステム及びテスト方法 |
CN104951399A (zh) * | 2015-06-19 | 2015-09-30 | 北京齐尔布莱特科技有限公司 | 一种软件测试系统和方法 |
CN107908549A (zh) * | 2017-10-24 | 2018-04-13 | 北京小米移动软件有限公司 | 测试用例生成方法、装置及计算机可读存储介质 |
CN109344055A (zh) * | 2018-09-07 | 2019-02-15 | 武汉达梦数据库有限公司 | 一种测试方法以及测试装置 |
CN109460349A (zh) * | 2018-09-19 | 2019-03-12 | 武汉达梦数据库有限公司 | 一种基于日志的测试用例生成方法和装置 |
CN111190808A (zh) * | 2018-11-14 | 2020-05-22 | 北京京东尚科信息技术有限公司 | 自动化测试方法、系统、装置和计算机可读存储介质 |
CN109410982A (zh) * | 2018-12-20 | 2019-03-01 | 斑马网络技术有限公司 | 语音测试方法、装置、设备以及存储介质 |
CN109726128A (zh) * | 2018-12-29 | 2019-05-07 | 亚信科技(中国)有限公司 | 一种测试用例生成方法、装置及服务器 |
CN111177005A (zh) * | 2019-12-31 | 2020-05-19 | 中国银行股份有限公司 | 业务应用的测试方法、装置、服务器和存储介质 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113596871A (zh) * | 2021-07-05 | 2021-11-02 | 哲库科技(上海)有限公司 | 一种测试方法、服务器及计算机存储介质 |
CN113778835A (zh) * | 2021-11-11 | 2021-12-10 | 广州粤芯半导体技术有限公司 | 压力测试方法 |
CN116541854A (zh) * | 2023-07-06 | 2023-08-04 | 北京华云安信息技术有限公司 | 漏洞测试方法、装置、电子设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112559316A (zh) | 软件测试方法和设备、计算机存储介质以及服务器 | |
US20210365342A1 (en) | Method and system for power equipment diagnosis based on windowed feature and hilbert visualization | |
CN111368089A (zh) | 一种基于知识图谱的业务处理方法及装置 | |
CN112052172B (zh) | 第三方通道的快速测试方法、装置和电子设备 | |
Gao et al. | What is AI software testing? and why | |
CN111401722B (zh) | 智能决策方法和智能决策系统 | |
EP4120653A1 (en) | Communication network performance and fault analysis using learning models with model interpretation | |
CN110188834A (zh) | 一种电力通信网的故障诊断方法、装置及设备 | |
CN111174370A (zh) | 故障检测方法及装置、存储介质、电子装置 | |
CN112817563B (zh) | 目标属性配置信息确定方法、计算机设备和存储介质 | |
CN110061789A (zh) | 灰色关联分析与改进ds推理的电子设备故障诊断方法 | |
CN112860676A (zh) | 应用于大数据挖掘和业务分析的数据清洗方法及云服务器 | |
Gezici et al. | Explainable AI for software defect prediction with gradient boosting classifier | |
Bodhe et al. | Diagnostic Fail Data Minimization Using an $ N $-Cover Algorithm | |
CN114185807A (zh) | 测试数据管理方法、装置、计算机设备及存储介质 | |
CN115996169A (zh) | 一种网络故障分析方法、装置、电子设备及存储介质 | |
CN116089277A (zh) | 神经网络算子测试、直播应用方法及其装置、设备、介质 | |
CN115166414A (zh) | 一种电网故障监测方法及系统 | |
CN114972273A (zh) | 流水化产品数据集增强方法、系统、设备及存储介质 | |
Amati et al. | An incremental approach to functional diagnosis | |
CN114638185A (zh) | 一种芯片验证方法、装置及存储介质 | |
CN111240881A (zh) | 基于贝叶斯网络的Web服务组合异常诊断方法 | |
CN111965995A (zh) | 一种三库合一飞机航电系统健康评估与预测系统及其方法 | |
CN115080445B (zh) | 一种游戏测试管理方法及其系统 | |
CN113011484B (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 |