CN109408366A - 数据源配置测试方法、系统、计算机设备和存储介质 - Google Patents
数据源配置测试方法、系统、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN109408366A CN109408366A CN201811020295.3A CN201811020295A CN109408366A CN 109408366 A CN109408366 A CN 109408366A CN 201811020295 A CN201811020295 A CN 201811020295A CN 109408366 A CN109408366 A CN 109408366A
- Authority
- CN
- China
- Prior art keywords
- data
- test
- case frame
- normal
- group
- 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
- 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
-
- 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)
Abstract
本发明涉及软件测试技术领域,尤其涉及一种数据源配置测试方法、系统、计算机设备和存储介质。一种数据源配置测试方法,包括如下步骤:从数据源中获取符合正常流程的第一正常数据组,启动数据生成工具对所述第一正常数据组进行加工生成带有异常数据的非正常数据组;从所述数据源中再获取符合正常流程的第二正常数据组,抽取所述非正常数据组中的部分数据和所述第二正常数据组中的部分数据封装成一层验证用例框架;调用拦截器,对异常数据进行测试,并将测试结果带入到正在进行的业务流程中,通过观测所述业务流程运行的结果以验证测试结果的准确性。本发明通过对数据的分组整合,可以自动化完成异常场景的覆盖,并在回归测试时无需人工介入。
Description
技术领域
本发明涉及软件测试技术领域,尤其涉及一种数据源配置测试方法、系统、计算机设备和存储介质。
背景技术
数据源是指数据库应用程序所使用的数据库或者数据库服务器,是提供所需要数据的器件或原始媒体。在数据源中存储了所有建立数据库连接的信息,就像通过指定文件名称可以在文件系统中找到文件一样,通过提供正确的数据源名称,你可以找到相应的数据库连接。
通用的测试流程只能测试真实场景中的大多数正常情况,不能覆盖异常的流程分支。如要覆盖,需要手动制造异常数据,这样会打断测试的过程,无法实现自动化。
目前,在进行大规模的集成测试过程中,当一个测试涉及多个系统时,各个系统对测试要求场景很难满足步调一致,特别是当测试涉及多个系统时,各个系统对测试要求场景很难满足步调一致,特别是当测试要求同时满足个别业务异常场景测试以及其他业务正常场景测试的要求,这时针对特定业务进行定向异常场景模拟的测试方法就显得尤为重要。
发明内容
有鉴于此,有必要针对进行大规模的软件集成测试过程中无法满足多场景需要的问题,提供一种数据源配置测试方法、系统、计算机设备和存储介质。
一种数据源配置测试方法,包括如下步骤:
从数据源中获取符合正常流程的第一正常数据组,启动数据生成工具对所述第一正常数据组进行加工生成带有异常数据的非正常数据组;
从所述数据源中再获取符合正常流程的第二正常数据组,抽取所述非正常数据组中的部分数据和所述第二正常数据组中的部分数据封装成一验证用例框架,将抽取后剩余的所述非正常数据组中的数据封装成一测试用例框架,将抽取后剩余的所述第二正常数据组封装成一对比用例框架;
调用拦截器,依次对所述测试用例框架、所述对比用例框架和所述验证用例框架进行异常数据测试,并将测试结果带入到正在进行的业务流程中,通过观测所述业务流程运行的结果以验证测试结果的准确性。
在其中一个实施例中,所述启动数据生成工具对所述第一正常数据组进行加工生成带有异常数据的非正常数据组,包括三种生成所述非正常数据组的方式,具体包括:
添加外部数据至所述第一正常数据组,使所述第一正常数据组中的数据量大于正常值后生成一种所述非正常数据组;
删除所述第一正常数据组中的部分数据,使所述第一正常数据组中的数据量小于正常值后生成另一种所述非正常数据组;
引入所述第一正常数据组中没有的数据替换所述第一正常数据组中的数据后生成所述非正常数据组,用于使所述第一正常数据组在调入程序后程序无法正常运行。
在其中一个实施例中,所述抽取所述非正常数据组中的部分数据和所述第二正常数据组中的部分数据封装成一验证用例框架,包括:
对所述第二正常数据组按照数据生成的时间顺序排序,并根据设定的第一时间节点进行数据分块后生成一组正常数据块;
对所述非正常数据组也按照数据生成的时间顺序进行排序,并根据设定的第二时间节点进行数据分块后生成一组非正常数据块;
抽取一个所述正常数据块和一个所述非正常数据块进行封装形成所述验证用例框架。
在其中一个实施例中,所述调用拦截器,依次对所述测试用例框架、所述对比用例框架和所述验证用例框架进行异常数据测试,并将测试结果带入到正在进行的业务流程中,通过观测所述业务流程运行的结果以验证测试结果的准确性,包括:
根据数据生成时间将所述测试用例框架、所述对比用例框架和所述验证用例框架进行分层,构成数个测试用例框架数据层、对比用例框架数据层和验证用例框架数据层;
启动所述拦截器对所述测试用例框架数据层、所述对比用例框架数据层和所述验证用例框架数据层进行逐层拦截,获得各个所述测试用例框架数据层、所述对比用例框架数据层和所述验证用例框架数据层中是否存在异常数据的数据层测试结果;
将所述数据层测试结果带入到所述正在进行的业务流程中,观测所述业务流程运行的结果,并进行汇总以验证测试结果的准确性。
在其中一个实施例中,所述调用拦截器,依次对所述测试用例框架、所述对比用例框架和所述验证用例框架进行异常数据测试,还包括对所述拦截器对异常数据识别能力的验证,具体包括:
通过所述拦截器的数据初始化方法对所述测试用例框架、所述对比用例框架和所述验证用例框架进行数据初始化处理后生成一组测试用例;
调用所述拦截器的检测方法对初始化处理后的任一所述测试用例进行异常数据检测,以验证所述拦截器对异常数据识别能力;
应用外部数据导入工具导入外部新测试数据到拦截器,使用所述拦截器对所述外部新测试数据进行异常数据识别,然后验证所述拦截器的检测方法对异常数据的识别能力。在其中一个实施例中,
所述调用拦截器,依次对所述测试用例框架、对比用例框架和验证用例框架进行异常数据测试,并将测试结果带入到正在进行的业务流程中,通过观测所述业务流程运行的结果以验证测试结果的准确性,还包括对被带入测试结果后的业务流程的运行情况的判断,具体包括:
若在将所述拦截器对所述测试用例框架进行异常数据测试后生成的测试结果带入至所述业务流程后,所述业务流程仍然正常运行,则对所述拦截器的拦截规则进行修正再次对所述测试例框架中的数据测试,倘若带入异常数据后所述业务流程依旧正常运行,则对所述数据源中的数据进行重新封装;
若在将所述拦截器对所述对比用例框架进行异常数据测试后生成的测试结果带入至所述业务流程后,所述业务流程不能正常运行,则对所述对比用例框架中的数据进行核验,找出异常数据,将其剔除,再将删除异常数据后的所述对比用例框架中的数据带入到所述业务流程中运行。
在其中一个实施例中,在所述启动数据生成工具对所述第一正常数据组进行加工生成带有异常数据的非正常数据组的过程中,包括对生成的所述非正常数据组中是否带有异常数据进行判断,具体包括:
预先留出一个必填数据为空,然后按照边界值等价类设计测试用例的原则来设计其他输入项,构成测试用例:对所述测试用例进行选择查询,检测所述测试用例是否支持切换和保存,如果不支持切换或者保存则说明形成异常数据;
判断删除所述第一正常数据组中的数据是否形成异常数据,删除一个所述第一正常数据组中的数据,将删除后的所述第一正常数据组中的数据带入到该数据所属的原程序中运行,如果所述原程序无法运行则说明形成异常数据。
一种数据源配置测试系统,包括如下单元:
异常数据生成单元,设置为从数据源中获取符合正常流程的第一正常数据组,启动数据生成工具对所述第一正常数据组进行加工生成带有异常数据的非正常数据组;
数据分类封装单元,设置为从所述数据源中再获取符合正常流程的第二正常数据组,抽取所述非正常数据组中的部分数据和所述第二正常数据组中的部分数据封装成一验证用例框架,将抽取后剩余的所述非正常数据组中的数据封装成一测试用例框架,将抽取后剩余的所述第二正常数据组封装成一对比用例框架;
检测验证单元,设置为调用拦截器,依次对所述测试用例框架、所述对比用例框架和所述验证用例框架进行异常数据测试,并将测试结果带入到正在进行的业务流程中,通过观测所述业务流程运行的结果以验证测试结果的准确性。
一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行上述数据源配置测试方法的步骤。
一种存储有计算机可读指令的存储介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述数据源配置测试方法的步骤。
上述数据源配置测试方法、装置、计算机设备和存储介质,包括从数据源中获取符合正常流程的第一正常数据组,启动数据生成工具对所述第一正常数据组进行加工生成带有异常数据的非正常数据组;从所述数据源中再获取符合正常流程的第二正常数据组,抽取所述非正常数据组中的部分数据和所述第二正常数据组中的部分数据封装成一层验证用例框架,将剩余的所述非正常数据组中的数据封装成一层测试用例框架,将所述第二正常数据组封装成一层对比用例框架;调用拦截器,依次对所述测试用例框架、对比用例框架和验证用例框架进行异常数据测试,并将测试结果带入到正在进行的业务流程中,通过观测所述业务流程运行的结果以验证测试结果的准确性。本技术方案针对数据源配置过程中,通过对数据的分组整合,可以自动化完成异常场景的覆盖,并在回归测试时无需人工介入。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。
图1为本发明的一种数据源配置测试方法的整体流程图;
图2为本发明的一种数据源配置测试方法中的三种生成非正常数据组的方式示意图;
图3为本发明的一种数据源配置测试方法中的封装成一层验证用例框架过程示意图;
图4为本发明的一种数据源配置测试系统的结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。
图1为本发明一个实施例中的数据源配置测试方法的流程图,如图1所示,一种数据源配置测试方法,包括以下步骤:
S1、从数据源中获取符合正常流程的第一正常数据组,启动数据生成工具对所述第一正常数据组进行加工生成带有异常数据的非正常数据组;
所谓正常流程就是指将数据源中的数据导入到其所在的程序中,该程序能够通过将这些数据所对应的类型。如一个程序的执行需要的参数为:时间、名称、参数类型和返回值等,则当到达该程序需要执行的时间阈值时,触发此程序使其开始运行,调取该程序名称、参数类型和返回值,运行此程序得到一个该程序运行完成后的结果。如果该程序能够正常运行则说明从数据源中抽取的该程序所需数据的方法正确,否则说明抽取的规则存在着问题,需要对抽取规则进行修正使抽取出的数据能够使程序正常运行。
S2、从所述数据源中再获取符合正常流程的第二正常数据组,抽取所述非正常数据组中的部分数据和所述第二正常数据组中的部分数据封装成一验证用例框架,将抽取后剩余的所述非正常数据组中的数据封装成一测试用例框架,将抽取后剩余的所述第二正常数据组封装成一对比用例框架;
具体的,对数据源中的数据进行封装时采用Python unittest框架,即通过主类的main方法对一个配置文件的进行读取,然后针对所有过程的数据的清洗、初始化;以及装载需要执行的子类到测试套件中进行顺序调用;测试套件是测试用例的集合,一个测试套件可以包括多个测试用例。如果两个测试用例在业务场景上有依赖关系,可以把两个测试用例放到一个测试套件中执行。主类中调用测试套件,测试套件调用测试用例,因此能实现多个业务代码集成测试的目的。再在子类的setup()方法中进行针对此业务的数据初始化;在test_xxx()中进行业务代码的调用。通过查询数据库结果或者通过查询日志进行结果比对,在teardown()方法中进行针对此业务的数据清理后构成需要进行封装的框架。
S3、调用拦截器,依次对所述测试用例框架、所述对比用例框架和所述验证用例框架进行异常数据测试,并将测试结果带入到正在进行的业务流程中,通过观测所述业务流程运行的结果以验证测试结果的准确性。。
具体的,拦截器启用预先设置的拦截规则,即对采用Python unittest框架封装好的数据进行异常数据测试,主要的拦截规则为:(1)对于由数字和运算符号组成的数据组,进行异常数值的查询,比如,一个带有异常数据的等差数列1,3,5,8,7;则利用预设的拦截规则将不符合等差数列要求的数字“8”识别出来;(2)对于文本数据进行异常数据的查询,先选定由几个词组组成的一句话,判断这句话是否满足程序语法,如果满足语法要求则向左和/或右扩展语句,直到扩展到整个程序执行所需语段的长度。在整个语段中均没有异常词语则说明该框架中封装的数据不存在异常数据。(3)对于即含有公式、算符、数字和文字的复合型数据,先对公式进行识别,然后对公式部分和非公式部分进行划分,对公式部分进行带入数据验证公式是否成立,对文字部分采用与第二种文本识别相同的方法进行判断,最后将两个部分判断的结果进行汇总得到此数据组是否存在异常数据的结论。
本申请通过上述方法步骤,对数据源进行分类形成数据组,继而实现对数据的整合,可以自动化完成异常场景的覆盖,并在回归测试时无需人工介入。
图2为本发明在一个实施例中,三种生成非正常数据组的方式示意图,如图所示,所述启动数据生成工具对所述第一正常数据组进行加工生成带有异常数据的非正常数据组,包括:
添加外部数据至所述第一正常数据组,使所述第一正常数据组中的数据量大于正常值后生成一种所述非正常数据组;
添加外部数据而形成的异常数据组,首先添加的数据项均合理,在界面保存成功后,检查数据库中是否添加了相应的数据:select查询,留出一个必填数据为空;按照边界值等价类设计测试用例的原则设计其他输入项的测试用例:数据组合测试,对于不符合要求的数据规则的数据会产生错误提示,然后验证该组数据是否支持table键,按enter是否能保存,若提示不能保存,则证明数据库里多了一条数据。
删除所述第一正常数据组中的部分数据,使所述第一正常数据组中的数据量小于正常值后生成另一种所述非正常数据组;
删除一个数据构成异常数据组,删除一个数据库中存在的数据,然后查看数据库中是否删除,删除一个数据库中并不存在的数据,看是否有错误提示,并且数据库中没有数据被删除,输入一个格式错误的数据,看是否有错误提示,并且数据库中没有数据被删除,输入的正确数据前加空格,看是否能正确删除数据,什么也不输入,是否支持table键:tab键,是否支持enter键。
引入所述第一正常数据组中没有的数据替换所述第一正常数据组中的数据后生成所述非正常数据组,用于使所述第一正常数据组在调入程序后程序无法正常运行。
替换产生的异常数据,对数据库中存在的数据进行查询,看是否能正确地查出相应得数据,输入正确的查询条件以前加上空格,看是否能正确地查出相应的数据,输入格式或范围不符合要求的数据,看是否有错误提示:例如日期格式:YYYY-MM-DD;如果将月份中1~12十二个数字中的某一个替换成13,然后输入到该日期格式中该数据组不能正常运行说明异常数据添加成功;一般这些数据都是枚举型数据,以下拉框的形式出现,用数据库中不应有的数据替换数据库中应有的数据。
本实施例中,通过生成不同类型的异常数据,可以验证该数据源测试方法在不同异常数据中是否均能够进行检验。
图3为本发明在一个实施例中,封装成一层验证用例框架过程示意图,如图所示,
S201、对所述第二正常数据组按照数据生成的时间顺序排序,并根据设定的第一时间节点进行数据分块生成一组正常数据块;
按照时间顺序进行排序时,既可以按照数据生成的时间由近及远进行排序,也可以按照由远及近进行排序,还可以选择一个特定的时间节点然后将第二正常数据组进行分块,然后根据不同的数据块进行分类。
S202、对所述非正常数据组也按照数据生成的时间顺序进行排序,并根据设定的第二时间节点进行数据分块后生成一组非正常数据块;
非正常数据块的生成即可以按照数据生成的时间由近及远进行排序,也可以按照由远及近进行排序,还可以选择一个特定的时间节点然后将第二正常数据组进行分块,然后根据不同的数据块进行分类。
S203、抽取一个所述正常数据块和一个所述非正常数据块进行封装形成所述验证用例框架。
抽取的正常数据块和非正常数据块可以包含有相同数据量,也可以包含不同的数据量,即正常数据块包含的数据量大于非正常数据块中数据量或者正常数据块包含的数据量小于非正常数据块中数据量。
本实施例中,通过生成正常数据块和非正常数据块便于对不同数据规模的数据源进行测试,以验证识别异常数据的方法是否适应复杂数据环境。
在一个实施例中,所述调用拦截器,依次对所述测试用例框架、所述对比用例框架和所述验证用例框架进行异常数据测试,并将测试结果带入到正在进行的业务流程中,通过观测所述业务流程运行的结果以验证测试结果的准确性,包括:
根据数据生成时间将所述测试用例框架、所述对比用例框架和所述验证用例框架进行分层,构成数个测试用例框架数据层、对比用例框架数据层和验证用例框架数据层;
具体的,根据数据的第一次生成的时间作为分层的依据,也可以根据数据修改的时间作为分层的依据,对测试用例框架、对比用例框架和验证用例框架进行分层。
启动所述拦截器对所述测试用例框架数据层、所述对比用例框架数据层和所述验证用例框架数据层进行逐层拦截,获得各个所述测试用例框架数据层、所述对比用例框架数据层和所述验证用例框架数据层中是否存在异常数据的数据层测试结果;
对每一层中的数据进行识别,找出不符合语句规则,或者函数规则的字符,将这些字符全部找出生成每个层的测试结果。
将所述数据层测试结果带入到所述正在进行的业务流程中,观测所述业务流程运行的结果,并进行汇总以验证测试结果的准确性。
本实施例中,通过对测试用例框架数据层、对比用例框架数据层和验证用例框架进行分层,可以加快搜索的速度,当在某一层中找出异常数据就可以直接对测试结果进行判断,提高查询的效率。
在一个实施例中,所述调用拦截器,依次对所述测试用例框架、所述对比用例框架和所述验证用例框架进行异常数据测试,还包括对所述拦截器对异常数据识别能力的验证,具体包括:
通过所述拦截器的数据初始化方法对所述测试用例框架、所述对比用例框架和所述验证用例框架进行数据初始化处理后生成一组测试用例;
所谓初始化处理主要是对按照数据生成的时间和类型进行清洗,剩余那些适用于异常数据测试的数据。通常使用Junit测试工具作为拦截器,使用它的setup()方法对数据进行清洗。
调用所述拦截器的检测方法对初始化处理后的任一所述测试用例进行异常数据检测,以验证所述拦截器对异常数据识别能力;
具体的,使用Junit测试工具中的testxx()方法进行异常数据检;testxx()方法是根据TestCase类来表示测试用例,并要求所有用于执行测试的类都必须从该类继承。TestCase子类实现的测试代码应该是自包含的(self contained),即测试用例既可以单独运行,也可以和其它测试用例构成集合共同运行。测试函数以"test"为开头命名,"xx"一般为数字序号。通过使用这种命名方式,执行器可以知道哪些方法是测试方法。
应用外部数据导入工具导入外部新测试数据到拦截器,使用所述拦截器对所述外部新测试数据进行异常数据识别,然后验证所述拦截器的检测方法对异常数据的识别能力。
具体的,外部数据的导入工具为Mock工具,使用Mock工具用来生成一组非真数据,用于对异常数据测试的结果进行验证。其中,Mock的作用不同于Spy,Fake。Mock主要用于测被测体与外部的交互逻辑。一般是指在不同的场景下多次的与外部交互。当外部依赖是硬件,或者外部程序不ready的情况下,Mock就能帮助完成单元测试。其对外部应用环境的要求不高。
本实施例中,通过Mock工具引入新测试数据,便于检验setup()方法和testxx()方法对于其它外部数据进行异常数据识别是否也可以保证像从已知数据源中抽取的数据一样能够快速准确进行识别。
在一个实施例中,所述调用拦截器,依次对所述测试用例框架、对比用例框架和验证用例框架进行异常数据测试,并将测试结果带入到正在进行的业务流程中,通过观测所述业务流程运行的结果以验证测试结果的准确性,还包括对被带入测试结果后的业务流程的运行情况的判断,具体包括:
若在将所述拦截器对所述测试用例框架进行异常数据测试后生成的测试结果带入至所述业务流程后,所述业务流程仍然正常运行,则对所述拦截器的拦截规则进行修正再次对所述测试例框架中的数据测试,倘若带入异常数据后所述业务流程依旧正常运行,则对所述数据源中的数据进行重新封装;
对于测试用例的封装数据规则是从异常数据组中抽取长度为A的字段,从第二正常数据组中也抽取长度为A的字段,然后将两个长度为A的字段封装成一层测试用例。如果选用长度为A的字段构成测试用例不会对程序的运行造成影响,则需要对抽取的字段进行扩充,比如向左边或者右边进行扩展W个字段,或者即向左边又向右边扩展W个字段,直到符合测试用例的要求。
若在将所述拦截器对所述对比用例框架进行异常数据测试后生成的测试结果带入至所述业务流程后,所述业务流程不能正常运行,则对所述对比用例框架中的数据进行核验,找出异常数据,将其剔除,再将删除异常数据后的所述对比用例框架中的数据带入到所述业务流程中运行。
对数据源进行重新划分时,可以重新设定非正常数据组所包含的数据量和第二正常数据组中包含的数据量,即非正常数据组中包含的数据量可以不等于第二正常数据组包含的数据量。
本实施例中,对带入异常数据后进行检验的结果进行了分析,提升了测试方法对各种可能情况的应对。
在一个实施例中,在所述启动数据生成工具对所述第一正常数据组进行加工生成带有异常数据的非正常数据组的过程中,包括对生成的所述非正常数据组中是否带有异常数据进行判断,具体包括:
预先留出一个必填数据为空,然后按照边界值等价类设计测试用例的原则来设计其他输入项,构成测试用例:对所述测试用例进行选择查询,检测所述测试用例是否支持切换和保存,如果不支持切换或者保存则说明形成异常数据;
所谓等价类设计是指指定义在集合A上的关系,满足自反的、对称的和传递的等性质。设R是定义在集合A上的等价关系,与A中一个元素a有关系的所有元素的集合叫做a的等价类。A的关于R的等价类记作[a]R,来判定标识符是不是表示同一个事物。
判断删除所述第一正常数据组中的数据是否形成异常数据,删除一个所述第一正常数据组中的数据,将删除后的所述第一正常数据组中的数据带入到该数据所属的原程序中运行,如果所述原程序无法运行则说明形成异常数据。
删除的数据可以是文字、数字或者函数,如果是文字则要选定该程序执行所需的必要文字,如果是数字则需选定该程序执行的必要数字,如果是函数需要将与该函数相关的字符一同删除。
本实施例中,通过边界值等价类设计的方式构成测试用例,有效控制了异常数据生成的数量和类型,便于在测试时核对是否存在预先设置的异常数据。
在一个实施例中,在应用Mock工具引入新测试数据,其可以通过以下步骤实现:
获取需要引入的数据的源代码中各个需要被Mock的原始类;通过反射获得各个所述原始类的名称,数据类型和返回值;按照所述名称,数据类型和返回值进行数据派生,生成所述原始类对应的衍生类Mock数据,将所述衍生类Mock数据按照生成时间进行筛选构成所述新测试数据。
数据派生过程其实是一个熵增加过程,比如原始的Mock数据中记录有日期这一名词,则在派生过程中生成具体的日期,即XX年XX月XX日,从而使衍生类Mock数据与真实数据相一致。
本实施例中,通过生成衍生类Mock数据增加了验证测试方法适用于外部复杂数据源的情形,增强了模拟测试的真实性和有效性。
在一个实施例中,提供了一种数据源配置测试系统,如图4所示,包括如下单元:
异常数据生成单元,设置为从数据源中获取符合正常流程的第一正常数据组,启动数据生成工具对所述第一正常数据组进行加工生成带有异常数据的非正常数据组;
数据分类封装单元,设置从所述数据源中再获取符合正常流程的第二正常数据组,抽取所述非正常数据组中的部分数据和所述第二正常数据组中的部分数据封装成一验证用例框架,将抽取后剩余的所述非正常数据组中的数据封装成一测试用例框架,将抽取后剩余的所述第二正常数据组封装成一对比用例框架;
检测验证单元,设置为调用拦截器,依次对所述测试用例框架、对比用例框架和验证用例框架进行异常数据测试,并将测试结果带入到正在进行的业务流程中,通过观测所述业务流程运行的结果以验证测试结果的准确性。
在一个实施例中,提出了一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行上述各个实施例中的数据源配置测试方法的步骤。
在一个实施例中,提出了一种存储有计算机可读指令的存储介质,所述存储介质可以为非易失性存储介质,计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述各个实施例中的数据源配置测试方法的步骤。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、磁盘或光盘等。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明一些示例性实施例,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种数据源配置测试方法,其特征在于,包括:
从数据源中获取符合正常流程的第一正常数据组,启动数据生成工具对所述第一正常数据组进行加工生成带有异常数据的非正常数据组;
从所述数据源中再获取符合正常流程的第二正常数据组,抽取所述非正常数据组中的部分数据和所述第二正常数据组中的部分数据封装成一验证用例框架,将抽取后剩余的所述非正常数据组中的数据封装成一测试用例框架,将抽取后剩余的所述第二正常数据组封装成一对比用例框架;
调用拦截器,依次对所述测试用例框架、所述对比用例框架和所述验证用例框架进行异常数据测试,并将测试结果带入到正在进行的业务流程中,通过观测所述业务流程运行的结果以验证测试结果的准确性。
2.根据权利要求1所述的数据源配置测试方法,其特征在于,所述启动数据生成工具对所述第一正常数据组进行加工生成带有异常数据的非正常数据组,包括三种生成所述非正常数据组的方式,具体包括:
添加外部数据至所述第一正常数据组,使所述第一正常数据组中的数据量大于正常值后生成一种所述非正常数据组;
删除所述第一正常数据组中的部分数据,使所述第一正常数据组中的数据量小于正常值后生成另一种所述非正常数据组;
引入所述第一正常数据组中没有的数据替换所述第一正常数据组中的数据后生成所述非正常数据组,用于使所述第一正常数据组在调入程序后程序无法正常运行。
3.根据权利要求1所述的数据源配置测试方法,其特征在于,所述抽取所述非正常数据组中的部分数据和所述第二正常数据组中的部分数据封装成一验证用例框架,包括:
对所述第二正常数据组按照数据生成的时间顺序排序,并根据设定的第一时间节点进行数据分块后生成一组正常数据块;
对所述非正常数据组也按照数据生成的时间顺序进行排序,并根据设定的第二时间节点进行数据分块后生成一组非正常数据块;
抽取一个所述正常数据块和一个所述非正常数据块进行封装形成所述验证用例框架。
4.根据权利要求1所述的数据源配置测试方法,其特征在于,所述调用拦截器,依次对所述测试用例框架、所述对比用例框架和所述验证用例框架进行异常数据测试,并将测试结果带入到正在进行的业务流程中,通过观测所述业务流程运行的结果以验证测试结果的准确性,包括:
根据数据生成时间将所述测试用例框架、所述对比用例框架和所述验证用例框架进行分层,构成数个测试用例框架数据层、对比用例框架数据层和验证用例框架数据层;
启动所述拦截器对所述测试用例框架数据层、所述对比用例框架数据层和所述验证用例框架数据层进行逐层拦截,获得各个所述测试用例框架数据层、所述对比用例框架数据层和所述验证用例框架数据层中是否存在异常数据的数据层测试结果;
将所述数据层测试结果带入到所述正在进行的业务流程中,观测所述业务流程运行的结果,并进行汇总以验证测试结果的准确性。
5.根据权利要求1所述的数据源配置测试方法,其特征在于,所述调用拦截器,依次对所述测试用例框架、所述对比用例框架和所述验证用例框架进行异常数据测试,还包括对所述拦截器对异常数据识别能力的验证,具体包括:
通过所述拦截器的数据初始化方法对所述测试用例框架、所述对比用例框架和所述验证用例框架进行数据初始化处理后生成一组测试用例;
调用所述拦截器的检测方法对初始化处理后的任一所述测试用例进行异常数据检测,以验证所述拦截器对异常数据识别能力;
应用外部数据导入工具导入外部新测试数据到拦截器,使用所述拦截器对所述外部新测试数据进行异常数据识别,然后验证所述拦截器的检测方法对异常数据的识别能力。
6.根据权利要求1所述的数据源配置测试方法,其特征在于,所述调用拦截器,依次对所述测试用例框架、对比用例框架和验证用例框架进行异常数据测试,并将测试结果带入到正在进行的业务流程中,通过观测所述业务流程运行的结果以验证测试结果的准确性,还包括对被带入测试结果后的业务流程的运行情况的判断,具体包括:
若在将所述拦截器对所述测试用例框架进行异常数据测试后生成的测试结果带入至所述业务流程后,所述业务流程仍然正常运行,则对所述拦截器的拦截规则进行修正再次对所述测试例框架中的数据测试,倘若带入异常数据后所述业务流程依旧正常运行,则对所述数据源中的数据进行重新封装;
若在将所述拦截器对所述对比用例框架进行异常数据测试后生成的测试结果带入至所述业务流程后,所述业务流程不能正常运行,则对所述对比用例框架中的数据进行核验,找出异常数据,将其剔除,再将删除异常数据后的所述对比用例框架中的数据带入到所述业务流程中运行。
7.根据权利要求2所述的数据源配置测试方法,其特征在于,在所述启动数据生成工具对所述第一正常数据组进行加工生成带有异常数据的非正常数据组的过程中,包括对生成的所述非正常数据组中是否带有异常数据进行判断,具体包括:
预先留出一个必填数据为空,然后按照边界值等价类设计测试用例的原则来设计其他输入项,构成测试用例:对所述测试用例进行选择查询,检测所述测试用例是否支持切换和保存,如果不支持切换或者保存则说明形成异常数据;
判断删除所述第一正常数据组中的数据是否形成异常数据,删除一个所述第一正常数据组中的数据,将删除后的所述第一正常数据组中的数据带入到该数据所属的原程序中运行,如果所述原程序无法运行则说明形成异常数据。
8.一种数据源配置测试系统,其特征在于,包括:
异常数据生成单元,设置为从数据源中获取符合正常流程的第一正常数据组,启动数据生成工具对所述第一正常数据组进行加工生成带有异常数据的非正常数据组;
数据分类封装单元,设置为从所述数据源中再获取符合正常流程的第二正常数据组,抽取所述非正常数据组中的部分数据和所述第二正常数据组中的部分数据封装成一验证用例框架,将抽取后剩余的所述非正常数据组中的数据封装成一测试用例框架,将抽取后剩余的所述第二正常数据组封装成一对比用例框架;
检测验证单元,设置为调用拦截器,依次对所述测试用例框架、所述对比用例框架和所述验证用例框架进行异常数据测试,并将测试结果带入到正在进行的业务流程中,通过观测所述业务流程运行的结果以验证测试结果的准确性。
9.一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行如权利要求1至7中任一项权利要求所述数据源配置测试方法的步骤。
10.一种存储有智能终端可读指令的存储介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如权利要求1至7中任一项权利要求所述数据源配置测试方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811020295.3A CN109408366B (zh) | 2018-09-03 | 2018-09-03 | 数据源配置测试方法、系统、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811020295.3A CN109408366B (zh) | 2018-09-03 | 2018-09-03 | 数据源配置测试方法、系统、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109408366A true CN109408366A (zh) | 2019-03-01 |
CN109408366B CN109408366B (zh) | 2023-05-30 |
Family
ID=65463927
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811020295.3A Active CN109408366B (zh) | 2018-09-03 | 2018-09-03 | 数据源配置测试方法、系统、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109408366B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110471859A (zh) * | 2019-09-12 | 2019-11-19 | 泰康保险集团股份有限公司 | 业务测试方法、装置、介质及电子设备 |
CN110895509A (zh) * | 2019-11-15 | 2020-03-20 | 泰康保险集团股份有限公司 | 一种测试处理方法、装置、电子设备及存储介质 |
CN111679979A (zh) * | 2020-06-03 | 2020-09-18 | 中国银行股份有限公司 | 破坏性测试方法及装置 |
CN113300912A (zh) * | 2021-05-21 | 2021-08-24 | 湖南快乐阳光互动娱乐传媒有限公司 | 一种设备测试方法、装置及电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102331971A (zh) * | 2011-09-01 | 2012-01-25 | 北京用友政务软件有限公司 | 一种基于qtp的自动化测试方法及系统 |
CN104618502A (zh) * | 2015-02-15 | 2015-05-13 | 中国科学院遥感与数字地球研究所 | 一种用于卫星数据地面接收站网的联调测试平台 |
CN107832226A (zh) * | 2017-11-23 | 2018-03-23 | 中国平安人寿保险股份有限公司 | 基于性能测试的报告生成方法、装置、设备和计算机介质 |
CN107908551A (zh) * | 2017-10-27 | 2018-04-13 | 中国平安人寿保险股份有限公司 | 终端软件测试方法、装置、终端和计算机存储介质 |
CN108415835A (zh) * | 2018-02-22 | 2018-08-17 | 北京百度网讯科技有限公司 | 分布式数据库测试方法、装置、设备及计算机可读介质 |
-
2018
- 2018-09-03 CN CN201811020295.3A patent/CN109408366B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102331971A (zh) * | 2011-09-01 | 2012-01-25 | 北京用友政务软件有限公司 | 一种基于qtp的自动化测试方法及系统 |
CN104618502A (zh) * | 2015-02-15 | 2015-05-13 | 中国科学院遥感与数字地球研究所 | 一种用于卫星数据地面接收站网的联调测试平台 |
CN107908551A (zh) * | 2017-10-27 | 2018-04-13 | 中国平安人寿保险股份有限公司 | 终端软件测试方法、装置、终端和计算机存储介质 |
CN107832226A (zh) * | 2017-11-23 | 2018-03-23 | 中国平安人寿保险股份有限公司 | 基于性能测试的报告生成方法、装置、设备和计算机介质 |
CN108415835A (zh) * | 2018-02-22 | 2018-08-17 | 北京百度网讯科技有限公司 | 分布式数据库测试方法、装置、设备及计算机可读介质 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110471859A (zh) * | 2019-09-12 | 2019-11-19 | 泰康保险集团股份有限公司 | 业务测试方法、装置、介质及电子设备 |
CN110895509A (zh) * | 2019-11-15 | 2020-03-20 | 泰康保险集团股份有限公司 | 一种测试处理方法、装置、电子设备及存储介质 |
CN110895509B (zh) * | 2019-11-15 | 2023-04-18 | 泰康保险集团股份有限公司 | 一种测试处理方法、装置、电子设备及存储介质 |
CN111679979A (zh) * | 2020-06-03 | 2020-09-18 | 中国银行股份有限公司 | 破坏性测试方法及装置 |
CN111679979B (zh) * | 2020-06-03 | 2023-09-19 | 中国银行股份有限公司 | 破坏性测试方法及装置 |
CN113300912A (zh) * | 2021-05-21 | 2021-08-24 | 湖南快乐阳光互动娱乐传媒有限公司 | 一种设备测试方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN109408366B (zh) | 2023-05-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109408366A (zh) | 数据源配置测试方法、系统、计算机设备和存储介质 | |
CN103631713B (zh) | Erp软件自动化测试系统及方法 | |
CN106021093A (zh) | 一种测试用例复用的方法及系统 | |
CN103577324B (zh) | 移动应用中隐私信息泄露的静态检测方法 | |
CN105095059B (zh) | 一种自动化测试的方法和装置 | |
CN108108297A (zh) | 自动化测试的方法和装置 | |
CN106980627A (zh) | 日志内容的显示方法及装置 | |
Tahat et al. | Regression test suite prioritization using system models | |
KR20080068385A (ko) | 소프트웨어 테스트 시스템, 방법 및 그 방법을 실행하기위한 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체 | |
CN107015908A (zh) | 一种计算机应用软件测试系统及方法 | |
CN110297760A (zh) | 测试数据的构造方法、装置、设备及计算机可读存储介质 | |
CN107451060A (zh) | 一种跨移动端自动化测试框架系统 | |
CN108009085B (zh) | 渠道包测试方法 | |
CN109344053A (zh) | 接口覆盖测试方法、系统、计算机设备和存储介质 | |
CN105653946A (zh) | 基于组合事件行为触发的Android恶意行为检测系统及其检测方法 | |
CN106529304B (zh) | 一种安卓应用并发漏洞检测系统 | |
CN103810094B (zh) | 一种测试案例的执行方法、装置和测试工具 | |
CN113590454A (zh) | 测试方法、装置、计算机设备和存储介质 | |
CN103049374B (zh) | 一种自动化测试的方法及装置 | |
CN114816980A (zh) | 一种嵌入式通信系统用自动测试装置及方法 | |
CN105630667A (zh) | 一种测试方法和终端设备 | |
CN111708712A (zh) | 用户行为测试用例的生成方法、流量回放方法及电子设备 | |
CN107122307B (zh) | 一种物联网执行系统 | |
CN111767218B (zh) | 一种用于持续集成的自动化测试方法、设备及存储介质 | |
CN110807104A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |