CN106681910A - 一种基于主机代码解析生成测试案例的方法及装置 - Google Patents

一种基于主机代码解析生成测试案例的方法及装置 Download PDF

Info

Publication number
CN106681910A
CN106681910A CN201611115002.0A CN201611115002A CN106681910A CN 106681910 A CN106681910 A CN 106681910A CN 201611115002 A CN201611115002 A CN 201611115002A CN 106681910 A CN106681910 A CN 106681910A
Authority
CN
China
Prior art keywords
resource
program
test cases
synthesis
stake
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
Application number
CN201611115002.0A
Other languages
English (en)
Other versions
CN106681910B (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.)
Industrial and Commercial Bank of China Ltd ICBC
Original Assignee
Industrial and Commercial Bank of China Ltd ICBC
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 Industrial and Commercial Bank of China Ltd ICBC filed Critical Industrial and Commercial Bank of China Ltd ICBC
Priority to CN201611115002.0A priority Critical patent/CN106681910B/zh
Publication of CN106681910A publication Critical patent/CN106681910A/zh
Application granted granted Critical
Publication of CN106681910B publication Critical patent/CN106681910B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明提供了一种基于主机代码解析生成测试案例的方法及装置。所述方法包括:对主机程序代码进行解析,根据编码语言的关键字识别出各个功能模块;根据所述各个功能模块对资源的所有操作,生成所述各个功能模块的所有合成桩,并将所述合成桩插入到每个功能模块的程序中;执行程序,采集作业队列中的信息,并对采集到的信息进行过滤清洗,将符合所述程序对应的合成桩的信息按照合成桩分别整理,生成有效信息;对所述有效信息进行深度分析,将资源按照操作符的先后顺序生成资源有向网络图;将所述资源有向图通过遍历算法遍历出所有路径,生成所有以资源为线索的测试案例。本发明为现在庞大的大型机系统测试提供了以资源为线索的全量测试案例。

Description

一种基于主机代码解析生成测试案例的方法及装置
技术领域
本发明涉及软件测试领域,尤其涉及大型机系统的系统测试领域,具体的讲是一种基于主机代码解析生成测试案例的方法及装置。
背景技术
本部分旨在为权利要求书中陈述的本发明的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
大型机系统,都是以程序为单位,依赖一组或多组程序共同完成所需功能的整个系统。大型机中的程序一般是通过作业调度方式启动调度,用以处理响应时间不要求太高,但处理数据量较大等作业,例如,报表、账务等大运算量在大型机中有广泛应用。在黑盒测试大型机系统时,由于测试具有流程长并且数据准备、验证复杂及其对测试人员具有较强的隐蔽性等特点,目前都是采用完全凭测试人员经验验证各种案例场景,依赖测试人员长期的经验进行测试。但由于大型机系统随着业务需求日新月异,主机产品及其应用也会日行千里,很多问题都不能依靠原有测试人员丰富的经验可以验证并发现相应问题,程序测试的全面性和完整性也越来越难以保证。
举例来说,程序一般针对交易所产生的业务数据,在日终时通过作业调度处理资源时使用的程序。一般程序的处理流程大概为读取相关参数表及需要处理的业务数据,进行账务处理、业务报表生成等处理,并生成数据表或者资源文件等功能。如一个普通的业务量统计报表源文件生成程序实现了10个程序分支,首先读取两张参数表,两种业务文件的数据,通过逻辑处理,写到三种业务汇总文件,然后再读取三张参数表,并且参数表中的信息将三个汇总文件,分别启动其他的接口进行处理,并且写到成功和失败的处理文件。
在黑盒测试过程中,由于程序相对业务测试人员具有隐蔽性,在测试过程中准备的数据可能只通过最后的一张报表或一个最终的数据很难实现测试场景完全覆盖。
所以,如何通过工具及方法,准确有效指导测试过程中所有业务场景,使没有得到充分验证的系统处理逻辑可以通过工具生成的测试案例设计新的测试案例场景,实现全方位验证,以提高系统的可靠性及测试的完整性,是主机系统黑盒测试过程中一个高度关注并亟待解决的问题。
发明内容
本发明实施例提供一种基于主机代码解析生成测试案例的方法及装置,为现在庞大的大型机系统测试提供以资源为线索的全量测试案例。
为了达到上述目的,本发明实施例提供一种基于主机代码解析生成测试案例的方法,包括:对主机程序代码进行解析,根据编码语言的关键字识别出各个功能模块;根据所述各个功能模块对资源的所有操作,生成所述各个功能模块的所有合成桩,并将所述合成桩插入到每个功能模块的程序中;执行程序,采集作业队列中的信息,并对采集到的信息进行过滤清洗,将符合所述程序对应的合成桩的信息按照合成桩分别整理,生成有效信息;对所述有效信息进行深度分析,将资源按照操作符的先后顺序生成资源有向网络图;将所述资源有向图通过遍历算法遍历出所有路径,生成所有以资源为线索的测试案例。
进一步地,在一实施例中,所述对主机程序代码进行解析,根据编码语言的关键字识别出各个功能模块,还包括:根据存储在代码分析数据库中的操作符关键字、资源关键字,识别出所述每个功能模块对资源所采用的所有操作。
进一步地,在一实施例中,所述根据所述各个功能模块对资源的所有操作,生成所述各个功能模块的所有合成桩,并将所述合成桩插入到每个功能模块的程序中,具体包括:根据所述各个功能模块对资源所采用的所有操作,结合存储在代码分析数据库中的操作符关键字、资源关键字,生成所有“操作-类型-资源”的合成桩,并在每个功能模块的程序末插入所述合成桩。
进一步地,在一实施例中,所述对所述有效信息进行深度分析,将资源按照操作符的先后顺序生成资源有向网络图,具体包括:通过对所述有效信息进行解析,搜索过滤数据中指定的分割符号、关键字,将主机资源名和对资源的操作分离出来,形成程序、主机资源及对资源的操作关系,并根据操作符先后顺序,形成程序对资源的操作顺序,生成所述资源有向网络图。
进一步地,在一实施例中,所述将所述资源有向图通过遍历算法遍历出所有路径,生成所有以资源为线索的测试案例,具体包括:通过对所述资源有向网络图分析,以资源为线索,找到与之相关的全部前后项,搜寻所需的表、文件、程序,通过所述遍历算法,配合资源在程序中的别名,并根据资源和别名的一一对应关系,形成针对主机系统的所有测试案例。
为了达到上述目的,本发明实施例还提供一种基于主机代码解析生成测试案例的装置,包括:代码解析模块,用于对主机程序代码进行解析,根据编码语言的关键字识别出各个功能模块;合成桩插入模块,用于根据所述各个功能模块对资源的所有操作,生成所述各个功能模块的所有合成桩,并将所述合成桩插入到每个功能模块的程序中;采集过滤模块,用于在执行程序时采集作业队列中的信息,并对采集到的信息进行过滤清洗,将符合所述程序对应的合成桩的信息按照合成桩分别整理,生成有效信息;资源有向网络图生成模块,用于对所述有效信息进行深度分析,将资源按照操作符的先后顺序生成资源有向网络图;测试案例生成模块,用于将所述资源有向图通过遍历算法遍历出所有路径,生成所有以资源为线索的测试案例。
进一步地,在一实施例中,所述代码解析模块用于所述对主机程序代码进行解析,根据编码语言的关键字识别出各个功能模块,其还包括:根据存储在代码分析数据库中的操作符关键字、资源关键字,识别出所述每个功能模块对资源所采用的所有操作。
进一步地,在一实施例中,所述合成桩插入模块用于根据所述各个功能模块对资源的所有操作,生成所述各个功能模块的所有合成桩,并将所述合成桩插入到每个功能模块的程序中,其具体包括:根据所述各个功能模块对资源所采用的所有操作,结合存储在代码分析数据库中的操作符关键字、资源关键字,生成所有“操作-类型-资源”的合成桩,并在每个功能模块的程序末插入所述合成桩。
进一步地,在一实施例中,所述资源有向网络图生成模块用于对所述有效信息进行深度分析,将资源按照操作符的先后顺序生成资源有向网络图,其具体包括:通过对所述有效信息进行解析,搜索过滤数据中指定的分割符号、关键字,将主机资源名和对资源的操作分离出来,形成程序、主机资源及对资源的操作关系,并根据操作符先后顺序,形成程序对资源的操作顺序,生成所述资源有向网络图。
进一步地,在一实施例中,所述测试案例生成模块用于将所述资源有向图通过遍历算法遍历出所有路径,生成所有以资源为线索的测试案例,其具体包括:通过对所述资源有向网络图分析,以资源为线索,找到与之相关的全部前后项,搜寻所需的表、文件、程序,通过所述遍历算法,配合资源在程序中的别名,并根据资源和别名的一一对应关系,形成针对主机系统的所有测试案例。
本发明实施例的这种基于主机代码解析生成测试案例的装置及方法,首先通过对主机代码分析,将合成桩插入到代码中,并通过整理合成通过对信息数据的清洗过滤及数据分析,并对数据进一步解析,依据主机资源操作的前后关系生成资源有向图,并通过对资源有向图的解析,最终得到以资源为线索的全部测试案例。本发明的这种方法为现在庞大的大型机系统测试提供了以资源为线索的全量测试案例,使系统在测试时实现系统内所有逻辑分支处理测试成为可能,也为全面大型机系统全流程业务场景测试提供可靠依据。与原有的手工统计方式相比,本发明提供了测试案例全自动生成方案,极大减轻了测试人员在黑盒测试时为了测试主机系统所需投入巨大的整理工作量,测试人员不用任何附加劳动,就能够根据最终结果,辅助指导测试人员编写未知领域测试案例。同时,该方法全面准确的展示了如何以资源为线索生成测试案例可以有效测试系统内所有逻辑分支,从而为功能验收测试和回归测试提供测试案例依据,进一步保证测试质量和效率,提高了系统的可靠性、可用性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例的基于主机代码解析生成测试案例的方法的处理流程图;
图2为一实施例中生成的主机资源有向网络图;
图3为本发明实施例的基于主机代码解析生成测试案例的装置的结构示意图;
图4为本发明的基于主机代码解析生成测试案例的装置的一具体实施例的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本领域技术技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。
本发明涉及的技术领域是大型机计算机系统。以往的程序覆盖测试技术都是针对大型机联机交易调度所涉及的程序在测试过程中的覆盖率为依据,主要用于大型机的测试监控。而本发明为以实现大型机系统全面可靠测试,设计完整的测试案例为目的,针对大型机代码分析解析生成测试案例的一种装置和方法,以主机系统对资源的处理镜面反映系统处理的所有分支分析,通过对主机代码进行分析,解析出以主机资源为线索生成所有测试案例,即从系统处理的逻辑处理角度生成所有测试案例,用于指导大型机系统测试,有效指导测试人员的案例编写工作、功能测试和回归测试工作,实现主机系统全面完整性测试,确保测试质量和效率,提高系统的可靠性。
首先,解释一下本发明涉及到的相关概念。
主机代码,是主机系统用以开发系统使用的开发语言,一般使用的编程工具是COBOL语言,COBOL语言具有结构严谨,层次分明、通用性强等特点,其本身具有处理数据繁多而且运算简单等特点。目前主要的主机系统,基本使用的编程工具都是COBOL。
主机程序,是大型机系统中用于调度处理各项资源的程序,根据输入的资源输出程序处理后的各项资源。其操作对象一般也以表或文件为输入资源并以其他表或文件资源为输出,例如,报表,账务等都会使用到主机程序。
由于主机程序数据处理方式比较隐蔽,面对上千的主机程序,通过人工方式已经不能满足程序全面详细测试需求,所以如何通过技术手段能够充分有效的针对程序分支生成全面的测试案例,从而实现程序的全面性测试,是本发明亟待解决的问题。
图1为本发明实施例的基于主机代码解析生成测试案例的方法的处理流程图。如图所示,包括:步骤S101,对主机程序代码进行解析,根据编码语言的关键字识别出各个功能模块;步骤S102,根据所述各个功能模块对资源的所有操作,生成所述各个功能模块的所有合成桩,并将所述合成桩插入到每个功能模块的程序中;步骤S103,执行程序,采集作业队列中的信息,并对采集到的信息进行过滤清洗,将符合所述程序对应的合成桩的信息按照合成桩分别整理,生成有效信息;步骤S104,对所述有效信息进行深度分析,将资源按照操作符的先后顺序生成资源有向网络图;步骤S105,将所述资源有向图通过遍历算法遍历出所有路径,生成所有以资源为线索的测试案例。
具体实施时,在步骤S101中,COBOL语言具有结构严谨,层次分明,通用性强等特点。每个程序都是由标识部、环境部、数据部和过程部组成,并且不同部分有明确的标识表示。装置通过扫描主机代码,并对过程部中关键字等分析,可以识别出所有功能模块,并根据存储在代码分析数据库中的操作符关键字、资源关键字等,识别出每个功能模块对资源的所采用的所有操作。
具体实施时,在步骤S102中,根据程序处理的都是对资源进行加工处理,以对象为输出,并以通过加工生成其他资源的过程。根据程序处理数据的特点,可以将资源为核心,如,文件、数据库中的表、甚至其他作业及程序,都是程序要处理的资源,对资源进行的操作如增、删、改、查、启用其他资源等为操作,组合成合成桩。也就是说,在代码分析的基础上,对已识别出的功能模块根据其对访问资源及对资源的操作,结合存储在代码分析数据库中的操作符关键字、资源关键字,生成所有“操作-类型-资源”的合成桩,并在每个功能模块的程序末插入合成桩,用以在程序执行时展示出来。
具体实施时,在步骤S103中,在大型机中批量处理是通过作业指令来调度程序完成的,即需要明确程序与作业的对应关系,明确程序具体调度情况。一般应用程序和作业安装在大型机系统上时,都会有数据库或者配置表等信息,通过对这些信息的分析,完成程序和对应执行作业的对应关系,以此作为后续数据采集的基础。即:根据程序和作业在安装时的安装信息、作业调度信息,通过内部逻辑关联,确定他们之间内部调度关系。
然后,根据已整理的对应关系,采集程序执行过程中的作业队列中的所有信息,并将其按照程序、作业、作业步、作业执行时间、环境、作业步等执行信息进行采集,将其转化为后续数据处理可识别的模式。
在数据采集运行过程中,经常遇到作业输出不规范或程序执行有问题等出现大量报错信息等情况,所以对已收集的测试信息进行过滤筛选是必不可少的。通过对各种已定义的字符关键字进行识别,分拣出收集作业信息中有效数据信息,并将无效信息分类保留,通过该装置对数据进行有效过滤及清洗,将有效信息转换成为可识别的模式。也就是说,以已收集到的数据为依据,将采集到的信息进行加工处理,通过对采集到的信息中进行过滤及清洗,将清洗后符合合成桩的信息按照合成桩分别整理,并将不符合条件的数据分类,并将其分类存储,供后续资料查找。具体数据过滤类型说明见表1所示:
表1过滤类型
过滤类型 说明
WARNING1 作业未执行
WARNING2 作业步未找到
WARNING3 合成桩未找到
WARNING4 非合成桩其他信息
具体实施时,在步骤S104中,所述对所述有效信息进行深度分析,将资源按照操作符的先后顺序生成资源有向网络图,具体包括:通过对所述有效信息进行解析,搜索过滤数据中指定的分割符号、关键字,将主机资源名和对资源的操作分离出来,形成程序、主机资源及对资源的操作关系,并根据操作符先后顺序,形成程序对资源的操作顺序,生成所述资源有向网络图。例如,图2为一实施例中生成的主机资源有向网络图。
具体实施时,在步骤S105中,所述将所述资源有向图通过遍历算法遍历出所有路径,生成所有以资源为线索的测试案例,具体包括:通过对所述资源有向网络图分析,以资源为线索,找到与之相关的全部前后项,搜寻所需的表、文件、程序,通过所述遍历算法,配合资源在程序中的别名,并根据资源和别名的一一对应关系,形成针对主机系统的所有测试案例。
例如,根据图2所示实施例的述资源有向网络图可得出测试案例包括如下:
案例1:读->资源1->程序1处理->写->资源2
案例2:读->资源1->程序1处理->改->资源2
案例3:(读->资源1)和(读->资源2)->程序2处理->(插->资源3)和(写->资源4)
案例4:(读->资源1)和(读->资源2)->程序2处理->(插->资源3)和(插->资源4)
案例n:操作n->资源n->程序3处理->删->资源3
在本实施例中,在步骤S101进行代码解析和步骤S102进行合成桩生成插入操作中所使用分析的代码解析关键字符、关键字,合成桩的关键字符、关键字等,以及程序中使用的对资源对象名称等,都可存储在代码分析数据库中。并且,在程序与作业信息整合、数据采集、合成桩清洗过滤、数据有向图形成及生成测试案例中所有信息都存储在采集分析信息数据库中,包括生成的测试案例及各类清洗数据也都存储在采集分析信息数据库中。
并且,在具体实施时,步骤S101和S102可以部署在开发环境中,而步骤S103-S105可以部署在测试环境中。本发明的通过代码分析生成测试案例方法就是通过对各项信息分析为依据,得出主机系统所有逻辑分支,再结合对资源进一步操作分析,生成以资源为线索的资源有向图,并通过资源有向图就可以生成测试案例。
应当注意,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
在介绍了本发明示例性实施方式的方法之后,接下来,参考图3对本发明示例性实施方式的基于主机代码解析生成测试案例的装置进行介绍。该装置的实施可以参见上述方法的实施,重复之处不再赘述。以下所使用的术语“模块”,可以是实现预定功能的软件和/或硬件。尽管以下实施例所描述的模块较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图3为本发明实施例的基于主机代码解析生成测试案例的装置的结构示意图。如图3所示,包括:代码解析模块101,用于对主机程序代码进行解析,根据编码语言的关键字识别出各个功能模块;合成桩插入模块102,用于根据所述各个功能模块对资源的所有操作,生成所述各个功能模块的所有合成桩,并将所述合成桩插入到每个功能模块的程序中;采集过滤模块103,用于在执行程序时采集作业队列中的信息,并对采集到的信息进行过滤清洗,将符合所述程序对应的合成桩的信息按照合成桩分别整理,生成有效信息;资源有向网络图生成模块104,用于对所述有效信息进行深度分析,将资源按照操作符的先后顺序生成资源有向网络图;测试案例生成模块105,用于将所述资源有向图通过遍历算法遍历出所有路径,生成所有以资源为线索的测试案例。
进一步,在本实施例中,所述代码解析模块101用于所述对主机程序代码进行解析,根据编码语言的关键字识别出各个功能模块,其还包括:根据存储在代码分析数据库中的操作符关键字、资源关键字,识别出所述每个功能模块对资源所采用的所有操作。
进一步,在本实施例中,所述合成桩插入模块102用于根据所述各个功能模块对资源的所有操作,生成所述各个功能模块的所有合成桩,并将所述合成桩插入到每个功能模块的程序中,其具体包括:根据所述各个功能模块对资源所采用的所有操作,结合存储在代码分析数据库中的操作符关键字、资源关键字,生成所有“操作-类型-资源”的合成桩,并在每个功能模块的程序末插入所述合成桩。
进一步,在本实施例中,所述资源有向网络图生成模块104用于对所述有效信息进行深度分析,将资源按照操作符的先后顺序生成资源有向网络图,其具体包括:通过对所述有效信息进行解析,搜索过滤数据中指定的分割符号、关键字,将主机资源名和对资源的操作分离出来,形成程序、主机资源及对资源的操作关系,并根据操作符先后顺序,形成程序对资源的操作顺序,生成所述资源有向网络图。
进一步,在本实施例中,所述测试案例生成模块105用于将所述资源有向图通过遍历算法遍历出所有路径,生成所有以资源为线索的测试案例,其具体包括:通过对所述资源有向网络图分析,以资源为线索,找到与之相关的全部前后项,搜寻所需的表、文件、程序,通过所述遍历算法,配合资源在程序中的别名,并根据资源和别名的一一对应关系,形成针对主机系统的所有测试案例。
此外,尽管在上文描述中提及了基于主机代码解析生成测试案例的装置的若干单元,但是这种划分仅仅并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元的特征和功能可以在一个单元中具体化。同样,上文描述的一个单元的特征和功能也可以进一步划分为由多个单元来具体化。
图4为本发明的基于主机代码解析生成测试案例的装置的一具体实施例的结构示意图。如图4所示,与图3实施例相同的是,本实施例同样包括代码解析模块101、合成桩插入模块102、采集过滤模块103、资源有向网络图生成模块104、测试案例生成模块105,这些模块的功能与图3实施例中相同;而为了更加明确数据采集及清洗过滤的过程,将图3实施例中的采集过滤模块103进行功能拆分,划分为数据采集模块1031和合成桩清洗过滤模块1032,并且加入程序与作业整合模块106,以在采集数据前确定程序和对应执行作业的对应关系。
在大型机中批量处理是通过作业指令来调度程序完成的,即需要明确程序与作业的对应关系,明确程序具体调度情况。一般应用程序和作业安装在大型机系统上时,都会有数据库或者配置表等信息,通过对这些信息的分析,完成程序和对应执行作业的对应关系,以此作为后续数据采集模块1031的基础。即,根据程序和作业在安装时的安装信息、作业调度信息,通过内部逻辑关联,确定它们之间的内部调度关系。
数据采集模块1031根据已整理的对应关系,采集作业队列中所有信息,并将其按照程序、作业、作业步、作业执行时间、环境、作业步等执行信息进行采集,将其转化为后续数据处理可识别的模式。
合成桩清洗过滤模块1032以已收集到的数据为依据,将采集到的信息进行加工处理,通过对采集到的信息进行过滤及清洗,将清洗后符合合成桩的信息按照合成桩分别整理,并将不符合条件的数据分类,并将其分类存储,供后续资料查找。
并且,本实施例中,加入代码分析数据库107,用于存储代码解析模块101进行代码解析和合成桩插入模块进行合成桩生成插入操作中所使用分析的代码解析关键字符、关键字,合成桩的关键字符、关键字等,以及程序中使用的对资源对象名称等数据。加入采集分析信息数据库108,在程序与作业信息整合、数据采集、合成桩清洗过滤、数据有向图形成及生成测试案例中所有信息都存储在采集分析信息数据库108中,包括生成的测试案例及各类清洗数据也都存储在采集分析信息数据库108中。
本发明实施例的这种基于主机代码解析生成测试案例的装置及方法,首先通过对主机代码分析,将合成桩插入到代码中,并通过整理合成通过对信息数据的清洗过滤及数据分析,并对数据进一步解析,依据主机资源操作的前后关系生成资源有向图,并通过对资源有向图的解析,最终得到以资源为线索的全部测试案例。本发明的这种方法为现在庞大的大型机系统测试提供了以资源为线索的全量测试案例,使系统在测试时实现系统内所有逻辑分支处理测试成为可能,也为全面大型机系统全流程业务场景测试提供可靠依据。
与原有的手工统计方式相比,本发明提供了测试案例全自动生成方案,极大减轻了测试人员在黑盒测试时为了测试主机系统所需投入巨大的整理工作量,测试人员不用任何附加劳动,就能够根据最终结果,辅助指导测试人员编写未知领域测试案例。同时,该方法全面准确的展示了如何以资源为线索生成测试案例可以有效测试系统内所有逻辑分支,从而为功能验收测试和回归测试提供测试案例依据,进一步保证测试质量和效率,提高了系统的可靠性、可用性。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (10)

1.一种基于主机代码解析生成测试案例的方法,其特征在于,包括:
对主机程序代码进行解析,根据编码语言的关键字识别出各个功能模块;
根据所述各个功能模块对资源的所有操作,生成所述各个功能模块的所有合成桩,并将所述合成桩插入到每个功能模块的程序中;
执行程序,采集作业队列中的信息,并对采集到的信息进行过滤清洗,将符合所述程序对应的合成桩的信息按照合成桩分别整理,生成有效信息;
对所述有效信息进行深度分析,将资源按照操作符的先后顺序生成资源有向网络图;
将所述资源有向图通过遍历算法遍历出所有路径,生成所有以资源为线索的测试案例。
2.根据权利要求1所述的基于主机代码解析生成测试案例的方法,其特征在于,所述对主机程序代码进行解析,根据编码语言的关键字识别出各个功能模块,还包括:
根据存储在代码分析数据库中的操作符关键字、资源关键字,识别出所述每个功能模块对资源所采用的所有操作。
3.根据权利要求2所述的基于主机代码解析生成测试案例的方法,其特征在于,所述根据所述各个功能模块对资源的所有操作,生成所述各个功能模块的所有合成桩,并将所述合成桩插入到每个功能模块的程序中,具体包括:
根据所述各个功能模块对资源所采用的所有操作,结合存储在代码分析数据库中的操作符关键字、资源关键字,生成所有“操作-类型-资源”的合成桩,并在每个功能模块的程序末插入所述合成桩。
4.根据权利要求3所述的基于主机代码解析生成测试案例的方法,其特征在于,所述对所述有效信息进行深度分析,将资源按照操作符的先后顺序生成资源有向网络图,具体包括:
通过对所述有效信息进行解析,搜索过滤数据中指定的分割符号、关键字,将主机资源名和对资源的操作分离出来,形成程序、主机资源及对资源的操作关系,并根据操作符先后顺序,形成程序对资源的操作顺序,生成所述资源有向网络图。
5.根据权利要求4所述的基于主机代码解析生成测试案例的方法,其特征在于,所述将所述资源有向图通过遍历算法遍历出所有路径,生成所有以资源为线索的测试案例,具体包括:
通过对所述资源有向网络图分析,以资源为线索,找到与之相关的全部前后项,搜寻所需的表、文件、程序,通过所述遍历算法,配合资源在程序中的别名,并根据资源和别名的一一对应关系,形成针对主机系统的所有测试案例。
6.一种基于主机代码解析生成测试案例的装置,其特征在于,包括:
代码解析模块,用于对主机程序代码进行解析,根据编码语言的关键字识别出各个功能模块;
合成桩插入模块,用于根据所述各个功能模块对资源的所有操作,生成所述各个功能模块的所有合成桩,并将所述合成桩插入到每个功能模块的程序中;
采集过滤模块,用于在执行程序时采集作业队列中的信息,并对采集到的信息进行过滤清洗,将符合所述程序对应的合成桩的信息按照合成桩分别整理,生成有效信息;
资源有向网络图生成模块,用于对所述有效信息进行深度分析,将资源按照操作符的先后顺序生成资源有向网络图;
测试案例生成模块,用于将所述资源有向图通过遍历算法遍历出所有路径,生成所有以资源为线索的测试案例。
7.根据权利要求6所述的基于主机代码解析生成测试案例的装置,其特征在于,所述代码解析模块用于所述对主机程序代码进行解析,根据编码语言的关键字识别出各个功能模块,其还包括:
根据存储在代码分析数据库中的操作符关键字、资源关键字,识别出所述每个功能模块对资源所采用的所有操作。
8.根据权利要求7所述的基于主机代码解析生成测试案例的装置,其特征在于,所述合成桩插入模块用于根据所述各个功能模块对资源的所有操作,生成所述各个功能模块的所有合成桩,并将所述合成桩插入到每个功能模块的程序中,其具体包括:
根据所述各个功能模块对资源所采用的所有操作,结合存储在代码分析数据库中的操作符关键字、资源关键字,生成所有“操作-类型-资源”的合成桩,并在每个功能模块的程序末插入所述合成桩。
9.根据权利要求8所述的基于主机代码解析生成测试案例的装置,其特征在于,所述资源有向网络图生成模块用于对所述有效信息进行深度分析,将资源按照操作符的先后顺序生成资源有向网络图,其具体包括:
通过对所述有效信息进行解析,搜索过滤数据中指定的分割符号、关键字,将主机资源名和对资源的操作分离出来,形成程序、主机资源及对资源的操作关系,并根据操作符先后顺序,形成程序对资源的操作顺序,生成所述资源有向网络图。
10.根据权利要求9所述的基于主机代码解析生成测试案例的装置,其特征在于,所述测试案例生成模块用于将所述资源有向图通过遍历算法遍历出所有路径,生成所有以资源为线索的测试案例,其具体包括:
通过对所述资源有向网络图分析,以资源为线索,找到与之相关的全部前后项,搜寻所需的表、文件、程序,通过所述遍历算法,配合资源在程序中的别名,并根据资源和别名的一一对应关系,形成针对主机系统的所有测试案例。
CN201611115002.0A 2016-12-07 2016-12-07 一种基于主机代码解析生成测试案例的方法及装置 Active CN106681910B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611115002.0A CN106681910B (zh) 2016-12-07 2016-12-07 一种基于主机代码解析生成测试案例的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611115002.0A CN106681910B (zh) 2016-12-07 2016-12-07 一种基于主机代码解析生成测试案例的方法及装置

Publications (2)

Publication Number Publication Date
CN106681910A true CN106681910A (zh) 2017-05-17
CN106681910B CN106681910B (zh) 2019-10-11

Family

ID=58869557

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611115002.0A Active CN106681910B (zh) 2016-12-07 2016-12-07 一种基于主机代码解析生成测试案例的方法及装置

Country Status (1)

Country Link
CN (1) CN106681910B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109829629A (zh) * 2019-01-07 2019-05-31 平安科技(深圳)有限公司 风险分析报告的生成方法、装置、计算机设备和存储介质
CN113485938A (zh) * 2021-07-27 2021-10-08 中国银行股份有限公司 大型主机的自动化测试方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6189116B1 (en) * 1998-07-14 2001-02-13 Autodesk, Inc. Complete, randomly ordered traversal of cyclic directed graphs
CN101505241A (zh) * 2008-08-20 2009-08-12 北京星网锐捷网络技术有限公司 一种生成测试用例的方法和装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6189116B1 (en) * 1998-07-14 2001-02-13 Autodesk, Inc. Complete, randomly ordered traversal of cyclic directed graphs
CN101505241A (zh) * 2008-08-20 2009-08-12 北京星网锐捷网络技术有限公司 一种生成测试用例的方法和装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
ZHANG MIN等: ""Automated test generation on path -based symbolic execution"", 《2014 IEEE 5TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING AND SERVICE SCIENCE》 *
丁大伟等: ""一种基于有向图的工作流测试方法"", 《微计算机信息》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109829629A (zh) * 2019-01-07 2019-05-31 平安科技(深圳)有限公司 风险分析报告的生成方法、装置、计算机设备和存储介质
CN109829629B (zh) * 2019-01-07 2023-08-22 平安科技(深圳)有限公司 风险分析报告的生成方法、装置、计算机设备和存储介质
CN113485938A (zh) * 2021-07-27 2021-10-08 中国银行股份有限公司 大型主机的自动化测试方法及装置

Also Published As

Publication number Publication date
CN106681910B (zh) 2019-10-11

Similar Documents

Publication Publication Date Title
CN110309071B (zh) 测试代码的生成方法及模块、测试方法及系统
US8151248B1 (en) Method and system for software defect management
CN109144882A (zh) 一种基于程序不变量的软件故障定位方法及装置
CN111382070B (zh) 兼容性测试方法、装置、存储介质和计算机设备
CN109344056B (zh) 一种测试方法以及测试装置
CN109857641A (zh) 对程序源文件进行缺陷检测的方法及装置
CN109918296A (zh) 软件自动化测试方法及装置
CN101866315A (zh) 软件开发工具的测试方法及系统
CN110059006A (zh) 代码审计方法及装置
CN102043720A (zh) 利用sql语句自动生成测试数据的方法和装置
CN106021116A (zh) 复杂系统中不可达函数调用路径检测方法
CN106681910A (zh) 一种基于主机代码解析生成测试案例的方法及装置
CN106886417A (zh) 一种线性时态逻辑规范的通用并行挖掘方法
CN102087629A (zh) 一种基于Agent嵌入式软件的不变量测试方法与工具
Hong et al. Evaluation of model checkers by verifying message passing programs
CN103235757A (zh) 基于自动化造数对输入域测试对象进行测试的装置和方法
CN106649121A (zh) 一种测试结果分析方法及装置
Elmqvist et al. Safety-oriented design of component assemblies using safety interfaces
CN109165155B (zh) 一种基于聚类分析的软件缺陷修复模板提取方法
Toth et al. Using version control history to follow the changes of source code elements
CN116340940A (zh) 代码识别方法、终端设备及存储介质
CN114969115A (zh) 基于标准化元数据体系的数据管理方法和系统
CN113342632A (zh) 仿真数据自动化处理方法、装置、电子设备及存储介质
CN106970791A (zh) 一种线性时态逻辑规范的通用并行挖掘系统
CN106528179A (zh) 一种Java类依赖关系的静态识别方法

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