CN107193736B - 测试方法、装置、电子设备以及存储介质 - Google Patents

测试方法、装置、电子设备以及存储介质 Download PDF

Info

Publication number
CN107193736B
CN107193736B CN201710351465.5A CN201710351465A CN107193736B CN 107193736 B CN107193736 B CN 107193736B CN 201710351465 A CN201710351465 A CN 201710351465A CN 107193736 B CN107193736 B CN 107193736B
Authority
CN
China
Prior art keywords
target table
trigger
data
test
database
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
Application number
CN201710351465.5A
Other languages
English (en)
Other versions
CN107193736A (zh
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.)
Hundsun Technologies Inc
Original Assignee
Hundsun Technologies Inc
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 Hundsun Technologies Inc filed Critical Hundsun Technologies Inc
Priority to CN201710351465.5A priority Critical patent/CN107193736B/zh
Publication of CN107193736A publication Critical patent/CN107193736A/zh
Application granted granted Critical
Publication of CN107193736B publication Critical patent/CN107193736B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • 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/3692Test management for test results analysis

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开是关于一种测试方法及装置。该方法包括:在测试过程中根据数据库中的目标表创建触发器以及临时表;通过触发器对目标表进行监控,得到目标表的变化信息;在临时表中存储目标表的变化信息以对测试过程中的问题进行定位。本公开能够灵活地对测试过程进行监控,帮助测试和开发人员快速地定位有问题的步骤。

Description

测试方法、装置、电子设备以及存储介质
技术领域
本公开涉及数据处理技术领域,具体而言,涉及一种测试方法、测试装置、电子设备以及计算机可读存储介质。
背景技术
随着软件规模日益大型化,软件的复杂程度越来越高,软件的质量也越来越重要,从而对软件测试提出了更高的要求。
目前的软件测试方案中,在测试用例执行过程中,测试系统按照指定的顺序执行测试用例,提供测试用例执行结果的日志信息。在测试用例执行完成之后分析执行结果时,仅能依靠测试系统提供的测试执行结果的日志信息进行分析。但是,在很多情况下根据日志信息难以分析出问题的具体原因。此外,由于测试系统没有提供对测试过程的监控功能,用户很难对测试过程进行灵活的监控,从而难以快速定位测试过程中出现的问题。
因此,需要一种能够解决上述问题的测试方法及测试装置。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开的目的在于提供一种测试方法及测试装置,进而至少在一定程度上克服由于相关技术的限制和缺陷而导致的一个或者多个问题。
根据本公开的一个方面,提供了一种测试方法,包括:
在测试过程中根据数据库中的目标表创建触发器以及临时表;
通过所述触发器对所述目标表进行监控,得到所述目标表的变化信息;
在所述临时表中存储所述目标表的变化信息以对所述测试过程中的问题进行定位。
在本公开的一种示例性实施例中,所述目标表的变化信息包括新增数据、删除数据、以及修改数据中的至少一种。
在本公开的一种示例性实施例中,根据数据库中的目标表创建触发器包括:
在执行多组测试用例中需要对数据库中的目标表进行监控时,根据所述目标表创建触发器。
在本公开的一种示例性实施例中,根据所述目标表创建触发器包括:
根据所述数据库的类型、所述数据库的连接串以及所述目标表的表名通过第一触发器脚本创建所述触发器。
在本公开的一种示例性实施例中,所述测试方法还包括:
在不需要对所述目标表进行监控时,根据所述目标表删除所述触发器,或者
在需要进行比对操作时,根据所述目标表删除所述触发器。
在本公开的一种示例性实施例中,根据所述目标表删除所述触发器包括:
根据所述数据库的类型、所述数据库的连接串以及所述目标表的表名通过第二触发器脚本删除所述触发器。
在本公开的一种示例性实施例中,所述测试方法还包括:
在删除所述触发器时对所述临时表中的数据进行导出和清理。
在本公开的一种示例性实施例中,所述临时表包括下述字段:记录所述目标表的名称的字段、记录所述目标表中发生变化的列的字段、记录所述目标表中发生变化的数据的变化前的值的字段、记录所述目标表中发生变化的数据的变化后的值的字段、记录所述目标表中发生变化的类型的字段。
在本公开的一种示例性实施例中,所述测试方法还包括:
在需要对程序问题进行定位时,通过指定脚本读取所述临时表中的数据以对所述程序问题进行定位。
在本公开的一种示例性实施例中,所述测试方法还包括:
在每组测试用例执行完之后将从所述临时表中导出的数据分别与预定标准数据进行比对,或者
在多组测试用例执行完之后将从所述临时表中导出的数据与预定标准数据统一进行比对。
在本公开的一种示例性实施例中,所述测试方法还包括:
在判断比对结果失败时,基于所述比对结果生成分析数据并将所述分析数据导入到分析表中。
在本公开的一种示例性实施例中,所述测试方法还包括:
在所述数据库中独立于所述触发器存储所述临时表。
根据本公开的一个方面,提供一种测试装置,包括:
创建单元,用于在测试过程中根据数据库中的目标表创建触发器和临时表
监控单元,用于通过所述触发器对所述目标表进行监控,得到所述目标表的变化信息;
变化信息存储单元,用于在所述临时表中存储所述目标表的变化信息以对所述测试过程中的问题进行定位。
在本公开的一种示例性实施例中,所述目标表的变化信息包括新增数据、删除数据、以及修改数据中的至少一种。
在本公开的一种示例性实施例中,根据数据库中的目标表创建触发器包括:
在执行多组测试用例中需要对数据库中的目标表进行监控时,根据所述目标表创建触发器。
在本公开的一种示例性实施例中,根据所述目标表创建触发器包括:
根据所述数据库的类型、所述数据库的连接串以及所述目标表的表名通过第一触发器脚本创建所述触发器。
在本公开的一种示例性实施例中,所述测试装置还包括:
删除单元,用于在不需要对所述目标表进行监控时,根据所述目标表删除所述触发器,或者在需要进行比对操作时,根据所述目标表删除所述触发器。
在本公开的一种示例性实施例中,根据所述目标表删除所述触发器包括:
根据所述数据库的类型、所述数据库的连接串以及所述目标表的表名通过第二触发器脚本删除所述触发器。
在本公开的一种示例性实施例中,所述测试装置还包括:
数据导出单元,用于在删除所述触发器时对所述临时表中的数据进行导出和清理。
在本公开的一种示例性实施例中,所述临时表包括下述字段:记录所述目标表的名称的字段、记录所述目标表中发生变化的列的字段、记录所述目标表中发生变化的数据的变化前的值的字段、记录所述目标表中发生变化的数据的变化后的值的字段、记录所述目标表中发生变化的类型的字段。
在本公开的一种示例性实施例中,所述测试装置还包括:
问题定位单元,用于在需要对程序问题进行定位时,通过指定脚本读取所述临时表中的数据以对所述程序问题进行定位。
在本公开的一种示例性实施例中,所述测试装置还包括:
比对单元,用于在每组测试用例执行完之后将从所述临时表中导出的数据分别与预定标准数据进行比对,或者在多组测试用例执行完之后将从所述临时表中导出的数据与预定标准数据统一进行比对。
在本公开的一种示例性实施例中,所述测试装置还包括:
分析数据生成单元,用于在判断比对结果失败时,基于所述比对结果生成分析数据并将所述分析数据导入到分析表中。
在本公开的一种示例性实施例中,所述测试装置还包括:
临时表存储单元,用于在所述数据库中独立于所述触发器存储所述临时表。
根据本公开的一个方面,提供了一种电子设备,包括:
处理器;
存储器,所述存储器上存储有计算机程序,所述计算机程序被所述处理器执行时实现根据上述任意一项所述的测试方法。
根据本公开的一个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现根据上述任意一项所述的测试方法。
本公开的一种示例性实施例中的测试方法及测试装置,一方面,根据数据库中的目标表创建触发器以及临时表,能够根据测试需要对需要监控的目标表创建触发器;另一方面,通过所述触发器对所述目标表进行监控,得到所述目标表的变化信息,能够根据测试需要对目标表的变化进行监控,实现对测试过程的灵活监控;再一方面,在临时表中存储所述目标表的变化信息,能够帮助测试人员和开发人员快速定位到测试过程中的问题。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
通过参照附图来详细描述其示例实施例,本公开的上述和其它特征及优点将变得更加明显。
图1示意性示出了根据本公开一示例性实施例的测试方法的流程图;
图2示意性示出了根据本公开一示例性实施例的测试方法的原理图;
图3示意性示出了根据本公开一示例性实施例的分析数据示例图;以及
图4示意性示出了根据本公开一示例性实施例的测试装置的框图。
具体实施方式
现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施例;相反,提供这些实施例使得本公开将全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本公开的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而没有所述特定细节中的一个或更多,或者可以采用其它的方法、组元、材料、装置、步骤等。在其它情况下,不详细示出或描述公知结构、方法、装置、实现、材料或者操作以避免模糊本公开的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个软件硬化的模块中实现这些功能实体或功能实体的一部分,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
本示例实施例中,首先提供了一种测试方法。参考图1中所示,该测试方法可以包括以下步骤:
步骤S110.在测试过程中根据数据库中的目标表创建触发器以及临时表;
步骤S120.通过所述触发器对所述目标表进行监控,得到所述目标表的变化信息;以及
步骤S130.在所述临时表中存储所述目标表的变化信息以对所述测试过程中的问题进行定位。
根据本示例实施例的测试方法,一方面,根据数据库中的目标表创建触发器以及临时表,能够根据测试需要对需要监控的目标表创建触发器;另一方面,通过所述触发器对所述目标表进行监控,得到所述目标表的变化信息,能够根据测试需要对目标表的变化进行监控,实现对测试过程的灵活监控;再一方面,在临时表中存储所述目标表的变化信息,能够帮助测试人员和开发人员快速定位到测试过程中的问题。
下面,将对本示例实施例中的测试方法进行进一步的说明。
在步骤S110中,根据数据库中的目标表创建触发器以及临时表。
在本示例实施例中,数据库可以为SQL server数据库和Oracle数据库,但是本公开的示例实施例中的数据库不限于此,例如数据库还可以为MySQL数据库、DB2数据库等,这同样在本公开的保护范围内。
触发器(trigger)是数据库服务器提供给程序员和数据分析员来保证数据完整性的一种方法,触发器是数据库中与表的事件相关的特殊的存储过程,触发器的执行是由事件来触发,例如当对一个表进行操作(插入、删除、更新)时就会激活触发器执行这些操作。触发器经常用于加强数据的完整性约束和业务规则等。
在本示例实施例中,在本示例实施例中,在需要对数据库中的目标表进行监控时,可以使用触发器脚本对目标表创建触发器。在本示例实施例中,可以根据数据库的类型、数据库的连接串以及目标表的表名通过触发器脚本创建触发器,从而可以在执行测试用例的过程中根据需要随时创建触发器,不需要在执行测试用例之前创建触发器。此外,在本示例实施例中,可以支持批量创建触发器,即针对多个目标表创建相应的多个触发器。如图2所示,在执行需要进行监控的测试用例组2和测试用例组4时,通过Trigger脚本对需要监控的目标表创建触发器和临时表。
进一步地,在本示例实施例中,可以使用自动化工具或数据表字段变化监视工具创建临时表,还可以在数据库中直接执行SQL脚本创建临时表,临时表用于记录触发器监控到的目标表中每一步发生的变化。临时表的结构可以如下表1所示:
表1.临时表的结构
Figure BDA0001297919700000071
需要说明的是,在本示例实施例中,可以根据需要在上述临时表结构中省略或添加一个或多个表字段,例如,在测试过程的临时表中,可以省略VC_COLUMNTYPE即记录发生变化的列的数据类型和/或ACTION_TIME即记录发生变化的时间,还可以添加发生变化的行数字段等,这同样在本公开的保护范围内。
接下来,在步骤S120中,通过所述触发器对所述目标表进行监控,得到所述目标表的变化信息。
在本示例实施例中,通过所创建的触发器对目标表进行监控,可以在所有创建触发器的目标表发生任何变化(新增、删除、修改数据等)时,得到的目标表的每个字段变化前后的数据、字段类型等信息。目标表的变化信息包括新增数据、删除数据、以及修改数据中的至少一种。下表2示出了在执行测试用例过程中对数据库中的users表进行监控,得到的users表的变化信息,监控到数据及其含义如下:
表2.监控得到的users表的变化信息
VC_TABLENAME VC_COLUMNNAME VC_COLUMNTYPE VC_OLDVALUE VC_NEWVALUE VC_CHANGETYPE ACTION_TIME
users id int 35 - 删除 2016-12-09 16:45:03.563
users name nchar - xiaoming 新增 2016-12-09 16:45:03.843
users id int 36 361 修改 2016-12-09 16:45:03.923
通过分析该临时表中的各字段,可以获知如下含义,即:第一行数据表示进行了删除数据操作;第二行数据表示新增一行数据的操作,第三行数据表示修改数据的操作,修改前的值是36,修改后的值时361。
接下来,在步骤S130中,在所述临时表中存储所述目标表的变化信息以对测试过程中的问题进行定位。
在本示例实施例中,通过所创建的触发器对目标表进行监控,可以在所有创建触发器的目标表发生任何变化(新增、删除、修改数据等)时,将监控到的目标表的每个字段变化前后的数据、字段类型等信息插入到临时表中。由于在临时表中保存了数据库中目标表的所有变化,可以方便测试人员和开发人员排查和定位问题。
进一步地,在本示例实施例中,在测试用例执行过程中,由于在临时表中记录了触发器监控到的目标表每一步发生的变化,因此,当需要对程序问题进行定位时,可以调用指定脚本,读取临时表中的数据,从而进行程序的问题定位,并在不需要进行监控时,随时删除监控使用的触发器和临时表。因此,该测试方法还可以包括:判断是否需要对程序问题进行定位,在判断需要对程序问题进行定位时,通过指定脚本读取临时表中的数据以对程序问题进行定位。
在一种技术方案中,在对多组测试用例进行测试时,需要进行以下步骤:(1)在执行所有测试步骤之前添加监控使用的触发器;(2)执行测试步骤,在每执行完一组测试用例之后,立即进行数据比对,数据比对完成之后再执行下一组测试用例;(3)循环第二步,直到所有用例执行完毕;(4)删除监控使用的触发器。上述方案虽然能够实现对数据库变换的监控,但是由于监控使用的触发器需要在所有的测试用例执行之前创建,并且在整个测试执行过程一直存在,会降低数据库的性能。
基于上述内容,在本示例实施例中,根据数据库中的目标表创建触发器可以包括:在执行多组测试用例中需要对数据库中的目标表进行监控时,根据所述目标表创建触发器。在本示例实施例中,多组测试用例可以包括一组或多组需要监控的测试用例和一组或多组不需要监控的测试用例。在本示例实施例中,可以在自动化工具和数据表字段变化监视工具中集成触发器(Trigger)脚本来判断是否需要对数据库中的目标表进行监控。如图2所示,在需要执行的多组测试用例中,测试用例组1和测试用例组3不需要进行监控,测试用例组2和测试用例组4需要进行监控。
进一步地,在本示例实施例中,为了进一步减低触发器对数据库性能的影响,该测试方法还可以包括:在不需要对所述目标表进行监控时,根据所述目标表删除所述触发器,或者在需要进行比对操作时,根据所述目标表删除所述触发器。
具体而言,在本示例实施例中,在不需要对目标表进行监控时,可以通过调用自动化工具和数据表字段变化监视工具中集成的ExportTrigger脚本来删除触发器。在本示例实施例中,可以根据数据库的类型、数据库的连接串以及目标表的表名通过ExportTrigger脚本删除触发器。此外,在本示例实施例中,还可以对临时表中的数据进行导出和清理(本示例实施例支持批量导出和清理)。在导出目标表的数据后,可以通过自动化工具和数据表字段变化监视工具自动清理临时表中导出部分的数据,从而可以降低对资源的占用;同时,通过ExportTrigger脚本也可以直接删除对该目标表的监控。如图2所示,在不需要对目标表进行监控时,可以通过ExportTrigger脚本删除触发器。
进一步地,在本示例实施例中,临时表可以脱离触发器进行单独存储,从而可以随时调用Trigger脚本和ExportTrigger脚本来创建和删除触发器,随时访问临时表。因此,本示例实施例通过结合临时表实现了灵活使用触发器的效果,可以做到随时创建触发器,随时删除触发器。
进一步地,在本示例实施例中,还可以在进行比对操作时删除触发器,以进一步提高数据库的性能,因此,该测试方法还可以包括:判断是否需要进行比对操作,在判断需要进行比对操作时,根据目标表删除触发器。
在本示例实施例中,可以通过Excel比对工具对从临时表中导出的数据与标准数据进行比对操作。Excel比对工具是一种查找Excel文件数据异同的工具,可以进行单个文件或者是多个Excel文件之间的比较。但是本公开的示例实施例中的比对工具不限于此,例如比对工具还可以是能够实现数据比对的数据库比对工具例如SQL server数据库比对工具和Oracle数据库比对工具等。数据比对的操作和触发器的增删原理是类似的,自动化工具和数据表字段变化监视工具均支持调用Excel比对工具。
进一步地,在本示例实施例中,可以在多组测试用例执行完成之后,从多个监控目标表的临时表中导出数据后进行统一的批量比对操作,也可以在每组测试用例执行完成之后,从监控目标表的临时表中导出数据后分别进行比对。在测试结果不影响下一组测试用例执行时,可以继续执行下一组测试用例,进一步提升测试效率。如图2所示,在本示例实施例中,可以在多组测试用例执行完之后,从临时表中导出数据与标准数据进行统一的批量比对操作,也可以在每次监控导出数据后与标准数据分别进行比对。由于本示例实施例中可以灵活地选择进行比对操作的时间,因此相比于现有技术而言,减少了比对操作占用的时间,从而减少了整个测试执行的时间,进一步提高了测试效率。
进一步地,在本示例实施例中,还可以集成分析数据脚本(MakeAnalyseData脚本),在每一个业务场景的测试用例组执行前调用该脚本,可以在临时表中写入该组测试用例的测试目的、脚本详情以及测试数据等信息。该组测试用例的测试目的、脚本详情以及测试数据等信息只在数据分析时导出。当从临时表的导出数据和预先准备的标准数据比对失败时,可以通过MakeAnalyseData脚本主动生成一份分析数据导出到Excel,用于测试和开发人员作数据分析,从而快速定位问题。
如图3所示,分析数据示例的第一行表示:该组测试用例的测试目的、脚本详情以及测试数据等信息,如测试目的为触发器分析数据测试、测试数据为输入数据等;分析数据的剩余部分表示:测试过程中对与业务相关的目标表进行监控得到的目标表的每一步变化的记录数据,例如,在目标表的表名为TOPERATOR的表中,对超级用户的VC_PASS进行了修改,在目标表的表名为TSYSTEMLOG的表中,新增了一行数据。
需要说明的是,上述的所有操作都可调用工具集成脚本来执行,通过传入脚本对应的参数,结合临时表中监控记录的数据,即可得到测试的结果,从而提高了自动化覆盖率,也可以做到随时创建和随时删除触发器,把对数据库性能的影响降到最低,同时降低了对资源的占用。
需要说明的是,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
在本示例实施例中,还提供了一种测试装置。参照图4所示,该测试装置400可以包括:创建单元410、监控单元420以及变化信息存储单元430。其中:
创建单元410用于在测试过程中根据数据库中的目标表创建触发器和临时表
监控单元420用于通过所述触发器对所述目标表进行监控,得到所述目标表的变化信息;
变化信息存储单元430用于在所述临时表中存储所述目标表的变化信息以对所述测试过程中的问题进行定位。
进一步地,在本示例实施例中,所述目标表的变化信息可以包括新增数据、删除数据、以及修改数据中的至少一种。
进一步地,在本示例实施例中,根据数据库中的目标表创建触发器可以包括:在执行多组测试用例中需要对数据库中的目标表进行监控时,根据所述目标表创建触发器。
进一步地,在本示例实施例中,根据所述目标表创建触发器可以包括:根据所述数据库的类型、所述数据库的连接串以及所述目标表的表名通过第一触发器脚本创建所述触发器。
此外,在本示例实施例中,所述测试装置还可以包括:删除单元,用于在不需要对所述目标表进行监控时,根据所述目标表删除所述触发器,或者在需要进行比对操作时,根据所述目标表删除所述触发器。
进一步地,在本示例实施例中,根据所述目标表删除所述触发器可以包括:根据所述数据库的类型、所述数据库的连接串以及所述目标表的表名通过第二触发器脚本删除所述触发器。
此外,在本示例实施例中,所述测试装置还可以包括:数据导出单元,用于在删除所述触发器时对所述临时表中的数据进行导出和清理。
进一步地,在本示例实施例中,所述临时表可以包括下述字段:记录所述目标表的名称的字段、记录所述目标表中发生变化的列的字段、记录所述目标表中发生变化的数据的变化前的值的字段、记录所述目标表中发生变化的数据的变化后的值的字段、记录所述目标表中发生变化的类型的字段。
此外,在本示例实施例中,所述测试装置还可以包括:问题定位单元,用于在需要对程序问题进行定位时,通过指定脚本读取所述临时表中的数据以对所述程序问题进行定位。
此外,在本示例实施例中,所述测试装置还可以包括:比对单元,用于在每组测试用例执行完之后将从所述临时表中导出的数据分别与预定标准数据进行比对,或者在多组测试用例执行完之后将从所述临时表中导出的数据与预定标准数据统一进行比对。
此外,在本示例实施例中,所述测试装置还可以包括:分析数据生成单元,用于在判断比对结果失败时,基于所述比对结果生成分析数据并将所述分析数据导入到分析表中。
进一步地,在本示例实施例中,所述测试装置还可以包括:临时表存储单元,用于在所述数据库中独立于所述触发器存储所述临时表。
由于本公开的示例实施例的测试装置400的各个功能模块与上述测试方法的示例实施例的步骤对应,因此在此不再赘述。
应当注意,尽管在上文详细描述中提及了测试装置的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
通过以上的实施例的描述,本领域的技术人员易于理解,这里描述的示例实施例可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本公开实施例的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施例。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

Claims (14)

1.一种测试方法,其特征在于,包括:
在测试过程中根据数据库中的目标表创建触发器以及临时表;
通过所述触发器对所述目标表进行监控,得到所述目标表的变化信息;
在所述临时表中存储所述目标表的变化信息以对所述测试过程中的问题进行定位,其中,所述目标表的变化信息包括:所述目标表中每一步发生的变化信息;
在每组测试用例执行完之后将从所述临时表中导出的数据分别与预定标准数据进行比对,或者
在多组测试用例执行完之后将从所述临时表中导出的数据与预定标准数据统一进行比对。
2.根据权利要求1所述的测试方法,其特征在于,所述目标表的变化信息包括新增数据、删除数据、以及修改数据中的至少一种。
3.根据权利要求1所述的测试方法,其特征在于,根据数据库中的目标表创建触发器包括:
在执行多组测试用例中需要对数据库中的目标表进行监控时,根据所述目标表创建触发器。
4.根据权利要求3所述的测试方法,其特征在于,根据所述目标表创建触发器包括:
根据所述数据库的类型、所述数据库的连接串以及所述目标表的表名通过第一触发器脚本创建所述触发器。
5.根据权利要求3所述的测试方法,其特征在于,所述测试方法还包括:
在不需要对所述目标表进行监控时,根据所述目标表删除所述触发器,或者
在需要进行比对操作时,根据所述目标表删除所述触发器。
6.根据权利要求5所述的测试方法,其特征在于,根据所述目标表删除所述触发器包括:
根据所述数据库的类型、所述数据库的连接串以及所述目标表的表名通过第二触发器脚本删除所述触发器。
7.根据权利要求5所述的测试方法,其特征在于,所述测试方法还包括:
在删除所述触发器时对所述临时表中的数据进行导出和清理。
8.根据权利要求1所述的测试方法,其特征在于,所述临时表包括下述字段:记录所述目标表的名称的字段、记录所述目标表中发生变化的列的字段、记录所述目标表中发生变化的数据的变化前的值的字段、记录所述目标表中发生变化的数据的变化后的值的字段、记录所述目标表中发生变化的类型的字段。
9.根据权利要求1所述的测试方法,其特征在于,所述测试方法还包括:
在需要对程序问题进行定位时,通过指定脚本读取所述临时表中的数据以对所述程序问题进行定位。
10.根据权利要求1所述的测试方法,其特征在于,所述测试方法还包括:
在判断比对结果失败时,基于所述比对结果生成分析数据并将所述分析数据导入到分析表中。
11.根据权利要求1所述的测试方法,其特征在于,所述测试方法还包括:
在所述数据库中独立于所述触发器存储所述临时表。
12.一种测试装置,其特征在于,包括:
创建单元,用于在测试过程中根据数据库中的目标表创建触发器和临时表;
监控单元,用于通过所述触发器对所述目标表进行监控,得到所述目标表的变化信息;
变化信息存储单元,用于在所述临时表中存储所述目标表的变化信息以对所述测试过程中的问题进行定位,其中,所述目标表的变化信息包括:所述目标表中每一步发生的变化信息;
比对单元,用于在每组测试用例执行完之后将从所述临时表中导出的数据分别与预定标准数据进行比对,或者在多组测试用例执行完之后将从所述临时表中导出的数据与预定标准数据统一进行比对。
13.一种电子设备,其特征在于,包括:
处理器;
存储器,所述存储器上存储有计算机程序,所述计算机程序被所述处理器执行时实现根据权利要求1至11中任一项所述的测试方法。
14.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现根据权利要求1至11中任一项所述的测试方法。
CN201710351465.5A 2017-05-18 2017-05-18 测试方法、装置、电子设备以及存储介质 Active CN107193736B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710351465.5A CN107193736B (zh) 2017-05-18 2017-05-18 测试方法、装置、电子设备以及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710351465.5A CN107193736B (zh) 2017-05-18 2017-05-18 测试方法、装置、电子设备以及存储介质

Publications (2)

Publication Number Publication Date
CN107193736A CN107193736A (zh) 2017-09-22
CN107193736B true CN107193736B (zh) 2020-07-28

Family

ID=59874249

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710351465.5A Active CN107193736B (zh) 2017-05-18 2017-05-18 测试方法、装置、电子设备以及存储介质

Country Status (1)

Country Link
CN (1) CN107193736B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109976968A (zh) * 2017-12-27 2019-07-05 航天信息股份有限公司 一种获取数据库变化表数据的方法、装置、介质及设备
CN108399246B (zh) * 2018-03-01 2021-07-27 金蝶软件(中国)有限公司 一种目标数据的定位方法以及相关装置
CN110688295A (zh) * 2018-07-06 2020-01-14 北京京东尚科信息技术有限公司 数据测试方法和装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6745174B2 (en) * 2001-03-29 2004-06-01 Hewlett-Packard Development Company, L.P. Method of executing before-triggers in an active database
CN100359482C (zh) * 2004-08-04 2008-01-02 上海宝信软件股份有限公司 数据库表更新的动态监控系统及方法
CN101136798A (zh) * 2007-10-16 2008-03-05 中兴通讯股份有限公司 一种数据配置自动化测试系统和方法
CN102982126A (zh) * 2012-11-14 2013-03-20 浙江星汉信息技术有限公司 一种数据库表数据实时推送的方法及其系统
CN104965879B (zh) * 2015-06-12 2019-03-26 小米科技有限责任公司 修改数据表的表结构的方法及装置

Also Published As

Publication number Publication date
CN107193736A (zh) 2017-09-22

Similar Documents

Publication Publication Date Title
CN107251024B (zh) 用于诊断执行问题的数据库查询执行跟踪和数据生成
US11163744B2 (en) Test data generation and scale up for database testing using unique common factor sequencing
US8555234B2 (en) Verification of soft error resilience
US20090287729A1 (en) Source code coverage testing
US7089535B2 (en) Code coverage with an integrated development environment
CN110737594B (zh) 自动生成测试用例的数据库标准符合性测试方法及装置
CN107193736B (zh) 测试方法、装置、电子设备以及存储介质
CN104794048A (zh) 一种ui自动化测试方法和系统
US9311345B2 (en) Template based database analyzer
CN107153609B (zh) 一种自动化测试方法和装置
US20170177463A1 (en) Data flow analysis in processor trace logs using compiler-type information method and apparatus
US8850407B2 (en) Test script generation
Kim et al. A new hybrid algorithm for software fault localization
WO2016165461A1 (zh) 一种电信网网管系统软件自动化测试方法和装置
CN113268470A (zh) 一种高效的数据库回滚方案验证方法
CN109032940B (zh) 一种测试场景录入方法、装置、设备及存储介质
CN114356454B (zh) 对账数据处理方法、设备、存储介质及程序产品
CN110851437A (zh) 一种存储方法、装置及设备
US9208271B1 (en) Transaction correlation system
CN113608906B (zh) 云计算内存地址段异常测试方法、系统、终端及存储介质
CN115982055B (zh) 一种专门服务于java语言开发程序的测试方法
Pruthviraj Fine Grained Statistical Debugging for the Identification of Multiple Bugs
CN109117312B (zh) 数据恢复方法及装置
JP6974707B2 (ja) テストプログラム、テスト装置及びテスト方法
Mulholland et al. Track 2 Paper: The Future of Metadata-Oriented Testing of Research Software: Automated Generation of Test Regimes and Other Benefits

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