CN109542765A - 数据库脚本验证方法、装置、计算机设备和存储介质 - Google Patents
数据库脚本验证方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN109542765A CN109542765A CN201811213182.5A CN201811213182A CN109542765A CN 109542765 A CN109542765 A CN 109542765A CN 201811213182 A CN201811213182 A CN 201811213182A CN 109542765 A CN109542765 A CN 109542765A
- Authority
- CN
- China
- Prior art keywords
- test
- database script
- bug
- script
- 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.)
- Pending
Links
- 238000013515 script Methods 0.000 title claims abstract description 148
- 238000000034 method Methods 0.000 title claims abstract description 55
- 238000012795 verification Methods 0.000 title claims abstract description 31
- 238000012360 testing method Methods 0.000 claims abstract description 255
- 238000013461 design Methods 0.000 claims abstract description 27
- 235000013399 edible fruits Nutrition 0.000 claims description 6
- 230000008439 repair process Effects 0.000 claims description 5
- 239000000284 extract Substances 0.000 claims description 3
- 230000008569 process Effects 0.000 description 14
- 230000006870 function Effects 0.000 description 8
- 238000004458 analytical method Methods 0.000 description 7
- 238000011161 development Methods 0.000 description 6
- 238000007726 management method Methods 0.000 description 4
- 238000011017 operating method Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000005259 measurement Methods 0.000 description 3
- 238000013524 data verification Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 238000010998 test method Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000013522 software testing Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
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
技术领域
本发明涉及软件测试技术领域,尤其涉及一种数据库脚本验证方法、装置、计算机设备和存储介质。
背景技术
数据库脚本是用于创建数据库对象的语句的集合,生成数据库项目时,预先部署脚本、数据库对象定义和后期部署脚本合并为一个生成脚本。只能指定一个预先部署脚本和一个后期部署脚本,但可在预先部署脚本和后期部署脚本中包含其他脚本。数据库脚本包含存储过程,事务,索引,触发器,函数等。使用数据库脚本可以提高数据访问的效率,并能进行相关的数据处理。
目前项目测试流程都是开发提测按照开发提测功能进行数据验证,生成的业务数据是否正确和是否按照开发实现逻辑来实现,没有一个验证衡量的标准,开发的实现代码逻辑,查询统计结构化查询语言(StructuredQueryLanguage,简称SQL)等是否满足业务要求,没有从测试角度评判它是正确的还是错误的,这就导致了开发实现代码不一定是正确的开发,实现逻辑不一定满足业务要求,开发实现查询统计SQL也不一定满足业务需求,因此应该先从批判的角度预设它们是错误的,然后从实现逻辑上去验证它们给出的结果是正确的还是错误的。此外,在传统验证查询统计SQL的过程中,一般是通过测试编写的SQL,复杂的SQL可能要写很多行,关系较复杂,不易编写和不便于维护。
发明内容
有鉴于此,有必要针对现有项目测试流程都是按照开发提测功能进行数据验证,而缺乏从实现逻辑上去验证它们给出的结果是正确的还是错误的问题,提供一种数据库脚本验证方法、装置、计算机设备和存储介质。
一种数据库脚本验证方法,包括如下步骤:
获取项目需求文档和开发设计文档,根据所述项目需求文档和所述开发设计文档生成测试方案;
获取数据库脚本,根据所述测试方案对所述数据库脚本进行测试并得到第一测试结果;
执行所述数据库脚本,并得到执行结果;
比较所述第一测试结果和所述执行结果,在两者一致时,验证通过,并确认所述数据库脚本正确,在两者不一致时,验证失败,并确认所述数据库脚本存在错误。
在其中一个实施例中,所述获取项目需求文档和开发设计文档,根据所述项目需求文档和所述开发设计文档生成测试方案,包括:
获取所述项目需求文档,所述项目需求文档包含多个功能需求;
根据所述功能需求设置测试场景,一所述功能需求对应一所述测试场景;
根据每一所述测试场景生成对应所述测试场景的预期结果;
获取每一所述测试场景需要的测试数据;
根据所述测试场景、所述预期结果和所述测试数据形成所述测试方案。
在其中一个实施例中,所述获取数据库脚本,根据所述测试方案对所述数据库脚本进行测试并得到第一测试结果,包括:
获取所述数据库脚本;
对所述数据库脚本按照每一所述测试场景进行测试并得到每一所述测试场景的测试结果;
判断每一所述测试场景的所述测试结果与对应的所述预期结果是否相同,若相同,则所述测试场景测试通过,得到第二测试结果,若不同,确认所述测试场景的所述测试结果是否有bug,如果有,则所述记录bug,并跟踪所述bug对所述bug进行修复,直到所述测试场景通过,得到所述第二测试结果;
当全部测试场景通过,获取全部第二测试结果,根据全部所述第二测试结果得到所述第一测试结果。
在其中一个实施例中,所述执行所述数据库脚本,并得到执行结果,包括:
预先编制多个所述数据库脚本的执行语句,对多个所述执行语句进行标记并排序;
根据多个所述执行语句的顺序执行所述数据库脚本并得到所述执行结果。
在其中一个实施例中,所述比较所述第一测试结果和所述执行结果,在两者一致时,验证通过,并确认所述数据库脚本正确,在两者不一致时,验证失败,并确认所述数据库脚本存在错误,包括:
确认所述数据库脚本是否有bug,如果有bug,则记录缺陷管理系统并跟踪所述bug,直到问题解决,验证通过。
在其中一个实施例中,所述判断每一所述测试场景的所述测试结果与对应的所述预期结果是否相同,若相同,则所述测试场景测试通过,得到第二测试结果,若不同,确认所述测试场景的所述测试结果是否有bug,如果有,则记录所述bug,并跟踪所述bug,对所述bug进行修复,直到所述测试场景通过,得到所述第二测试结果,包括对所述bug进行修复的方法,具体包括:
获取所述bug的记录信息;
提取所述bug的记录信息中的关键词并根据所述关键词在故障修复列表中检索匹配历史bug的信息,调用命中的历史bug的解决方法修复bug,所述故障修复列表中存储在前发生的bug信息及对应的解决方法;
若所述故障修复列表中没有命中历史bug信息,则根据当前bug制作修复补丁解决bug,并将当前的解决方案记录在所述故障修复列表中。
在其中一个实施例中,所述获取每一所述测试场景需要的测试数据,包括:
获取可执行的SQL脚本,所述SQL脚本携带有用于查询所述测试数据的变量;
在目标数据库中执行所述SQL脚本后获取所述测试数据。
一种数据库脚本验证装置,包括如下模块:
测试方案生成模块,设置为获取项目需求文档和开发设计文档,根据所述项目需求文档和所述开发设计文档生成测试方案;
测试模块,设置为获取数据库脚本,根据所述测试方案对所述数据库脚本进行测试并得到第一测试结果;
执行模块,设置为执行所述数据库脚本,并得到执行结果;
结果验证模块,设置为比较所述第一测试结果和所述执行结果,在两者一致时,验证通过,并确认所述数据库脚本正确,在两者不一致时,验证失败,并确认所述数据库脚本存在错误。
一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被一个或多个所述处理器执行时,使得一个或多个所述处理器执行上述数据库脚本验证方法的步骤。
一种存储有计算机可读指令的存储介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个所述处理器执行上述数据库脚本验证方法的步骤。
上述数据库脚本验证方法、装置、计算机设备和存储介质,包括:获取项目需求文档和开发设计文档,根据所述项目需求文档和所述开发设计文档生成测试方案;获取数据库脚本,根据所述测试方案对所述数据库脚本进行测试并得到第一测试结果;执行所述数据库脚本,并得到执行结果;比较所述第一测试结果和所述执行结果,在两者一致时,验证通过,并确认所述数据库脚本正确,在两者不一致时,验证失败,并确认所述数据库脚本存在错误,确认所述数据库脚本是否有bug,如果有,记录缺陷管理系统并跟踪所述bug,直到问题解决,验证通过。本技术方案基于项目的业务功能需求编写测试方案并对数据库脚本进行测试,并将测试结果与实际执行结果进行对比,从实现逻辑上验证了数据库脚本给出的结果是正确的还是错误的。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。
图1为本发明的一种数据库脚本验证方法的整体流程图;
图2为本发明的一种数据库脚本验证方法中的测试方案生成过程的示意图;
图3为本发明的一种数据库脚本验证方法中的测试过程的示意图;
图4为本发明的一种数据库脚本验证装置的结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。
图1为本发明的一种数据库脚本验证方法的整体流程图,如图所示,在一个实施例中,一种数据库脚本验证方法包括步骤S1~S4。
步骤S1,获取项目需求文档和开发设计文档,根据所述项目需求文档和所述开发设计文档生成测试方案。
其中,项目需求文档是在项目开发之前,由开发人员编写的开发方案的文档,项目需求文档包括:对项目的描述、项目成员、项目开发环境和功能需求分析等,项目需求文档展示了功能实现的目标,其包含多个功能需求。开发设计文档是项目开发人员编写的关于项目开发的功能设定、设计思路和项目开发技术等,项目需求文档和开发设计文档是生成测试方案的主要参考标准。测试方案包括:测试计划、人员安排、测试文档准备、测试通过标准和测试风险识别。
其中,所述测试方案的生成包括需求分析阶段、测试计划阶段、测试设计阶段以及测试方案阶段。
其中,需求分析阶段主要是对业务的学习,分析用户的需求点,需求分析阶段是形成项目需求文档的基础。
其中,测试计划阶段是测试组长根据SOW开始编写测试计划,包括人员,软件硬件资源,测试点,集成顺序,进度安排和风险识别等内容。
其中,测试设计阶段即测试方案设计阶段,一般由对用户需求非常熟悉的高资深的测试工程师设计,测试方案要求根据SRS上的每个需求点设计出包括需求点简介,测试思路和详细测试方法三部分的方案,测试方案编写完成后还需要进行评审。
其中,测试方案阶段,主要是对测试案例和规程的设计。测试案例是根据测试方案来编写的,在测试方案阶段,测试人员对整个系统需求有了详细的理解,这时开始编写案例才能保证案例的可执行和对需求的覆盖。测试案例需要包括测试场景设置、测试项、案例级别、预置条件、操作步骤、预期结果和测试数据。其中操作步骤和预期结果需要编写详细和明确。测试案例应该覆盖测试方案,而测试方案又覆盖了测试需求点,这样才能保证用户需求不遗漏。
其中,功能需求可以是任一现有技术中的功能需求,比如订单列表查询,该功能可以按照销售渠道、用户、用户类型、订单类型(理财类订单,保险类订单,基金类订单等)、商品信息、订单状态以及订单创建时间等查询。
步骤S2,获取数据库脚本,根据所述测试方案对所述数据库脚本进行测试并得到第一测试结果。
上述步骤执行时,启动生成的测试方案,并设置能够提供被测数据库脚本所需数据的数据库环境,根据生成的测试方案对数据库脚本进行测试,生成测试结果文件,测试结果文件中包含了第一测试结果。
其中,测试执行过程中,要加强测试过程记录,如果测试执行步骤与测试案例中描述的有差异,记录下来,作为日后更新测试案例的依据。
其中,测试执行过程中,如果确认发现了数据库脚本的缺陷,要及时提交问题报告单。
步骤S3,执行所述数据库脚本,并得到执行结果。
上述步骤执行时,预先编制多个所述数据库脚本的执行语句,对多个所述执行语句进行标记并排序,根据多个所述执行语句的顺序执行所述数据库脚本并得到所述执行结果。
步骤S4,比较所述第一测试结果和所述执行结果,在两者一致时,验证通过,并确认所述数据库脚本正确,在两者不一致时,验证失败,并确认所述数据库脚本存在错误。
上述步骤执行时,将测试结果文件与数据库脚本执行时生成的实际执行结果文件放在结果对比模块,一一对比测试结果和实际执行结果是否一致,两者一致时,验证通过,说明数据库脚本是正确的。若两者不一致,提示验证不通过,说明数据库脚本存在错误,及时提交有质量的bug、测试日报和测试报告等相关文档。
本实施例,根据功能需求编写测试方案,通过测试方案对数据库脚本进行测试以及执行数据库脚本,将两种结果进行对比,从对比的结果验证数据库脚本是否正确,从实现的逻辑上验证了数据库脚本给出的结果是正确的还是错误的,更是验证了数据库脚本。
在一个实施例中,如图2所示,本发明的一种数据库脚本验证方法中的测试方案生成过程,包括步骤S101~S105。
步骤S101,获取所述项目需求文档,所述项目需求文档包含多个功能需求。
步骤S102,根据所述功能需求设置测试场景,一所述功能需求对应一所述测试场景。
上述步骤执行时,对每一个功能需求设置一个对应的测试场景,应用场景法进行场景分析和模拟,这样便生成了多个测试场景。
其中,场景法是通过运用场景来对系统的功能点或业务流程的描述,从而提高测试效果的一种方法。场景测试是指模拟特定场景边界发生的事情,通过事件来触发某个动作的发生,观察事件的最终结果,从而用来发现需求中存在的问题。通常以正常的案例场景分析开始,然后再着手其他的场景分析。场景法一般包含基本流和备用流,从一个流程开始,通过描述经过的路径来确定的过程,经过遍历所有的基本流和备用流来完成整个场景。
其中,所述场景主要包括4种主要的类型:正常的用例场景,备选的用例场景,异常的用例场景,假定推测的场景。
步骤S103,根据每一所述测试场景生成对应所述测试场景的预期结果。
上述步骤执行时,每个测试场景对应一个功能需求,在每个测试场景中,根据功能需求填写实现功能需求的功能设定,根据功能设定就可以生成对应测试场景的预期结果。
步骤S104,获取每一所述测试场景需要的测试数据。
上述步骤执行时,使用SQL查询脚本在目标数据库中查询每一所述测试场景需要的测试数据。
步骤S105,根据所述测试场景、所述预期结果和所述测试数据形成所述测试方案。
上述步骤执行时,所有的测试场景,每一测试场景对应的预期结果以及每一测试场景需要的测试数据形成了一个完整的测试方案。
其中,所述测试方案包含测试场景设置、测试项、案例级别、预置条件、操作步骤、预期结果和测试数据,其中操作步骤和预期结果需要编写详细和明确。
本实施例,明确了测试案例的形成过程以及测试方案的编写过程,通过测试场景的设置、预期结果的编写以及测试数据的准备,为后续进行测试提供了测试依据。
在一个实施例中,如图3所示,本发明的一种数据库脚本验证方法中的测试过程,包括步骤S201~S204:
步骤S201,获取所述数据库脚本。
步骤S202,对所述数据库脚本按照每一所述测试场景进行测试并得到每一所述测试场景的测试结果。
上述步骤执行时,首先,接收测试端发送的场景测试请求信息;其次,对测试端发送的请求信息进行解析,并确定测试端请求的场景;接着,根据该场景配置本地文件的代理信息,执行配置后的本地文件,以使页面跳转至该场景,并将该场景测试得到的测试结果返回至上述测试端。以此类推,对所有测试场景执行以上步骤,得到所有测试场景的测试结果。最后,测试端对所有测试结果进行解析,生成测试报告。
步骤S203,判断每一所述测试场景的所述测试结果与对应的所述预期结果是否相同,若相同,则所述测试场景测试通过,得到第二测试结果,若不同,确认所述测试场景的所述测试结果是否有bug,如果有,则记录所述bug,并跟踪所述bug,对所述bug进行修复,直到所述测试场景通过,得到所述第二测试结果。
步骤S204,当所有测试场景通过,获取全部所述第二测试结果,根据全部所述第二测试结果得到所述第一测试结果。
上述步骤执行时,每一个测试场景通过会得到一个第二测试结果,所有第二测试结果组成第一测试结果。
本实施例,通过对每一个场景的测试,将每个场景测试的结果与预期结果严格对比,使得输出的测试结果严格符合用户的业务需求,使后续的验证更加顺利。
在一个实施例中,执行所述数据库脚本后获得实际执行结果,包括如下具体步骤:
预先编制多个所述数据库脚本的执行语句,对多个所述执行语句进行标记并排序;
根据多个所述执行语句的顺序执行所述数据库脚本并得到所述实际执行结果。
本实施例,通过对多个执行语句进行标记并排序,提高了数据库脚本的执行效率和准确度。
在一个实施例中,对数据库脚本验证失败的处理,包括如下步骤:
确认所述数据库脚本是否有bug,如果有bug,则记录缺陷管理系统并跟踪所述bug,直到问题解决,验证通过。
数据库脚本验证失败,即测试结果和实际执行结果不一致,数据库脚本可能存在错误,使用bug追踪器确认所述数据库脚本是否有bug,如果有bug,则记录缺陷管理系统并跟踪所述bug,使用bug修复方法修复所述bug,直到问题解决,验证通过。
在一个实施例中,对所述bug进行修复的方法,包括:
获取所述bug的记录信息;
提取所述bug的记录信息中的关键词并根据所述关键词在故障修复列表中检索匹配历史bug的信息,调用命中的历史bug的解决方法修复bug,所述故障修复列表中存储在前发生的bug信息及对应的解决方法;
若所述故障修复列表中没有命中历史bug信息,则根据当前bug制作修复补丁解决bug,并将当前的解决方案记录在所述故障修复列表中。
本实施例,通过bug的关键词匹配历史bug的信息,从而调用历史bug的解决方法修复bug,减少了bug修复的工作量,并能快速准确的修复bug,从而提高了测试效率。
在一个实施例中,获取每一所述测试场景需要的测试数据,包括:
获取可执行的SQL脚本,所述SQL脚本携带有用于查询所述测试数据的变量;
在目标数据库中执行所述SQL脚本后获取所述测试数据。
在其中一个优选的实施例中,获取SQL脚本的方法,可以调用界面化脚本编写工具SimpleSQL编写SQL脚本。测试人员编写SQL脚本往往有一定的困难,故在提出本测试方法时,用到了界面化脚本编写工具。界面化脚本编写工具使得SQL脚本的编写更加快捷,使用界面化脚本编写工具,即使不熟悉SQL脚本编写的测试人员也能够更快更好的完成SQL脚本的编写。
界面化脚本编写工具SimpleSQL是一个Java开发的单文件关系数据库,可以嵌入使用,可以在内存中保持数据,也可以以C-S模式使用,还可以用作其他多个数据库的代理,通过在该工具中选择需要创建数据的业务类型,根据不同的业务类型会有不同必输字段信息,输入必要字段信息值,信息输入完毕后点击提交按钮后就可以完成有关SQL脚本的编写;还可以选择需要查询的表,关联方式,需要关联表,关联的条件,where添加编写,所有信息填写好后,点击执行后能够查询出满足条件的数据。
本实施例,调用界面化脚本编写工具SimpleSQL编写SQL脚本,获取测试所需的测试数据,减轻了测试人员的工作量,提高了测试人员的工作效率。
在一个实施例中,提供了一种数据库脚本验证装置,如图4所示,包括如下模块:
测试方案生成模块,设置为获取项目需求文档和开发设计文档,根据所述项目需求文档和所述开发设计文档生成测试方案;
测试模块,设置为获取数据库脚本,根据所述测试方案对所述数据库脚本进行测试并得到第一测试结果;
执行模块,设置为执行所述数据库脚本,并得到执行结果;
结果验证模块,设置为比较所述第一测试结果和所述执行结果,在两者一致时,验证通过,并确认所述数据库脚本正确,在两者不一致时,验证失败,并确认所述数据库脚本存在错误。
在一个实施例中,提出了一种计算机设备,包括存储器和处理器,存储器中存储有计算机可读指令,计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行计算机可读指令时实现上述各实施例中所述的数据库脚本验证方法的步骤。
在一个实施例中,提出了一种存储有计算机可读指令的存储介质,计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述各实施例中所述的数据库脚本验证方法的步骤。其中,所述存储介质可以为非易失性存储介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、磁盘或光盘等。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明一些示例性实施例,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种数据库脚本验证方法,其特征在于,包括如下步骤:
获取项目需求文档和开发设计文档,根据所述项目需求文档和所述开发设计文档生成测试方案;
获取数据库脚本,根据所述测试方案对所述数据库脚本进行测试并得到第一测试结果;
执行所述数据库脚本,并得到执行结果;
比较所述第一测试结果和所述执行结果,在两者一致时,验证通过,并确认所述数据库脚本正确,在两者不一致时,验证失败,并确认所述数据库脚本存在错误。
2.根据权利要求1所述的数据库脚本验证方法,其特征在于,所述获取项目需求文档和开发设计文档,根据所述项目需求文档和所述开发设计文档生成测试方案,包括:
获取所述项目需求文档,所述项目需求文档包含多个功能需求;
根据所述功能需求设置测试场景,一所述功能需求对应一所述测试场景;
根据每一所述测试场景生成对应所述测试场景的预期结果;
获取每一所述测试场景需要的测试数据;
根据所述测试场景、所述预期结果和所述测试数据形成所述测试方案。
3.根据权利要求2所述的数据库脚本验证方法,其特征在于,所述获取数据库脚本,根据所述测试方案对所述数据库脚本进行测试并得到第一测试结果,包括:
获取所述数据库脚本;
对所述数据库脚本按照每一所述测试场景进行测试并得到每一所述测试场景的测试结果;
判断每一所述测试场景的所述测试结果与对应的所述预期结果是否相同,若相同,则所述测试场景测试通过,得到第二测试结果,若不同,确认所述测试场景的所述测试结果是否有bug,如果有,则记录所述bug,并跟踪所述bug,对所述bug进行修复,直到所述测试场景通过,得到所述第二测试结果;
当全部测试场景通过,获取全部第二测试结果,根据全部所述第二测试结果得到所述第一测试结果。
4.根据权利要求1所述的数据库脚本验证方法,其特征在于,所述执行所述数据库脚本,并得到执行结果,包括:
预先编制多个所述数据库脚本的执行语句,对多个所述执行语句进行标记并排序;
根据多个所述执行语句的顺序执行所述数据库脚本并得到所述执行结果。
5.根据权利要求1所述的数据库脚本验证方法,其特征在于,所述比较所述第一测试结果和所述执行结果,在两者一致时,验证通过,并确认所述数据库脚本正确,在两者不一致时,验证失败,并确认所述数据库脚本存在错误,包括:
确认所述数据库脚本是否有bug,如果有bug,则记录缺陷管理系统并跟踪所述bug,直到问题解决,验证通过。
6.根据权利要求3所述的数据库脚本验证方法,其特征在于,所述判断每一所述测试场景的所述测试结果与对应的所述预期结果是否相同,若相同,则所述测试场景测试通过,得到第二测试结果,若不同,确认所述测试场景的所述测试结果是否有bug,如果有,则记录所述bug,并跟踪所述bug,对所述bug进行修复,直到所述测试场景通过,得到所述第二测试结果,包括对所述bug进行修复的方法,具体包括:
获取所述bug的记录信息;
提取所述bug的记录信息中的关键词并根据所述关键词在故障修复列表中检索匹配历史bug的信息,调用命中的历史bug的解决方法修复bug,所述故障修复列表中存储在前发生的bug信息及对应的解决方法;
若所述故障修复列表中没有命中历史bug信息,则根据当前bug制作修复补丁解决bug,并将当前的解决方案记录在所述故障修复列表中。
7.根据权利要求2所述的数据库脚本验证方法,其特征在于,所述获取每一所述测试场景需要的测试数据,包括:
获取可执行的SQL脚本,所述SQL脚本携带有用于查询所述测试数据的变量;
在目标数据库中执行所述SQL脚本后获取所述测试数据。
8.一种数据库脚本验证装置,包括如下模块:
测试方案生成模块,设置为获取项目需求文档和开发设计文档,根据所述项目需求文档和所述开发设计文档生成测试方案;
测试模块,设置为获取数据库脚本,根据所述测试方案对所述数据库脚本进行测试并得到第一测试结果;
执行模块,设置为执行所述数据库脚本,并得到执行结果;
结果验证模块,设置为比较所述第一测试结果和所述执行结果,在两者一致时,验证通过,并确认所述数据库脚本正确,在两者不一致时,验证失败,并确认所述数据库脚本存在错误。
9.一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被一个或多个所述处理器执行时,使得一个或多个所述处理器执行如权利要求1至7中任一项所述的数据库脚本验证方法的步骤。
10.一种存储有计算机可读指令的存储介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个所述处理器执行如权利要求1至7中任一项所述的数据库脚本验证方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811213182.5A CN109542765A (zh) | 2018-10-18 | 2018-10-18 | 数据库脚本验证方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811213182.5A CN109542765A (zh) | 2018-10-18 | 2018-10-18 | 数据库脚本验证方法、装置、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109542765A true CN109542765A (zh) | 2019-03-29 |
Family
ID=65844236
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811213182.5A Pending CN109542765A (zh) | 2018-10-18 | 2018-10-18 | 数据库脚本验证方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109542765A (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110109837A (zh) * | 2019-05-06 | 2019-08-09 | 上海蔚来汽车有限公司 | 集成测试方法、装置以及控制器和介质 |
CN110471719A (zh) * | 2019-08-16 | 2019-11-19 | 北京明略软件系统有限公司 | 脚本文件的运行方法及装置、存储介质、电子装置 |
CN110764998A (zh) * | 2019-09-06 | 2020-02-07 | 平安健康保险股份有限公司 | 基于Django框架的数据比对方法、装置、设备及存储介质 |
CN111831537A (zh) * | 2019-04-18 | 2020-10-27 | 天津市元坤科技发展有限公司 | 一种人工智能开发系统的高效性能测试方法 |
CN111881020A (zh) * | 2020-07-07 | 2020-11-03 | 上海中通吉网络技术有限公司 | 支付中心接口测试方法、装置和系统 |
CN112328482A (zh) * | 2020-11-05 | 2021-02-05 | 中国平安人寿保险股份有限公司 | 基于脚本模板的测试方法、装置、计算机设备和存储介质 |
CN112434309A (zh) * | 2020-12-18 | 2021-03-02 | 国网河北省电力有限公司电力科学研究院 | 渗透测试方法、装置、设备和存储介质 |
CN112463627A (zh) * | 2020-12-10 | 2021-03-09 | 北京明略软件系统有限公司 | 用于企业微信的测试方法、系统、电子设备及存储介质 |
CN113239016A (zh) * | 2021-06-01 | 2021-08-10 | 通号智慧城市研究设计院有限公司 | 数据库设计辅助装置和方法 |
CN115858366A (zh) * | 2022-12-13 | 2023-03-28 | 北京水木羽林科技有限公司 | 一种基于文法生成的数据库自动测试方法及系统 |
CN116909936A (zh) * | 2023-09-13 | 2023-10-20 | 深圳市智慧城市科技发展集团有限公司 | 大数据自动化测试方法、设备及可读存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107665171A (zh) * | 2017-10-11 | 2018-02-06 | 中国民生银行股份有限公司 | 自动回归测试方法及装置 |
CN108009087A (zh) * | 2017-11-29 | 2018-05-08 | 广州品唯软件有限公司 | 数据库测试方法、装置及计算机可读存储介质 |
-
2018
- 2018-10-18 CN CN201811213182.5A patent/CN109542765A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107665171A (zh) * | 2017-10-11 | 2018-02-06 | 中国民生银行股份有限公司 | 自动回归测试方法及装置 |
CN108009087A (zh) * | 2017-11-29 | 2018-05-08 | 广州品唯软件有限公司 | 数据库测试方法、装置及计算机可读存储介质 |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111831537A (zh) * | 2019-04-18 | 2020-10-27 | 天津市元坤科技发展有限公司 | 一种人工智能开发系统的高效性能测试方法 |
CN110109837A (zh) * | 2019-05-06 | 2019-08-09 | 上海蔚来汽车有限公司 | 集成测试方法、装置以及控制器和介质 |
CN110109837B (zh) * | 2019-05-06 | 2023-10-13 | 上海蔚来汽车有限公司 | 集成测试方法、装置以及控制器和介质 |
CN110471719A (zh) * | 2019-08-16 | 2019-11-19 | 北京明略软件系统有限公司 | 脚本文件的运行方法及装置、存储介质、电子装置 |
CN110764998B (zh) * | 2019-09-06 | 2024-04-02 | 平安健康保险股份有限公司 | 基于Django框架的数据比对方法、装置、设备及存储介质 |
CN110764998A (zh) * | 2019-09-06 | 2020-02-07 | 平安健康保险股份有限公司 | 基于Django框架的数据比对方法、装置、设备及存储介质 |
CN111881020A (zh) * | 2020-07-07 | 2020-11-03 | 上海中通吉网络技术有限公司 | 支付中心接口测试方法、装置和系统 |
CN111881020B (zh) * | 2020-07-07 | 2024-04-09 | 上海中通吉网络技术有限公司 | 支付中心接口测试方法、装置和系统 |
CN112328482A (zh) * | 2020-11-05 | 2021-02-05 | 中国平安人寿保险股份有限公司 | 基于脚本模板的测试方法、装置、计算机设备和存储介质 |
CN112463627A (zh) * | 2020-12-10 | 2021-03-09 | 北京明略软件系统有限公司 | 用于企业微信的测试方法、系统、电子设备及存储介质 |
CN112434309A (zh) * | 2020-12-18 | 2021-03-02 | 国网河北省电力有限公司电力科学研究院 | 渗透测试方法、装置、设备和存储介质 |
CN113239016A (zh) * | 2021-06-01 | 2021-08-10 | 通号智慧城市研究设计院有限公司 | 数据库设计辅助装置和方法 |
CN113239016B (zh) * | 2021-06-01 | 2024-04-02 | 通号智慧城市研究设计院有限公司 | 数据库设计辅助装置和方法 |
CN115858366B (zh) * | 2022-12-13 | 2024-03-29 | 北京水木羽林科技有限公司 | 一种基于文法生成的数据库自动测试方法及系统 |
CN115858366A (zh) * | 2022-12-13 | 2023-03-28 | 北京水木羽林科技有限公司 | 一种基于文法生成的数据库自动测试方法及系统 |
CN116909936A (zh) * | 2023-09-13 | 2023-10-20 | 深圳市智慧城市科技发展集团有限公司 | 大数据自动化测试方法、设备及可读存储介质 |
CN116909936B (zh) * | 2023-09-13 | 2024-05-14 | 深圳市智慧城市科技发展集团有限公司 | 大数据自动化测试方法、设备及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109542765A (zh) | 数据库脚本验证方法、装置、计算机设备和存储介质 | |
Kaur et al. | Comparative study of automated testing tools: Testcomplete and quicktest pro | |
Kellner et al. | Software process modeling example problem | |
US20040073890A1 (en) | Method and system for test management | |
Neto et al. | A regression testing approach for software product lines architectures | |
CN106227654B (zh) | 一种测试平台 | |
KR20130028207A (ko) | 웹 기반의 소프트웨어 개발 및 테스트 자동화 장치 | |
Jönsson et al. | Impact analysis | |
Khan et al. | Software standards and software failures: a review with the perspective of varying situational contexts | |
Firth et al. | A guide to the classification and assessment of software engineering tools | |
US20190303279A1 (en) | Modeling system | |
Putro et al. | Software verification and validation on object oriented software development using traceability matrix | |
Silva et al. | Experience report: orthogonal classification of safety critical issues | |
Nikiforova et al. | Towards a Business Process Model-based Testing of Information Systems Functionality. | |
Lindholm | Economics of Test Automation: Test case selection for automation | |
Odia | Testing in software product lines | |
Aziz | Exploring a keyword driven testing framework: A case study at Scania IT | |
US20160246708A1 (en) | Recording an application test | |
Zhou | Requirements development and management of embedded real-time systems | |
Asefa | A Review of Automatic Generation of Test Cases from Use Case Specification | |
Jirapanthong | Personal software process with automatic requirements traceability to support startups | |
Ibrahim et al. | An Experimental Design Method for Evaluating Usability Factors of the Rechap Process Model | |
Hellmann | Automated GUI Testing for Agile Development Environments | |
Kok | Tracing Requirements in an Insurance Software Development Company | |
Polepalle et al. | Evidence and perceptions on GUI test automation: An explorative Multi-Case study |
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 |