CN107193736A - 测试方法、装置、电子设备以及存储介质 - Google Patents
测试方法、装置、电子设备以及存储介质 Download PDFInfo
- Publication number
- CN107193736A CN107193736A CN201710351465.5A CN201710351465A CN107193736A CN 107193736 A CN107193736 A CN 107193736A CN 201710351465 A CN201710351465 A CN 201710351465A CN 107193736 A CN107193736 A CN 107193736A
- Authority
- CN
- China
- Prior art keywords
- object table
- trigger
- data
- testing
- 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.)
- Granted
Links
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
-
- 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/3692—Test 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.临时表的结构
需要说明的是,在本示例实施例中,可以根据需要在上述临时表结构中省略或添加一个或多个表字段,例如,在测试过程的临时表中,可以省略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 (15)
1.一种测试方法,其特征在于,包括:
在测试过程中根据数据库中的目标表创建触发器以及临时表;
通过所述触发器对所述目标表进行监控,得到所述目标表的变化信息;
在所述临时表中存储所述目标表的变化信息以对所述测试过程中的问题进行定位。
2.根据权利要求1所述的测试方法,其特征在于,所述目标表的变化信息包括新增数据、删除数据、以及修改数据中的至少一种。
3.根据权利要求1所述的测试方法,其特征在于,根据数据库中的目标表创建触发器包括:
在执行多组测试用例中需要对数据库中的目标表进行监控时,根据所述目标表创建触发器。
4.根据权利要求3所述的测试方法,其特征在于,根据所述目标表创建触发器包括:
根据所述数据库的类型、所述数据库的连接串以及所述目标表的表名通过第一触发器脚本创建所述触发器。
5.根据权利要求3所述的测试方法,其特征在于,所述测试方法还包括:
在不需要对所述目标表进行监控时,根据所述目标表删除所述触发器,或者
在需要进行比对操作时,根据所述目标表删除所述触发器。
6.根据权利要求5所述的测试方法,其特征在于,根据所述目标表删除所述触发器包括:
根据所述数据库的类型、所述数据库的连接串以及所述目标表的表名通过第二触发器脚本删除所述触发器。
7.根据权利要求5所述的测试方法,其特征在于,所述测试方法还包括:
在删除所述触发器时对所述临时表中的数据进行导出和清理。
8.根据权利要求1所述的测试方法,其特征在于,所述临时表包括下述字段:记录所述目标表的名称的字段、记录所述目标表中发生变化的列的字段、记录所述目标表中发生变化的数据的变化前的值的字段、记录所述目标表中发生变化的数据的变化后的值的字段、记录所述目标表中发生变化的类型的字段。
9.根据权利要求1所述的测试方法,其特征在于,所述测试方法还包括:
在需要对程序问题进行定位时,通过指定脚本读取所述临时表中的数据以对所述程序问题进行定位。
10.根据权利要求1所述的测试方法,其特征在于,所述测试方法还包括:
在每组测试用例执行完之后将从所述临时表中导出的数据分别与预定标准数据进行比对,或者
在多组测试用例执行完之后将从所述临时表中导出的数据与预定标准数据统一进行比对。
11.根据权利要求10所述的测试方法,其特征在于,所述测试方法还包括:
在判断比对结果失败时,基于所述比对结果生成分析数据并将所述分析数据导入到分析表中。
12.根据权利要求1所述的测试方法,其特征在于,所述测试方法还包括:
在所述数据库中独立于所述触发器存储所述临时表。
13.一种测试装置,其特征在于,包括:
创建单元,用于在测试过程中根据数据库中的目标表创建触发器和临时表
监控单元,用于通过所述触发器对所述目标表进行监控,得到所述目标表的变化信息;
变化信息存储单元,用于在所述临时表中存储所述目标表的变化信息以对所述测试过程中的问题进行定位。
14.一种电子设备,其特征在于,包括:
处理器;
存储器,所述存储器上存储有计算机程序,所述计算机程序被所述处理器执行时实现根据权利要求1至12中任一项所述的测试方法。
15.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现根据权利要求1至12中任一项所述的测试方法。
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 true CN107193736A (zh) | 2017-09-22 |
CN107193736B 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) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108399246A (zh) * | 2018-03-01 | 2018-08-14 | 金蝶软件(中国)有限公司 | 一种目标数据的定位方法以及相关装置 |
CN109976968A (zh) * | 2017-12-27 | 2019-07-05 | 航天信息股份有限公司 | 一种获取数据库变化表数据的方法、装置、介质及设备 |
CN110688295A (zh) * | 2018-07-06 | 2020-01-14 | 北京京东尚科信息技术有限公司 | 数据测试方法和装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020143731A1 (en) * | 2001-03-29 | 2002-10-03 | Eliezer Levy | Method of executing before-triggers in an active database |
CN1673972A (zh) * | 2004-08-04 | 2005-09-28 | 上海宝信软件股份有限公司 | 数据库表更新的动态监控系统及方法 |
CN101136798A (zh) * | 2007-10-16 | 2008-03-05 | 中兴通讯股份有限公司 | 一种数据配置自动化测试系统和方法 |
CN102982126A (zh) * | 2012-11-14 | 2013-03-20 | 浙江星汉信息技术有限公司 | 一种数据库表数据实时推送的方法及其系统 |
CN104965879A (zh) * | 2015-06-12 | 2015-10-07 | 小米科技有限责任公司 | 修改数据表的表结构的方法及装置 |
-
2017
- 2017-05-18 CN CN201710351465.5A patent/CN107193736B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020143731A1 (en) * | 2001-03-29 | 2002-10-03 | Eliezer Levy | Method of executing before-triggers in an active database |
CN1673972A (zh) * | 2004-08-04 | 2005-09-28 | 上海宝信软件股份有限公司 | 数据库表更新的动态监控系统及方法 |
CN101136798A (zh) * | 2007-10-16 | 2008-03-05 | 中兴通讯股份有限公司 | 一种数据配置自动化测试系统和方法 |
CN102982126A (zh) * | 2012-11-14 | 2013-03-20 | 浙江星汉信息技术有限公司 | 一种数据库表数据实时推送的方法及其系统 |
CN104965879A (zh) * | 2015-06-12 | 2015-10-07 | 小米科技有限责任公司 | 修改数据表的表结构的方法及装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109976968A (zh) * | 2017-12-27 | 2019-07-05 | 航天信息股份有限公司 | 一种获取数据库变化表数据的方法、装置、介质及设备 |
CN108399246A (zh) * | 2018-03-01 | 2018-08-14 | 金蝶软件(中国)有限公司 | 一种目标数据的定位方法以及相关装置 |
CN110688295A (zh) * | 2018-07-06 | 2020-01-14 | 北京京东尚科信息技术有限公司 | 数据测试方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107193736B (zh) | 2020-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101266606B (zh) | 一种基于Oracle数据库的在线数据迁移方法 | |
US9104709B2 (en) | Cleansing a database system to improve data quality | |
CN108491326B (zh) | 测试行为重组方法、装置及存储介质 | |
CN113688288B (zh) | 数据关联分析方法、装置、计算机设备和存储介质 | |
CN108845940A (zh) | 一种企业级信息系统自动化功能测试方法和系统 | |
CN104182335A (zh) | 软件测试方法和装置 | |
CN107193736A (zh) | 测试方法、装置、电子设备以及存储介质 | |
WO2024060452A1 (zh) | 信号路径自动提取方法、系统、设备和存储介质 | |
CN111124872A (zh) | 基于差异代码分析的分支检测方法、装置及存储介质 | |
Berndt et al. | Investigating the performance of genetic algorithm-based software test case generation | |
CN109408361A (zh) | Monkey测试复原方法、装置、电子设备及计算机可读存储介质 | |
CN111259212B (zh) | 一种遥测数据判读方法、装置、设备及存储介质 | |
CN113836237A (zh) | 对数据库的数据操作进行审计的方法及装置 | |
CN107038117A (zh) | 一种基于事件处理函数间定义‑引用的web自动化测试方法 | |
Eken et al. | Predicting defects with latent and semantic features from commit logs in an industrial setting | |
CN111078671A (zh) | 数据表字段的修改方法、装置、设备和介质 | |
CN109298686A (zh) | 用于针对基于规则的制造工艺设计使用商业智能的系统和方法 | |
CN104216986A (zh) | 以数据更新周期进行预操作提高数据查询效率的装置及方法 | |
CN110727538B (zh) | 一种基于模型命中概率分布的故障定位系统及方法 | |
BELL et al. | Model-based mutation testing using pushdown automata | |
CN114253853A (zh) | 一种基于网络谱的软件故障定位方法 | |
CN106776607A (zh) | 搜索引擎操作行为处理方法和装置 | |
Yano et al. | Moderate detection and removal of omnipresent modules in software clustering | |
CN113495831A (zh) | 基于关键字生成测试用例的方法、系统、设备及介质 | |
CN118503270B (zh) | 一种nl2sql数据集构建方法、装置、设备及介质 |
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 |