CN110688295A - 数据测试方法和装置 - Google Patents

数据测试方法和装置 Download PDF

Info

Publication number
CN110688295A
CN110688295A CN201810737080.7A CN201810737080A CN110688295A CN 110688295 A CN110688295 A CN 110688295A CN 201810737080 A CN201810737080 A CN 201810737080A CN 110688295 A CN110688295 A CN 110688295A
Authority
CN
China
Prior art keywords
field
data
test
tested
sets
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
Application number
CN201810737080.7A
Other languages
English (en)
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.)
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology 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 Beijing Jingdong Century Trading Co Ltd, Beijing Jingdong Shangke Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN201810737080.7A priority Critical patent/CN110688295A/zh
Publication of CN110688295A publication Critical patent/CN110688295A/zh
Pending legal-status Critical Current

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/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/3688Test 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.现有的测试过程中无法判断测试脚本自身是否满足业务逻辑,导致测试精度较低。同时测试人员难以理解测试脚本中的全部逻辑,使得测试效率较低。
2.现有的测试方法不考虑结果数据表中各字段或各记录之间的相关性,这使其测试逻辑较为机械。
发明内容
有鉴于此,本发明实施例提供一种数据测试方法和装置,能够根据不同字段或不同记录之间的相关性,将待测试数据表划分为多个字段集或记录集,进而对每一字段集或记录集分别测试,从而提升测试效率与测试精度。
为实现上述目的,根据本发明的一个方面,提供了一种数据测试方法。
本发明实施例的数据测试方法包括:将待测试数据表划分为多个字段集;其中,每一字段集包括待测试数据表的至少一个字段;对于任一字段集:如果该字段集不依赖于其余字段集或者依赖的字段集已通过测试,则从数据源获取所述任一字段集对应的期望结果数据集,并在判断所述期望结果数据集与所述任一字段集形成的数据集相等时,将所述任一字段集确定为通过测试;或者,将待测试数据表划分为多个记录集;其中,每一记录集包括待测试数据表的至少一条记录;从数据源获取任一记录集对应的期望结果数据集,在判断该期望结果数据集与该记录集形成的数据集相等时,将该记录集确定为通过测试。
可选地,所述方法进一步包括:在将任一字段集确定为通过测试之后:如果该字段集中存在未测试字段集依赖的字段,则将该字段保留,并将所述任一字段集中的其余字段去除;如果所述任一字段集中不存在未测试字段集依赖的字段,则将所述任一字段集去除。
可选地,所述方法进一步包括:对于不依赖于其余字段集或者依赖的字段集已通过测试的一个字段集:依据预先设置的数据标签将该字段集的数据划分为多个数据行集合,并分别针对每一数据行集合进行测试;在数据行集合全部通过测试时,将该字段集确定为通过测试。
可选地,从数据源获取期望结果数据集包括:从数据源直接获取期望结果数据集;或者,从数据源获取待测试的字段集或记录集对应的原始数据,并利用预设逻辑对原始数据进行处理生成期望结果数据集。
可选地,判断期望结果数据集与字段集或记录集形成的数据集相等包括:获取该期望结果数据集与该形成的数据集的差集、以及该形成的数据集与该期望结果数据集的差集;在二差集均为空集时,将该期望结果数据集与该形成的数据集确定为相等。
可选地,所述待测试数据表和所述期望结果数据集均为分布式数据处理框架Spark中的DataFrame对象。
为实现上述目的,根据本发明的另一方面,提供了一种数据测试装置。
本发明实施例的数据测试装置可包括:列降维单元,用于将待测试数据表划分为多个字段集;其中,每一字段集包括待测试数据表的至少一个字段;对于任一字段集:如果该字段集不依赖于其余字段集或者依赖的字段集已通过测试,则从数据源获取所述任一字段集对应的期望结果数据集,并在判断所述期望结果数据集与所述任一字段集形成的数据集相等时,将所述任一字段集确定为通过测试;或者,行降维单元,用于将待测试数据表划分为多个记录集;其中,每一记录集包括待测试数据表的至少一条记录;从数据源获取任一记录集对应的期望结果数据集,在判断该期望结果数据集与该记录集形成的数据集相等时,将该记录集确定为通过测试。
可选地,所述装置可进一步包括字段去除单元,用于在将任一字段集确定为通过测试之后:如果判断该字段集中存在未测试字段集依赖的字段,则将该字段保留,并将所述任一字段集中的其余字段去除;如果判断所述任一字段集中不存在未测试字段集依赖的字段,则将所述任一字段集去除。
可选地,所述装置可进一步包括后续降维单元,用于对于不依赖于其余字段集或者依赖的字段集已通过测试的一个字段集:依据预先设置的数据标签将该字段集的数据划分为多个数据行集合,并分别针对每一数据行集合进行测试;在数据行集合全部通过测试时,将该字段集确定为通过测试。
可选地,列降维单元或行降维单元可进一步用于:从数据源直接获取期望结果数据集;或者,从数据源获取待测试的字段集或记录集对应的原始数据,并利用预设逻辑对原始数据进行处理生成期望结果数据集。
可选地,列降维单元或行降维单元可进一步用于:获取该期望结果数据集与该形成的数据集的差集、以及该形成的数据集与该期望结果数据集的差集;在二差集均为空集时,将该期望结果数据集与该形成的数据集确定为相等。
可选地,所述待测试数据表和所述期望结果数据集均为分布式数据处理框架Spark中的DataFrame对象。
为实现上述目的,根据本发明的又一方面,提供了一种电子设备。
本发明的一种电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明所提供的数据测试方法。
为实现上述目的,根据本发明的再一方面,提供了一种计算机可读存储介质。
本发明的一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明所提供的数据测试方法。
根据本发明的技术方案,上述发明中的一个实施例具有如下优点或有益效果:
其一,可依据字段或记录之间的相关性将待测试数据表划分为多个字段集(即列降维测试)或记录集(即行降维测试)分别测试,由于同一字段集或记录集的测试逻辑相同或近似,上述降维测试可提高测试效率与测试精度。
其二,在进行列降维测试时,可针对某一字段集的各数据行进行进一步的行降维测试(即将该字段集的数据划分为多个数据行集合分别测试);在进行行降维时,可针对某一记录集进行进一步的列降维测试(即对该记录集各字段进行划分并分别测试),从而进一步优化测试过程,提高测试精度。
其三,在任一字段集或记录集测试通过时,可将其中后续不再使用的字段或记录去除,从而减小数据量,提高数据处理速度。
其四,在对任一字段集或记录集进行测试的过程中,测试人员可直接从数据源中获取期望结果数据集(即测试用例中的预期结果)或者对数据源中的原始数据按照业务逻辑加工后得到期望结果数据集,利用期望结果数据集即可对待测试的字段集或记录集进行验证,从而实现了基于业务逻辑的数据测试,解决了现有测试方法中完全依赖测试脚本引发的各种问题。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例中数据测试方法的主要步骤示意图;
图2是本发明第一实施例中的字段集依赖关系示意图;
图3是根据本发明实施例中数据测试装置的组成部分示意图;
图4是根据本发明实施例可以应用于其中的示例性系统架构图;
图5是用来实现本发明实施例中数据测试方法的电子设备的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
需要指出的是,在不冲突的情况下,本发明的实施例以及实施例中的技术特征可以相互结合。
图1是根据本发明实施例中数据测试方法的主要步骤示意图。
如图1所示,本发明实施例的数据测试方法可具体按照如下步骤执行:
步骤S101:将待测试数据表划分为多个字段集;对于任一字段集:如果该字段集不依赖于其余字段集或者依赖的字段集已通过测试,则从数据源获取所述任一字段集对应的期望结果数据集,并在判断所述期望结果数据集与所述任一字段集形成的数据集相等时,将所述任一字段集确定为通过测试。
实际应用中,本发明实施例的数据测试方法可应用在分布式数据处理框架Spark(即Apache Spark,其是一个围绕速度、易用性和复杂分析构建的大数据处理框架)中的测试任务,待测试数据表可以是由从数据源中提取的业务所需维度的数据组成的结果数据表,其数据类型可以是Spark中的DataFrame(Spark平台下的一种数据结构)。可以理解的是,上述内容并不对本发明的应用场景和待测试数据表的数据类型进行限制。事实上,本发明的数据测试方法可应用在各种适用的计算框架或数据库中,待测试数据表也可以是各种表格式数据对象。
针对现有技术完全依赖于测试脚本的测试方法存在的缺陷,步骤S101利用列降维方法将待测试数据表划分为多个字段集分别测试。具体地,步骤S101可具体执行以下步骤:
1.根据业务需求将待测试数据表划分为多个字段集。其中,每一字段集均包括待测试数据表的至少一个字段。实际应用中,可以根据字段之间的相关性进行上述划分:将相关性较强的字段划分为一个字段集,将相关性较弱或无关的字段集划分在不同的字段集。例如:可将对应于同一数据源的商品ID、商品名称、商品价格字段划分为一个字段集,将对应于另一数据源的库房ID、库房地址划分为另一字段集。可以理解,经过上述划分,可以在同一字段集内部实现近似或相同的测试逻辑,以便于提高测试效率。
2.确定待测试数据表中不依赖于其余字段集的目标字段集。可以理解,对于待测试数据表中的一个字段,如果该字段数据的正确性由另一字段的数据决定,即称该字段依赖于另一字段。例如:对于待测试数据表中的单价、数量、总价三个字段,总价字段的测试需要在单价字段和数量字段测试通过之后才可进行(显然,在单价字段或数量字段未曾测试或测试未通过时进行总价字段的测试毫无意义),则称总价字段依赖于单价字段和数量字段。对于字段集来说,如果一个字段集中的任一字段依赖于另一字段集中的任一字段,则称该一个字段集依赖于该另一字段集。此外,上述其余字段集指的是待测试数据表中目标数据集之外的任一数据集。
3.测试目标字段集。具体地,首先从数据源获取目标字段集对应的期望结果数据集。其中,期望结果数据集指的是由测试用例中的预期结果数据组成的数据集,其数据类型可以是DataFrame。
具体应用中,在生成待测试数据表时,如果目标字段集中的某字段数据是从数据源直接复制,则其对应的期望结果数据集可从数据源直接获取。例如:可利用如下select(选取)语句直接获取期望结果数据集:df2=select distinct xxx from products,其中,df2表示期望结果数据集,distinct表示去重,xxx为目标字段集中xx字段对应于数据源的字段,products为数据源名称。
在生成待测试数据表时,如果目标字段集中的某字段数据是通过对数据源中的原始数据进行加工而得到,则其对应的期望结果数据集可利用预设逻辑对原始数据进行处理而生成。例如:可利用如下select语句经数据处理获取期望结果数据集:df2=selectdistinct udf(xxx)from products,其中,udf是作为预设逻辑的自定义函数。
获取目标字段集的期望结果数据集之后,判断目标字段集形成的数据集与期望结果数据集是否相等,在判断结果为相等时,将目标字段集确定为通过测试。实际应用中,目标字段集形成的数据集可利用以下select语句从待测试数据表中提取:df1=selectdistinct xx from result,其中,df1为目标字段集形成的数据集,result为待测试数据表名称。在进行上述判断时,可首先计算期望结果数据集与目标字段集形成的数据集的差集以及目标字段集形成的数据集与期望结果数据集的差集,在二差集均为空集时,可将目标字段集形成的数据集与期望结果数据集确定为相等。示例性地,计算差集可以采用subtract(相减)算子。
在本发明实施例中,目标字段集通过测试之后,如果其中存在未测试字段集依赖的字段,则将该字段保留,并将目标字段集中的其余字段去除;如果目标字段集中的每一字段均不为未测试字段集所依赖,则将目标字段集去除。通过上述设置,可以减小待测试数据表中的数据量,提高数据处理速度。
4.对依赖的字段集已通过测试的每一字段集进行测试。具体地,对于每一未进行测试的字段集,在监听到其依赖的字段集通过测试后即可进行测试。通过测试之后,可以将其中不为未测试字段集所依赖的字段去除。
特别地,在本发明实施例中,可以根据业务需求对某一待测试的字段集进行进一步的行降维测试。具体地,首先可根据该字段集中每一数据行预先设置的数据标签,将数据行划分为多个数据行集合,每一数据行集合包括该字段集中的至少一个数据行。之后,分别对每一数据行集合进行测试。其测试过程与字段集的测试过程类似,即获取数据行集合对应的期望结果数据集,判断数据行集合形成的数据集是否与期望结果数据集相等,从而得到测试结果。在该字段集的数据行集合全部通过测试时,可将该字段集确定为通过测试。
通过以上设置,可对待测试数据表中的每一字段集进行测试,从而实现基于列降维方式的数据测试。可以看出,与现有技术相比,上述方法可简化测试过程,提升测试精度与测试效率。此外,在上述方法中,测试人员可直接从数据源中获取期望结果数据集或者对数据源中的原始数据按照业务逻辑加工后得到期望结果数据集,利用期望结果数据集即可对待测试的字段集或记录集进行验证,从而实现了基于业务逻辑的数据测试,解决了现有测试方法中完全依赖测试脚本引发的各种问题。
步骤S102:将待测试数据表划分为多个记录集;从数据源获取任一记录集对应的期望结果数据集,在判断该期望结果数据集与该记录集形成的数据集相等时,将该记录集确定为通过测试。
与步骤S101记载的列降维方法不同,下面将要介绍的是基于行降维方式的数据测试方法。实际测试过程中,可以择一选取步骤S101或本步骤执行。
针对现有技术完全依赖于测试脚本的测试方法存在的缺陷,步骤S102利用行降维方法将待测试数据表划分为多个记录集分别测试。具体地,步骤S102可具体执行以下步骤:
1.根据业务需求将待测试数据表划分为多个记录集。其中,每一记录集均包括待测试数据表的至少一条记录。实际应用中,可以根据记录之间的相关性进行上述划分:将相关性较强的字段划分为一个字段集,将相关性较弱或无关的字段集划分在不同的字段集。例如:如果待测试数据表中的记录具有三种来源,则可以根据来源的不同将待测试数据表划分为三个记录集。可以理解,经过上述划分,可以在同一记录集内部实现近似或相同的测试逻辑,以便于提高测试效率。
2.分别测试待测试数据表中的每一记录集。由于不同记录集之间不存在依赖关系,所以可以对各记录集进行并行测试。具体地,可首先从数据源获取记录集对应的期望结果数据集。类似地,期望结果数据集可从数据源直接获取或者利用预设逻辑对原始数据进行处理生成。之后判断记录集形成的数据集是否与期望结果数据集相等,在判断结果为相等时,将记录集确定为通过测试。同样地,在进行上述判断时,可首先计算期望结果数据集与记录集形成的数据集的差集以及记录集形成的数据集与期望结果数据集的差集,并在二差集均为空集时,将记录集形成的数据集与期望结果数据集确定为相等。
在本发明实施例中,某一记录集通过测试之后,可将其从待测试数据表中去除以减小数据量,提高数据处理速度。
具体应用中,可以根据业务需求对某一待测试的记录集进行进一步的列降维测试。具体地,首先将记录集中的字段划分为多个字段集合,每一字段集合包括该记录集中的至少一个字段。之后,分别对每一字段集合进行测试。其测试过程与字段集的测试过程类似,即获取字段集合对应的期望结果数据集,判断字段集合形成的数据集是否与期望结果数据集相等,从而得到测试结果。在该记录集的字段集合全部通过测试时,可将该记录集确定为通过测试。
通过以上设置,可对待测试数据表中的每一记录集进行测试,从而实现基于行降维方式的数据测试。可以看出,与现有技术相比,上述方法可简化测试过程,提升测试精度与测试效率。
以下介绍本发明第一实施例中的基于列降维方式的数据测试方法,下表为本实施例的作为待测试数据表的滞销商品数据分析结果表。
其中,商品ID字段、商品名称字段的数据源为商品详情表;库房ID字段、库房地址字段的数据源为商品库房与配送中心表;7天销量字段、14天销量字段的数据源为销量表,二字段的数据由销量表中的销量数据求和得到;库存情况字段的数据源为库存表,每一记录在该字段的值可以是数据标签分别为现货、在途、锁定、残品、临期的五个数据行;销量标识字段存储的是预测商品未来销量情况的标识,如全国严重滞销标识、全国普通滞销标识、单仓滞销标识、动销(即畅销)标识等,该字段数据可由7天销量字段、14天销量字段根据预设算法确定;退货量字段中对应于每一商品的退货量是以下两部分之和:其一为该商品的残品与临期数量之和,其二为根据该商品“现货数量+在途数量-锁定数量”以及该商品的销量标识确定的退货量。
应用列降维方式进行测试时,可首先根据业务需求将商品ID字段、商品名称字段划分为字段集1,将库房ID字段、库房地址字段划分为字段集2,将7天销量字段、14天销量字段划分为字段集3,将库存情况字段划分为字段集4,将销量标识字段划分为字段集5,将退货量字段划分为字段集6,形成以下由字段集组成的数据表:
在上述数据表中,各字段集的依赖关系如图2所示。从图2可见,字段集2依赖于字段集1,字段集3依赖于字段集1、2,字段集4依赖于字段集1、2,字段集5依赖于字段集3,字段集6依赖于字段集4、5。从具体字段来说,字段集2依赖于字段集1中的商品ID,字段集3、4均依赖于字段集1中的商品ID、字段集2中的库房ID,字段集5依赖于字段集3中的7天销量字段和14天销量字段。
之后即可分别测试各字段集。首先可对不依赖于任何字段集的字段集1进行测试。具体地,可从数据源中直接获取字段集1的期望结果数据集与之比较从而实现测试。在字段集1测试通过后,可将后续需使用的商品ID字段保留,将字段集1中的其余字段去除,得到以下数据表:
Figure BDA0001722300150000131
接着,以类似方法对字段集2进行测试,测试通过之后,将其中的库房ID保留,将其余字段去除,得到以下数据表:
Figure BDA0001722300150000141
之后,可对字段集3进行测试。具体地,从数据源获取对应的以天为单位的销量数据,并根据预设的业务逻辑计算近7天的销量数据和近14天的销量数据,根据计算结果生成期望结果数据集,用于与字段集3形成的数据集进行比较。测试通过后,由于未进行测试的字段集5依赖于字段集3的两个字段,因此将字段集3的两个字段保留。
接下来可对字段集4进行测试。具体地,可将数据标签为现货、在途和锁定的数据行划分为一个数据行集合,将数据标签为残品和临期的数据行划分为另一数据行集合,对这两个数据行集合进行并行测试。测试通过之后,可去除后续不会使用的商品ID字段、库房ID字段。最后,利用类似方法依次测试字段集5、6,从而实现待测试数据表的完整测试。可以理解的是,与上例不同,实际应用中的待测试数据表往往具有数百甚至数千个字段,采用上述测试方法可大幅提高测试效率和测试精度。
在本发明实施例的技术方案中,可根据业务需求将待测试数据表划分为多个字段集或记录集分别测试(在同一字段集或记录集内,字段或记录的相关性较强;对于不同的字段集或记录集,字段或记录的相关性较弱),从而降低大数据测试难度,为测试分工指明方向。
图3是本发明实施例中数据测试装置的组成部分示意图。
如图3所示,本发明实施例的数据测试装置300可包括列降维单元301或者行降维单元302。其中:
列降维单元301可用于将待测试数据表划分为多个字段集;其中,每一字段集包括待测试数据表的至少一个字段;对于任一字段集:如果该字段集不依赖于其余字段集或者依赖的字段集已通过测试,则从数据源获取所述任一字段集对应的期望结果数据集,并在判断所述期望结果数据集与所述任一字段集形成的数据集相等时,将所述任一字段集确定为通过测试。
行降维单元302可用于将待测试数据表划分为多个记录集;其中,每一记录集包括待测试数据表的至少一条记录;从数据源获取任一记录集对应的期望结果数据集,在判断该期望结果数据集与该记录集形成的数据集相等时,将该记录集确定为通过测试。
在本发明实施例中,所述装置300可进一步包括字段去除单元,用于在将任一字段集确定为通过测试之后:如果判断该字段集中存在未测试字段集依赖的字段,则将该字段保留,并将所述任一字段集中的其余字段去除;如果判断所述任一字段集中不存在未测试字段集依赖的字段,则将所述任一字段集去除。
作为一个优选方案,所述装置300可进一步包括后续降维单元,用于对于不依赖于其余字段集或者依赖的字段集已通过测试的一个字段集:依据预先设置的数据标签将该字段集的数据划分为多个数据行集合,并分别针对每一数据行集合进行测试;在数据行集合全部通过测试时,将该字段集确定为通过测试。
较佳地,列降维单元301或行降维单元302可进一步用于:从数据源直接获取期望结果数据集;或者,从数据源获取待测试的字段集或记录集对应的原始数据,并利用预设逻辑对原始数据进行处理生成期望结果数据集。
在一可选实现方式中,列降维单元301或行降维单元302可进一步用于:获取该期望结果数据集与该形成的数据集的差集、以及该形成的数据集与该期望结果数据集的差集;在二差集均为空集时,将该期望结果数据集与该形成的数据集确定为相等。
此外,在本发明实施例中,所述待测试数据表和所述期望结果数据集均为分布式数据处理框架Spark中的DataFrame对象。
在本发明实施例的技术方案中,可根据业务需求将待测试数据表划分为多个字段集或记录集分别测试,从而降低大数据测试难度,为测试分工指明方向。
图4示出了可以应用本发明实施例的数据测试方法或数据测试装置的示例性系统架构400。
如图4所示,系统架构400可以包括终端设备401、402、403,网络404和服务器405(此架构仅仅是示例,具体架构中包含的组件可以根据申请具体情况调整)。网络404用以在终端设备401、402、403和服务器405之间提供通信链路的介质。网络404可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备401、402、403通过网络404与服务器405交互,以接收或发送消息等。终端设备401、402、403上可以安装有各种通讯客户端应用,例如数据测试类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备401、402、403可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器405可以是提供各种服务的服务器,例如对用户利用终端设备401、402、403所操作的数据测试类应用提供支持的数据测试服务器(仅为示例)。数据测试服务器可以对接收到的测试请求等进行处理,并将处理结果(例如测试结果--仅为示例)反馈给终端设备。
需要说明的是,本发明实施例所提供的数据测试方法一般由服务器405执行,相应地,数据测试装置一般设置于服务器405中。
应该理解,图4中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
本发明还提供了一种电子设备。本发明实施例的电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明所提供的数据测试方法。
下面参考图5,其示出了适于用来实现本发明实施例的电子设备的计算机系统500的结构示意图。图5示出的电子设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图5所示,计算机系统500包括中央处理单元(CPU)501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储部分508加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。在RAM503中,还存储有计算机系统500操作所需的各种程序和数据。CPU501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
以下部件连接至I/O接口505:包括键盘、鼠标等的输入部分506;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分507;包括硬盘等的存储部分508;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。驱动器510也根据需要连接至I/O接口505。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便从其上读出的计算机程序根据需要被安装入存储部分508。
特别地,根据本发明公开的实施例,上文的主要步骤图描述的过程可以被实现为计算机软件程序。例如,本发明实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行主要步骤图所示的方法的程序代码。在上述实施例中,该计算机程序可以通过通信部分509从网络上被下载和安装,和/或从可拆卸介质511被安装。在该计算机程序被中央处理单元501执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。在本发明中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这根据所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括列降维单元或行降维单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,列降维单元还可以被描述为“对待测试数据表的数据列进行划分并分别测试的单元”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中的。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该设备执行时,使得该设备执行的步骤包括:将待测试数据表划分为多个字段集;其中,每一字段集包括待测试数据表的至少一个字段;对于任一字段集:如果该字段集不依赖于其余字段集或者依赖的字段集已通过测试,则从数据源获取所述任一字段集对应的期望结果数据集,并在判断所述期望结果数据集与所述任一字段集形成的数据集相等时,将所述任一字段集确定为通过测试;或者,将待测试数据表划分为多个记录集;其中,每一记录集包括待测试数据表的至少一条记录;从数据源获取任一记录集对应的期望结果数据集,在判断该期望结果数据集与该记录集形成的数据集相等时,将该记录集确定为通过测试。
在本发明实施例的技术方案中,可根据业务需求将待测试数据表划分为多个字段集或记录集分别测试,从而降低大数据测试难度,为测试分工指明方向。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

Claims (14)

1.一种数据测试方法,其特征在于,包括:
将待测试数据表划分为多个字段集;其中,每一字段集包括待测试数据表的至少一个字段;对于任一字段集:如果该字段集不依赖于其余字段集或者依赖的字段集已通过测试,则从数据源获取所述任一字段集对应的期望结果数据集,并在判断所述期望结果数据集与所述任一字段集形成的数据集相等时,将所述任一字段集确定为通过测试;或者,
将待测试数据表划分为多个记录集;其中,每一记录集包括待测试数据表的至少一条记录;从数据源获取任一记录集对应的期望结果数据集,在判断该期望结果数据集与该记录集形成的数据集相等时,将该记录集确定为通过测试。
2.根据权利要求1所述的方法,其特征在于,所述方法进一步包括:
在将任一字段集确定为通过测试之后:如果该字段集中存在未测试字段集依赖的字段,则将该字段保留,并将所述任一字段集中的其余字段去除;如果所述任一字段集中不存在未测试字段集依赖的字段,则将所述任一字段集去除。
3.根据权利要求1所述的方法,其特征在于,所述方法进一步包括:
对于不依赖于其余字段集或者依赖的字段集已通过测试的一个字段集:依据预先设置的数据标签将该字段集的数据划分为多个数据行集合,并分别针对每一数据行集合进行测试;在数据行集合全部通过测试时,将该字段集确定为通过测试。
4.根据权利要求1所述的方法,其特征在于,从数据源获取期望结果数据集包括:
从数据源直接获取期望结果数据集;或者,
从数据源获取待测试的字段集或记录集对应的原始数据,并利用预设逻辑对原始数据进行处理生成期望结果数据集。
5.根据权利要求1所述的方法,其特征在于,判断期望结果数据集与字段集或记录集形成的数据集相等包括:
获取该期望结果数据集与该形成的数据集的差集、以及该形成的数据集与该期望结果数据集的差集;
在二差集均为空集时,将该期望结果数据集与该形成的数据集确定为相等。
6.根据权利要求1-5任一所述的方法,其特征在于,所述待测试数据表和所述期望结果数据集均为分布式数据处理框架Spark中的DataFrame对象。
7.一种数据测试装置,其特征在于,包括:
列降维单元,用于将待测试数据表划分为多个字段集;其中,每一字段集包括待测试数据表的至少一个字段;对于任一字段集:如果该字段集不依赖于其余字段集或者依赖的字段集已通过测试,则从数据源获取所述任一字段集对应的期望结果数据集,并在判断所述期望结果数据集与所述任一字段集形成的数据集相等时,将所述任一字段集确定为通过测试;或者,
行降维单元,用于将待测试数据表划分为多个记录集;其中,每一记录集包括待测试数据表的至少一条记录;从数据源获取任一记录集对应的期望结果数据集,在判断该期望结果数据集与该记录集形成的数据集相等时,将该记录集确定为通过测试。
8.根据权利要求7所述的装置,其特征在于,所述装置进一步包括:
字段去除单元,用于在将任一字段集确定为通过测试之后:如果判断该字段集中存在未测试字段集依赖的字段,则将该字段保留,并将所述任一字段集中的其余字段去除;如果判断所述任一字段集中不存在未测试字段集依赖的字段,则将所述任一字段集去除。
9.根据权利要求7所述的装置,其特征在于,所述装置进一步包括:
后续降维单元,用于对于不依赖于其余字段集或者依赖的字段集已通过测试的一个字段集:依据预先设置的数据标签将该字段集的数据划分为多个数据行集合,并分别针对每一数据行集合进行测试;在数据行集合全部通过测试时,将该字段集确定为通过测试。
10.根据权利要求7所述的装置,其特征在于,列降维单元或行降维单元进一步用于:
从数据源直接获取期望结果数据集;或者,从数据源获取待测试的字段集或记录集对应的原始数据,并利用预设逻辑对原始数据进行处理生成期望结果数据集。
11.根据权利要求7所述的装置,其特征在于,列降维单元或行降维单元进一步用于:
获取该期望结果数据集与该形成的数据集的差集、以及该形成的数据集与该期望结果数据集的差集;在二差集均为空集时,将该期望结果数据集与该形成的数据集确定为相等。
12.根据权利要求7-11任一所述的装置,其特征在于,所述待测试数据表和所述期望结果数据集均为分布式数据处理框架Spark中的DataFrame对象。
13.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-6中任一所述的方法。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-6中任一所述的方法。
CN201810737080.7A 2018-07-06 2018-07-06 数据测试方法和装置 Pending CN110688295A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810737080.7A CN110688295A (zh) 2018-07-06 2018-07-06 数据测试方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810737080.7A CN110688295A (zh) 2018-07-06 2018-07-06 数据测试方法和装置

Publications (1)

Publication Number Publication Date
CN110688295A true CN110688295A (zh) 2020-01-14

Family

ID=69107206

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810737080.7A Pending CN110688295A (zh) 2018-07-06 2018-07-06 数据测试方法和装置

Country Status (1)

Country Link
CN (1) CN110688295A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113505077A (zh) * 2021-07-26 2021-10-15 平安信托有限责任公司 数据表的测试方法、装置、设备及存储介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120084754A1 (en) * 2010-09-30 2012-04-05 Oracle International Corporation Streamlining Unit Testing Through Hot Code Swapping
CN102855177A (zh) * 2011-06-30 2013-01-02 阿里巴巴集团控股有限公司 一种单元测试的方法和装置
CN103810196A (zh) * 2012-11-09 2014-05-21 阿里巴巴集团控股有限公司 基于业务模型进行数据库性能测试的方法
CN103942138A (zh) * 2013-01-23 2014-07-23 纽海信息技术(上海)有限公司 测试方法及装置
CN106227666A (zh) * 2016-07-25 2016-12-14 微梦创科网络科技(中国)有限公司 一种基于大数据的自动化测试方法及系统
CN107193736A (zh) * 2017-05-18 2017-09-22 恒生电子股份有限公司 测试方法、装置、电子设备以及存储介质
CN107193681A (zh) * 2016-03-15 2017-09-22 阿里巴巴集团控股有限公司 数据校验方法及装置
CN107229565A (zh) * 2017-05-31 2017-10-03 北京京东尚科信息技术有限公司 测试方法和装置
CN107766376A (zh) * 2016-08-19 2018-03-06 华为技术有限公司 数据对齐方法及装置

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120084754A1 (en) * 2010-09-30 2012-04-05 Oracle International Corporation Streamlining Unit Testing Through Hot Code Swapping
CN102855177A (zh) * 2011-06-30 2013-01-02 阿里巴巴集团控股有限公司 一种单元测试的方法和装置
CN103810196A (zh) * 2012-11-09 2014-05-21 阿里巴巴集团控股有限公司 基于业务模型进行数据库性能测试的方法
CN103942138A (zh) * 2013-01-23 2014-07-23 纽海信息技术(上海)有限公司 测试方法及装置
CN107193681A (zh) * 2016-03-15 2017-09-22 阿里巴巴集团控股有限公司 数据校验方法及装置
CN106227666A (zh) * 2016-07-25 2016-12-14 微梦创科网络科技(中国)有限公司 一种基于大数据的自动化测试方法及系统
CN107766376A (zh) * 2016-08-19 2018-03-06 华为技术有限公司 数据对齐方法及装置
CN107193736A (zh) * 2017-05-18 2017-09-22 恒生电子股份有限公司 测试方法、装置、电子设备以及存储介质
CN107229565A (zh) * 2017-05-31 2017-10-03 北京京东尚科信息技术有限公司 测试方法和装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113505077A (zh) * 2021-07-26 2021-10-15 平安信托有限责任公司 数据表的测试方法、装置、设备及存储介质

Similar Documents

Publication Publication Date Title
US11325780B2 (en) Method and device for sorting cargo
CN109901987B (zh) 一种生成测试数据的方法和装置
CN109933514B (zh) 一种数据测试方法和装置
CN109871311B (zh) 一种推荐测试用例的方法和装置
CN109976999B (zh) 测试用例覆盖率的度量方法和度量装置
CN107908662B (zh) 搜索系统的实现方法和实现装置
CN111444077A (zh) 一种生成流程节点测试数据的方法和装置
CN109840192B (zh) 自动化测试的方法和装置
CN112597126A (zh) 一种数据迁移方法和装置
CN113448869B (zh) 测试用例生成的方法、装置、电子设备及计算机可读介质
CN112947919A (zh) 构建业务模型和处理业务请求的方法和装置
CN114281663A (zh) 测试处理方法、装置、电子设备和存储介质
CN114297278A (zh) 批量数据快速写入方法、系统和装置
CN107229565B (zh) 测试方法和装置
CN110928594A (zh) 服务开发方法和平台
CN110688295A (zh) 数据测试方法和装置
CN111026629A (zh) 一种测试脚本自动生成的方法和装置
CN109857838B (zh) 用于生成信息的方法和装置
CN109669668B (zh) 一种系统性能测试中实现模拟交易执行的方法和装置
CN112256566A (zh) 一种测试案例的保鲜方法和装置
CN112579428A (zh) 接口测试的方法、装置、电子设备和存储介质
CN112749767B (zh) 物品检验方法和装置
CN113760765B (zh) 代码测试方法、装置、电子设备和存储介质
CN112799797A (zh) 一种任务管理的方法和装置
CN111753111A (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