CN103838672B - 一种通用报表的自动化测试方法及装置 - Google Patents
一种通用报表的自动化测试方法及装置 Download PDFInfo
- Publication number
- CN103838672B CN103838672B CN201410077108.0A CN201410077108A CN103838672B CN 103838672 B CN103838672 B CN 103838672B CN 201410077108 A CN201410077108 A CN 201410077108A CN 103838672 B CN103838672 B CN 103838672B
- Authority
- CN
- China
- Prior art keywords
- test
- data
- software
- case
- program
- 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
Links
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明提供了一种通用报表的自动化测试方法及装置,方法包括:按预设的关键字解析软件需求说明书,生成报表形式的软件测试需求数据;根据软件测试需求数据和预存储的测试用例模板生成测试用例;根据软件测试需求数据和预存储的UML程序流程图生成测试数据;根据软件测试需求数据拼接SQL语句生成对应测试用例的测试程序;根据测试数据和测试程序生成各测试用例的预期测试结果报表;根据软件测试需求数据和预存储的自动化脚本参数配置生成测试工具可识别的自动化脚本参数表;根据测试数据和自动化脚本参数表利用测试工具生成各测试用例的模拟测试结果报表;比对预期测试结果报表和模拟测试结果报表生成测试结果。
Description
技术领域
本发明涉及计算机应用软件的测试技术领域,特别是涉及一种基于通用报表的自动化测试方法及装置。
背景技术
随着计算机信息技术的日益普及,公司企业引进科技管理,采用电子的报表,这些报表少则千张,多则几千万张。报表格式相对于其他数据提供的形式来说,具有简单、直观和规范等特点,但各行各业及甚至同一单位中的各部门对于报表的格式要求不一样,而且报表的标题、表头、表尾等添加项的样式也多种多样。
在现有的报表的测试流程中,测试设计人员首先要向业务人员了解报表功能,再根据软件需求编写测试用例,之后测试执行人员根据这个测试用例采用多种方式进行测试数据和测试结果准备,诸如oracle编程方式、excel公式或宏编程方式、计算器手工计算方式等等,最后根据准备的结果和***中生成的报表用人工肉眼比对验证其正确性。这种测试方法,对于测试设计人员需要具备较高的业务知识、技术与经验,测试执行人员也需要足够的责任心,若需求有变更,就需要测试设计人员及时增添或修改相应的用例描述,测试执行人员进行数据和结果准备的修改,频繁的同张报表的设计测试,就会导致人力成本大大提高,数据核对出错的概率也相对上升。
发明内容
本发明的目的是在于实现可以采用配置化的方式,方便、灵活的生成报表测试数据、自动化脚本参数表及对应的报表准备结果,批量进行报表结果比对。
本发明实施例提供了一种通用报表的自动化测试方法,方法包括:
按预设的关键字解析软件需求说明书,生成报表形式的软件测试需求数据;
根据所述软件测试需求数据和预存储的测试用例模板生成测试用例;
根据所述的软件测试需求数据和预存储的标准建模语言UML(UnifiedModelingLanguage)程序流程图生成测试数据;
根据所述软件测试需求数据拼接SQL语句生成对应所述测试用例的测试程序;
根据所述测试数据和测试程序生成各测试用例的预期测试结果报表;
根据所述软件测试需求数据和预存储的自动化脚本参数配置生成测试工具可识别的自动化脚本参数表;
根据所述测试数据和自动化脚本参数表利用测试工具生成各测试用例的模拟测试结果报表;
比对所述预期测试结果报表和模拟测试结果报表生成测试结果。
此外,本发明还提供了一种通用报表的自动化测试装置,装置包括:
解析模块,用于按预设的关键字解析软件需求说明书,生成报表形式的软件测试需求数据;
测试用例生成模块,用于根据所述软件测试需求数据和预存储的测试用例模板生成测试用例;
测试数据生成模块,用于根据所述的软件测试需求数据和预存储的UML程序流程图生成测试数据;
测试程序生成模块,用于根据所述软件测试需求数据拼接SQL语句生成对应所述测试用例的测试程序;
预期测试结果生成模块,用于根据所述测试数据和测试程序生成各测试用例的预期测试结果报表;
自动化脚本参数表生成模块,用于根据所述软件测试需求数据和预存储的自动化脚本参数配置生成测试工具可识别的自动化脚本参数表;
模拟测试结果生成模块,用于根据所述测试数据和自动化脚本参数表利用测试工具生成各测试用例的模拟测试结果报表;
测试结果生成模块,用于比对所述预期测试结果和模拟测试结果生成测试结果。
本发明可以方便、灵活的获取测试用例,实现对测试用例的管理,提高测试人员测试软件的效率,采用配置化的方式,方便、灵活的生成报表测试数据、自动化脚本参数表及对应的报表准备结果,批量进行报表结果比对。
为让本发明的上述和其他目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附图式,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一种基于通用报表的自动化测试方法的流程图;
图2为本发明一种基于通用报表的自动化测试装置的框图;
图3为本发明实施例提供的一种通用报表自动化测试装置结构图;
图4为本发明实施例通用报表自动化测试装置的数据管理装置的结构图;
图5为本发明实施例通用报表自动化测试装置的数据处理装置的内部结构图;
图6为本发明实施例通用报表自动化测试装置的测试要素生成装置的内部结构图;
图7为本发明实施例提供的一种通用报表自动化测试方法流程图
图8为本发明实施例通用报表自动化测试方法的步骤分解图;
图9为本发明的通用报表自动化测试方法流程步骤分解图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种基于通用报表的自动化测试方法,如图1所示,该方法包括:
步骤S101,按预设的关键字解析软件需求说明书,生成报表形式的软件测试需求数据;
本实施例中的报表形式的软件测试需求数据包括:项目基础信息、报表基本信息、报表查询界面、数据源信息、表样及逻辑信息,所述项目基础信息、报表基本信息、报表查询界面、数据源信息、表样及逻辑信息均具有标志位,需生成测试用例的软件测试需求数据标志位为1,表样及逻辑信息包括:对应SQL语句的相应字段内容。
存储的项目基础信息,如表1所示:
表1
项目名称 | 项目成员 | 项目时间 | 项目背景 | ***地址 | 使用用户数 | 标志位 |
报表基本信息,如表2所示:
表2
报表查询界面(前台参数),如表3所示:
表3
数据源信息,如表4所示:
表4
表样及逻辑,如表5所示:
表5
步骤S102,根据软件测试需求数据和预存储的测试用例模板生成测试用例;
本发明中,根据标志位确定需生成的测试用例的软件测试需求数据清单;根据所述软件测试需求数据清单和预存储的测试用例模板生成测试用例。
步骤S103,根据软件测试需求数据和预存储的UML程序流程图生成测试数据;
步骤S104,根据软件测试需求数据拼接SQL语句生成对应所述测试用例的测试程序;根据对应SQL语句的相应字段内容拼接SQL语句,生成对应测试用例的测试程序。
步骤S105,根据测试数据和测试程序生成各测试用例的预期测试结果报表;
生成各测试用例的预期测试结果报表具体为,根据测试程序运行测试数据确定所述表样及逻辑信息中各单元格的数值;
根据确定的表样信息中各单元格的数值生成各测试用例的预期测试结果报表。
步骤S106,根据软件测试需求数据和预存储的自动化脚本参数配置生成测试工具可识别的自动化脚本参数表;
步骤S107,根据测试数据和自动化脚本参数表利用测试工具生成各测试用例的模拟测试结果报表;
步骤S108,比对预期测试结果报表和模拟测试结果报表生成测试结果。
根据所述的软件测试需求数据和预存储的UML程序流程图生成测试数据包括:
根据软件测试需求数据获取预存储的对应的UML程序流程图;
根据所述UML程序流程图确定测试路径;
根据改进后的遗传算法和确定的测试路径生成测试数据。
此外,本发明还提供了一种基于通用报表的自动化测试装置,如图2所示,装置包括:
解析模块201,用于按预设的关键字解析软件需求说明书,生成报表形式的软件测试需求数据;
测试用例生成模块202,用于根据所述软件测试需求数据和预存储的测试用例模板生成测试用例;
测试数据生成模块203,用于根据所述的软件测试需求数据和预存储的UML程序流程图生成测试数据;
测试程序生成模块204,用于根据所述软件测试需求数据拼接SQL语句生成对应所述测试用例的测试程序;
预期测试结果生成模块205,用于根据所述测试数据和测试程序生成各测试用例的预期测试结果报表;
自动化脚本参数表生成模块206,用于根据所述软件测试需求数据和预存储的自动化脚本参数配置生成测试工具可识别的自动化脚本参数表;
模拟测试结果生成模块207,用于根据所述测试数据和自动化脚本参数表利用测试工具生成各测试用例的模拟测试结果报表;
测试结果生成模块208,用于比对所述预期测试结果和模拟测试结果生成测试结果。
本发明实施例中的测试用例生成模块202包括:
清单确定单元,用于根据所述报表属性确定需生成的测试用例的软件测试需求数据清单;
测试用例生成单元,用于根据所述软件测试需求数据清单和预存储的测试用例模板生成测试用例。
测试数据生成模块203包括:
流程图确定单元,用于获取预存储的对应的UML程序流程图;
测试路径确定单元,根据所述UML程序流程图确定测试路径;
测试数据生成单元,用于根据改进后的遗传算法和确定的测试路径生成测试数据。
预期测试结果生成模块205包括:
单元格数字确定单元,用于根据所述测试程序运行测试数据确定所述表样信息中各单元格的数值;
测试结果报表生成单元,根据确定的表样信息中各单元格的数值生成各测试用例的预期测试结果报表。
下面结合具体的实施方式对本发明实施例做进一步详细说明:
本发明提供了一种通用报表自动化测试装置及方法。首先通过将软件需求说明书解析成结构化的文档数据,分为需求要素,数据源要素,报表逻辑,再根据参数配置自动匹配模板生成报表的测试用例及测试程序,对所选取的路径生成测试数据,测试人员可以随时根据业务需求的变化,使用装置重新解析软需变更的内容,装置自动判断变化点并修改测试用例、测试数据、自动化脚本及用于测试的比对结果的报表。
首先对本发明实施例中所涉及到的术语进行说明:
结构化:指把树状文件***的原理应用到单个的文件中,使得单个文件也能象文件***一样包含"子目录","子目录"还可以包含更深层次的"子目录",各个"目录"可以含多个文件,把原来需要多个文件存储的内容按树状结构和层次保存到一个文件中,便于在单个文件就能明确内容的归属关系和分类关系。
标志位:对应需要生成测试用例的内容进行的标注,若是需生成的标志位置“1”,否则置“0”。
显性参数:在B/S或C/S架构中,报表在前台筛选的参数。
隐性参数:报表后台数据处理时,where条件中使用的参数。
下面对本发明的技术方案进行详细说明。
图3是本发明实施例提供的一种通用报表自动化测试装置结构图,包括输入装置1,数据管理装置2,数据处理装置3,测试工具4。
输入装置1:负责接收报表的软件需求说明书并将软件需求说明书传给数据处理装置3。
数据管理装置2:负责存储数据处理过程中的所有数据,及保存最后生成的测试用例、测试数据、自动化脚本参数表及用于测试的比对结果的报表。
数据处理装置3:负责接收输入装置1传输的项目软件需求说明书,并对该文件进行解析,将解析后的文档数据按项目编号存储在数据管理装置2中,同时分别从功能测试、流程测试和性能测试多角度生成测试用例;采用SQL语句拼接生成测试程序;根据程序规格书中描述的程序/模块流程图,对控制流和数据流测试中所采用的覆盖标准优化选取测试路径,并以改进后的遗传算法为核心,在改进后的遗传算法中,根据遗传代数D、种群P和每个变量的编码长度T、测试路径及对应参数,使用随机数初始化该路径的变量,将每个输入参数单独编码成二进制位串,然后计算这些初始化变量的适应值函数,接着判断适应值函数值是否等于0,若为0,则保留最好个体,将其转换成十进制数存储到数据管理装置中,继续循环,淘汰适值函数大的个体,小的个体自身进行复制,在保留的个体中随机加入一些变异,产生新个体后,重新计算适应值函数,判断适应值函数值是否为0,直到P=0和实际产生代数<D,循环结束,生成测试数据。
测试数据生成后,运行测试程序,得到用于测试的比对结果的报表;使用报表前台参数全组合的策略,勾取自动化参数配置表中的步骤类型、对象类型、动作类型、对象属性,生成测试自动化脚本参数表,最后将项目编号传输给测试工具4。
测试工具4:是支持软件测试的商业工具,主要完成测试工作的底层功能,能够完成***执行过程控制、页面的浏览运行及错误信息获取等,测试工具可以是专业的程序测试工具、调试工具等。本装置负责接收数据处理装置3传输的项目编号,根据项目编号从数据管理装置2中读取项目测试数据,在测试***中运行,批量数据运行结束后,模拟人工操作执行测试用例点出报表,批量比对报表,同时将用例执行结果记录在数据管理装置2中。
图4是本发明实施例中的通用报表自动化测试装置的数据管理装置2的内部结构图,包括:结构化软需存储单元21,测试用例模板存储单元22,项目测试用例存储单元23,项目测试数据存储单元24,项目测试程序存储单元25,项目自动化脚本参数表存储单元26、项目用于测试的比对结果的报表存储单元27,自动化参数配置表存储单元28,项目程序/模块流程图存储单元29,项目测试***点出的报表存储单元30,测试用户存储单元31。
结构化软需存储单元21:负责存储数据处理装置3解析出的报表形式的软件测试需求数据,即项目基础信息、报表基本信息、报表查询界面(前台参数)、数据源信息、表样及逻辑。
测试用例模板存储单元22:负责存储单个功能构件的测试要点、步骤和方法。可以是如下表6所示的结构:
表6
项目测试用例存储单元23:负责存储项目的测试要点、步骤和方法。可以是如下表7所示的结构:
表7
项目测试数据存储单元24:负责存储项目的测试数据。可以是如下表8所示的结构:
表8
项目名称 | 数据源名称 | 文本格式 | 字段1 | 。。。 | 字段N |
项目测试程序存储单元25:负责存储项目的测试程序。可以是如下表9所示的结构:
表9
项目名称 | 报表名 | 序号 | CELL编号 | SQL语句 | 用例编号 |
项目自动化脚本参数表存储单元26:负责存储项目的自动化脚本参数表。可以是如下表10的结构:
表10
项目名称 | 报表名 | 步骤类型 | 对象类型 | 动作类型 | 对象属性 | 数据 | 用例编号 |
项目用于测试的比对结果的报表存储单元27:负责存储用于测试的excel形式比对结果的报表。
自动化参数配置表存储单元28:负责存储用于将前台全组合参数转换为测试工具4可识别的参数表,如表11所示。
表11
控件说明 | 步骤类型 | 对象类型 | 动作类型 | 对象属性 |
项目程序/模块流程图存储单元29:负责存储UML程序/模块流程图,一般为有向图。
项目测试***点出的报表存储单元30:负责存储测试***点出的excel报表。
测试用户存储单元31:负责存储***各个权限的用户名和密码,如表12所示。
表12
字段名称 | 字段说明 |
报表访问用户 | 同“报表基本信息”中的报表访问用户,例如:总行用户 |
用户名 | 预先定义好的用户英文名,例如:icbc |
用户密码 | 预先定义好的用户密码,例如:12345679 |
图5是本发明实施例中通用报表自动化测试装置的数据处理装置3的内部结构图,包括:文件解析装置31,测试清单判断装置32,测试要素生成装置33,报表生成装置34。
文件解析装置31:负责从数据管理装置3中获取WORD型式的软件需求说明书,并通过WORD已有格式,按关键字从软件需求说明书中抽取项目基础信息、报表基本信息、报表查询界面、数据源信息、表样及逻辑,将这些信息存储在结构化软需存储单元21中,并将项目编号传输给测试清单判断装置32。
其中表样及逻辑的结构化具体处理流程如下:
获取excel表中表样信息,及对应逻辑,利用excel中cell自身特点,定位报表表头,以cell为最小单位,若出现一行或一列是同样的取数逻辑,则使用“范围”来描述和定位位置;存入数据库时,对于一个单元格,使用的是多个数据源取出的数据进行汇总,则“类型”选择复合逻辑,最后值填入的是“汇总级别”=1的;若某个单元格的内容是其他单元格内容之和,则“类型”选择层级逻辑,在“Select”格填写使用的格子,“汇总级别”=1。
测试清单判断装置32:负责接收文件解析装置31传输的项目编号,根据项目编号从结构化软需存储单元21中读取项目基础信息、报表基本信息、报表查询界面、数据源信息、表样及逻辑。判断报表基本信息中的报表属性,若是“新增”,标志位都置“1”;若是“修改”,需和数据库中已存报表信息进行比对,比对的内容包括:表样、数据源、报表逻辑、使用权限等,比对出需要修改的内容在标志位置“1”;否则标志位都置“0”;所有标志位为“1”的作为项目报表需生成用例的清单,并传输项目编号给测试要素生成装置33。
测试要素生成装置33:负责接收测试清单判断装置32传输的项目编号,根据项目编号从结构化软需存储单元21读取项目基础信息、报表基本信息、报表查询界面、数据源信息、表样及逻辑,生成项目测试用例,测试数据,测试自动化脚本参数表,测试程序,完成后传输项目编号给报表生成装置34。
报表生成装置34:负责接收测试要素生成装置32传输的项目编号,根据项目编号运行测试程序,即生成报表中各个CELL的数值,将各个CELL数值按其对应的位置填入excel报表中,生成含表样的报表预期结果。
图6是本发明实施例中的通用报表自动化测试装置的测试要素生成装置33的内部结构图,包括:测试用例生成装置331,测试数据生成装置332,测试程序生成装置333,测试自动化脚本参数表生成装置334。
测试用例生成装置331:负责接收到文件解析装置31传输的项目编号,从结构化软需存储单元21中获取本次项目报表需生成用例的清单,通过将报表基本信息的报表所在路径和报表查询界面中的前台可选参数、值域、默认选项、控件说明、前台参数间的约束关系的内容和测试用例模板中的“功能名称”进行匹配,生成项目功能测试用例;对用户权限和前台显性参数全组合出所有参数,将每个组合作为一条流程测试用例;同时将“表样及逻辑”中的信息按报表名,CELL编号,CELL逻辑合成,每个CELL表样和数据准确性生成一条流程测试用例;根据使用用户数量,报表展现速度等信息,匹配测试用例模板生成性能测试用例。生成的用例按项目存储在项目测试用例存储单元23中。
测试数据生成装置332:负责接收到文件解析装置31传输的项目编号,从结构化软需存储单元21中获取项目UML程序/模块流程图,通过对项目测试中所采用的覆盖标准优化选取测试路径,以改进后的遗传算法为核心,对所选取的路径生成测试数据。生成的测试数据按项目存储在项目测试数据存储单元24中。根据程序规格书中描述的程序/模块流程图,对控制流和数据流测试中所采用的覆盖标准优化选取测试路径,并以改进后的遗传算法为核心,在改进后的遗传算法中,根据遗传代数D、种群P和每个变量的编码长度T、测试路径及对应参数,使用随机数初始化该路径的变量,将每个输入参数单独编码成二进制位串,然后计算这些初始化变量的适应值函数,接着判断适应值函数值是否等于0,若为0,则保留最好个体,将其转换成十进制数存储到数据管理装置中,继续循环,淘汰适值函数大的个体,小的个体自身进行复制,在保留的个体中随机加入一些变异,产生新个体后,重新计算适应值函数,判断适应值函数值是否为0,直到P=0和实际产生代数<D,循环结束,生成测试数据。
测试程序生成装置333:负责接收到文件解析装置31传输的项目编号,从结构化软需存储单元21中获取每个CELL对应的SELECT,FROM,WHERE,Groupby,ORDERBY的值,将这些值拼接成SQL语句,运行SQL语句,生成报表中各个CELL的数值,再将各个CELL数值按其对应的位置填入excel报表中,生成含表样的报表预期结果。生成的含表样的报表预期结果按项目存储在项目测试程序存储单元25中。
测试自动化脚本参数表生成装置334:负责从结构化软需存储单元21中获取用户权限,到测试用户存储单元31中勾取出登入用户名和用户密码;同时获取项目基础信息中的***地址和报表基本信息中报表所在路径;再将报表查询界面(前台参数)表中的前台显性参数全组合出所有参数,最后通过报表查询界面(前台参数)的控件名称勾取自动化参数配置表存储单元28中的步骤类型、对象类型、动作类型、对象属性,转换为固定格式的自动化脚本参数表。生成的测试自动化脚本参数表按项目存储在项目自动化脚本参数表存储单元26中。
图7是本发明实施例提供的一种通用报表自动化测试方法流程图。包括步骤:
步骤S701:导入软件需求说明书,输入装置1接收word格式的项目软件需求说明书,并将项目编号传输给文件解析装置31。
步骤S702:解析软件需求说明书,文件解析装置31从软件需求说明书中解析出项目基础信息、报表基本信息、报表查询界面、数据源信息、表样及逻辑,保存在结构软需存储单元21中。
步骤S703:判断报表基本信息中的报表属性,测试清单判断装置32从结构软需存储单元21中读取项目基础信息、报表基本信息、报表查询界面、数据源信息、表样及逻辑,根据报表基本信息中的报表属性对其他信息设置标志位,同时对所有标志位为“1”的作为项目报表需生成用例的清单。
步骤S704:生成测试用例,测试用例生成装置331从结构软需存储单元21中获取本次项目报表需生成用例的清单,分别从3方面生成测试用例,并按项目存储在项目测试用例存储单元23中。
步骤S705:生成测试数据,测试数据生成装置332从项目程序/模块流程图存储单元29中获取UML程序/模块流程图,通过对项目测试中所采用的覆盖标准优化选取测试路径,对所选取的路径生成测试数据,并存储在项目数据存储单元24中。
步骤S706:生成测试程序,测试程序生成装置333从结构化软需存储单元21中获取表样及逻辑,运行测试程序拼接本项目中每张报表的SQL程序,将生成的测试数据按项目存储在项目测试程序存储单元25中。
步骤S707:生成含表样的报表结果,报表生成装置34接收到测试程序生成装置333发送的项目编号,从项目测试程序存储单元25中获取测试程序,按顺序运行测试程序,生成含表样的报表预期结果。
步骤S708:生成测试自动化脚本参数,测试自动化脚本参数表生成装置334接收到报表生成装置34发送的项目编号,通过获取用户权限、***地址、前台显性参数等数据,并读取自动化参数配置表存储单元,生成自动化测试脚本参数表。
步骤S709:读取想买测试数据,测试工具4接收到数据处理装置3传输的项目编号,根据项目编号从项目数据存储单元24中读取项目测试数据。
步骤S710:测试工具4模拟测试人员操作,启动测试***。
步骤S711:批量数据运行结束后,测试工具4模拟测试人员操作,执行测试用例点出报表,并将测试***点出的报表按项目存储在项目测试***点出的报表存储单元30中。
步骤S712:测试工具4调动批量报表比对工具,将预期和实际点出的报表进行比对。
步骤S713:在点报表和比对报表的过程中,测试工具4将报错信息和比对结果,同步更新数据管理装置2的测试用例。
图8是本发明的通用报表自动化测试方法流程的步骤S704的分解图。包括:
步骤S801:测试用例生成装置331接收到文件解析装置31传送的项目编号后,从结构化软需存储单元21中获取本次项目报表需生成用例的清单。
步骤S802:测试用例生成装置331分别将用例清单中的内容和测试用例模板进行匹配,生成项目功能测试用例。
步骤S803:测试用例生成装置331对用户权限和前台显性参数全组合出所有参数表,将每个组合作为一条流程测试用例;同时将每个CELL表样和数据准确性生成一条流程测试用例。
步骤S804:测试用例生成装置331获取使用用户数量,报表展现速度等信息和测试用例模板进行匹配,生成性能测试用例。
步骤S805:测试用例生成装置331将所有用例都按照项目导入项目测试用例存储单元23中。
图9是本发明的通用报表自动化测试方法流程的步骤S706的分解图,包括:
步骤S901:测试程序生成装置333从结构化软需存储单元11中获取报表的表样及每个CELL对应的逻辑,where条件(隐性参数),同时从“报表查询界面(前台参数)”中获取前台可选参数(显性参数)。
步骤S902:测试程序生成装置333从结构化软需存储单元11中获取每个CELL对应的SELECT,FROM,WHERE,Groupby,ORDERBY的值,将这些值拼接成SQL语句,并导入项目测试程序存储单元25。
步骤S903:测试程序生成装置333按项目顺序运行项目测试程序存储单元15中的select语句,生成报表中各个CELL的数值。
步骤S904:测试程序生成装置333将各个CELL数值按其对应的位置填入excel报表中,生成含表样的报表预期结果。
步骤S905:测试程序生成装置333按照项目存储在项目用于测试的比对结果的报表存储单元27中。
下面结合电子银行业务收入统计项目,对本发明实施例做进一下详细阐述:
第一步:使用数据处理装置3解析软件需求说明书。
第二步:以电子银行业务收入状况表为例,报表属性为“新增”,结构化软需存储单元21中标志位置“1”。
解析后的软需结构化的文档数据如下:
●项目基础信息
●报表基本信息
●报表查询界面(前台参数)
●数据源信息
●表样及逻辑
第三步:参照图6测试用例获取流程,首先测试用例生成装置331分别将结构化软需存储单元21中标志位置“1”的“前台可选参数”、“值域”、“默认选项”等和测试用例模板中的“功能名称”进行匹配,生成项目功能测试用例和性能测试用例(如:用例编号1,2,3);然后将用户权限和前台显性参数全组合出所有参数表中所有全组合成流程测试用例(如:用例编号4),再将“表样及逻辑”中的信息按报表名,CELL编号,CELL逻辑合成(如:用例编号5)。
具体项目用例如下:以T开头是功能测试用例,P业务流程测试用例,L性能测试用例。
第四步:参照图7测试程序获取流程,将解析后的软需结构化的报表及逻辑中的Select,From,Where,Groupby,Orderby对应的单元格中的数值,按Select*From*Where*Groupby*Orderby拼接出简单SQL语句,具体项目测试程序如下:
第五步:测试数据生成后,数据处理装置3的测试程序生成装置按顺序运行测试程序,生成对应CELL的值。
第六步:将各个CELL数值按其对应的位置填入excel报表中
第七步:将文件解析装置31解析出的报表基本信息表中的用户权限是总行用户,到测试用户存储单元中勾取出登入用户名icbc,用户密码12345679;同时将报表查询界面(前台参数)表中的前台显性参数全组合出所有参数组合,如下表:
第八步:测试自动化脚本参数表生成装置334,获取报表基本信息中报表所在路径“综合报表-〉电子银行”;通过报表查询界面(前台参数)各个参数的控件名称勾取自动化参数配置表存储单元18中的步骤类型、对象类型、动作类型、对象属性,将第七步组合出的参数组合转换为以下格式的具体自动化脚本参数表,此例只描述了一组场景,报表频度&下拉选项(上旬),报表日期&日历选项(2012年1月10日),业务线&下拉选项(电子银行),产品类型&下拉选项(渠道):
第九步:测试工具4接收到数据处理装置3传输的项目编号,根据项目编号从项目数据存储单元24中读取项目测试数据。
第十步:测试工具4在测试***中加载数据,模拟测试人员操作,启动测试***。
第十一步:批量数据运行结束后,测试工具4模拟测试人员操作,执行测试用例点出报表,并将测试***点出的报表按项目存储在项目测试***点出的报表存储单元30中。
第十二步:测试工具4调动批量报表比对工具,将预期和实际点出的报表进行比对。
第十三步:在点报表和比对报表的过程中,测试工具4将报错信息和比对结果,同步更新数据管理装置2的测试用例。
本发明提供了一种通用报表自动化测试装置及方法。通过对软需的解析,采用配置化方法完成测试用例、测试数据、自动化脚本及用于测试的比对结果的报表的准备,使用专业的程序测试工具实现全自动测试操作,其效果和优点体现在以下几个方面:
1、本发明克服了目前在对报表进行测试时人工进行测试准备和***测试的不足,可大大提高对报表的自动化测试效率,将有效提高软件质量,保障企业的生产稳定与安全;
2、本发明通过一种报表测试管理方法,方便、灵活的获取测试用例,实现对测试用例的管理,提高测试人员测试软件的效率。
3、本发明解决了目前自动化测试中存在的脚本兼容性、通用性和复用性差的问题,克服了传统的录制和编写脚本方式下对测试人员技术要求高,实现自动化进行测试***测试,提高了自动化测试的通用性、复用性、易用性和可维护性,降低了测试工作的人力资源成本。
本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种通用报表的自动化测试方法,其特征在于,所述的方法包括:
按预设的关键字解析软件需求说明书,生成报表形式的软件测试需求数据,其中,所述的报表形式的软件测试需求数据包括:项目基础信息、报表基本信息、报表查询界面、数据源信息、表样及逻辑信息;所述项目基础信息、报表基本信息、报表查询界面、数据源信息、表样及逻辑信息均具有标志位,需生成测试用例的软件测试需求数据标志位为1;逻辑信息为每个CELL对应的逻辑,逻辑包括隐性参数和显性参数,其中,显性参数是指在B/S或C/S架构中报表在前台筛选的参数,隐性参数是指报表后台数据处理时where条件中使用的参数;
根据所述软件测试需求数据和预存储的测试用例模板生成测试用例;
根据所述的软件测试需求数据和预存储的标准建模语言UML程序流程图生成测试数据,具体包括:根据所述软件测试需求数据获取预存储的对应的UML程序流程图;根据所述UML程序流程图确定测试路径;根据改进后的遗传算法和确定的测试路径生成测试数据;
根据所述软件测试需求数据拼接SQL语句生成对应所述测试用例的测试程序;
根据所述测试数据和测试程序生成各测试用例的预期测试结果报表;
根据所述软件测试需求数据和预存储的自动化脚本参数配置生成测试工具可识别的自动化脚本参数表;
根据所述测试数据和自动化脚本参数表利用测试工具生成各测试用例的模拟测试结果报表;
比对所述预期测试结果报表和模拟测试结果报表生成测试结果。
2.如权利要求1所述的自动化测试方法,其特征在于,所述的表样及逻辑信息包括:对应SQL语句的相应字段内容。
3.如权利要求1所述的自动化测试方法,其特征在于,所述的根据所述软件测试需求数据和预存储的测试用例模板生成测试用例包括:
根据标志位确定需生成的测试用例的软件测试需求数据清单;
根据所述软件测试需求数据清单和预存储的测试用例模板生成测试用例。
4.如权利要求2所述的自动化测试方法,其特征在于,所述的根据所述软件测试需求数据拼接SQL语句生成对应所述测试用例的测试程序包括:
根据所述对应SQL语句的相应字段内容拼接SQL语句,生成对应所述测试用例的测试程序。
5.如权利要求4所述的自动化测试方法,其特征在于,所述的根据所述测试数据和测试程序生成各测试用例的预期测试结果包括:
根据所述测试程序运行测试数据确定所述表样及逻辑信息中各单元格的数值;
根据确定的表样及逻辑信息中各单元格的数值生成各测试用例的预期测试结果报表。
6.一种通用报表的自动化测试装置,其特征在于,所述的装置包括:
解析模块,用于按预设的关键字解析软件需求说明书,生成报表形式的软件测试需求数据,其中,所述的报表形式的软件测试需求数据包括:项目基础信息、报表基本信息、报表查询界面、数据源信息、表样及逻辑信息,所述项目基础信息包括项目编号,报表基本信息包括报表属性,所述项目基础信息、报表基本信息、报表查询界面、数据源信息、表样及逻辑信息均具有标志位,需生成测试用例的软件测试需求数据标志位为1;逻辑信息为每个CELL对应的逻辑,逻辑包括隐性参数和显性参数,其中,显性参数是指在B/S或C/S架构中报表在前台筛选的参数,隐性参数是指报表后台数据处理时where条件中使用的参数;
测试用例生成模块,用于根据所述软件测试需求数据和预存储的测试用例模板生成测试用例;
测试数据生成模块,用于根据所述的软件测试需求数据和预存储的标准建模语言UML程序流程图生成测试数据;
测试程序生成模块,用于根据所述软件测试需求数据拼接SQL语句生成对应所述测试用例的测试程序;
预期测试结果生成模块,用于根据所述测试数据和测试程序生成各测试用例的预期测试结果报表;
自动化脚本参数表生成模块,用于根据所述软件测试需求数据和预存储的自动化脚本参数配置生成测试工具可识别的自动化脚本参数表;
模拟测试结果生成模块,用于根据所述测试数据和自动化脚本参数表利用测试工具生成各测试用例的模拟测试结果报表;
测试结果生成模块,用于比对所述预期测试结果和模拟测试结果生成测试结果,
其中,所述的测试数据生成模块包括:
流程图确定单元,用于根据所述软件测试需求数据获取预存储的对应的UML程序流程图;
测试路径确定单元,根据所述UML程序流程图确定测试路径;以及
测试数据生成单元,用于根据改进后的遗传算法和确定的测试路径生成测试数据。
7.如权利要求6所述的自动化测试装置,其特征在于,所述的表样及逻辑信息包括:对应SQL语句的相应字段内容。
8.如权利要求6所述的自动化测试装置,其特征在于,所述的测试用例生成模块包括:
清单确定单元,用于根据所述报表属性确定需生成的测试用例的软件测试需求数据清单;
测试用例生成单元,用于根据所述软件测试需求数据清单和预存储的测试用例模板生成测试用例。
9.如权利要求7所述的自动化测试装置,其特征在于,所述的测试程序生成模块进一步根据所述对应SQL语句的相应字段内容拼接SQL语句,生成对应所述测试用例的测试程序。
10.如权利要求9所述的自动化测试装置,其特征在于,所述的预期测试结果生成模块包括:
单元格数字确定单元,用于根据所述测试程序运行测试数据确定所述表样及逻辑信息中各单元格的数值;
测试结果报表生成单元,根据确定的表样及逻辑信息中各单元格的数值生成各测试用例的预期测试结果报表。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410077108.0A CN103838672B (zh) | 2014-03-04 | 2014-03-04 | 一种通用报表的自动化测试方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410077108.0A CN103838672B (zh) | 2014-03-04 | 2014-03-04 | 一种通用报表的自动化测试方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103838672A CN103838672A (zh) | 2014-06-04 |
CN103838672B true CN103838672B (zh) | 2016-12-07 |
Family
ID=50802195
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410077108.0A Active CN103838672B (zh) | 2014-03-04 | 2014-03-04 | 一种通用报表的自动化测试方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103838672B (zh) |
Families Citing this family (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104462933A (zh) * | 2014-12-01 | 2015-03-25 | 中广核工程有限公司 | 核电站安全级软件验证与确认方法和*** |
CN104536885A (zh) * | 2014-12-17 | 2015-04-22 | 记忆科技(深圳)有限公司 | 一种生成Soc随机验证平台的方法 |
CN106293661A (zh) * | 2015-05-22 | 2017-01-04 | 阿里巴巴集团控股有限公司 | 图形报表的生成、生成处理方法及装置 |
CN104881469B (zh) * | 2015-05-27 | 2018-12-18 | 北京京东尚科信息技术有限公司 | 一种数据导出方法和装置 |
CN104866426B (zh) * | 2015-05-28 | 2017-10-17 | 华北计算技术研究所 | 软件测试综合控制方法及*** |
CN106484605A (zh) * | 2015-08-28 | 2017-03-08 | 中兴通讯股份有限公司 | 一种实现软件自动化测试的方法和*** |
CN105373472B (zh) * | 2015-10-10 | 2017-11-28 | 北京中创信测信息技术有限公司 | 一种基于数据库的统计准确性的测试方法及测试*** |
CN107015903B (zh) * | 2016-01-27 | 2021-08-10 | 菜鸟智能物流控股有限公司 | 一种界面测试程序的生成方法、装置及电子设备 |
CN105930262B (zh) * | 2016-03-02 | 2018-04-20 | 平安科技(深圳)有限公司 | 应用程序用户界面自动化测试方法及电子设备 |
CN105808437B (zh) * | 2016-03-09 | 2020-05-12 | 广州优视网络科技有限公司 | 基于测试用例数据表的自动化测试方法及*** |
CN106201887B (zh) * | 2016-07-18 | 2019-04-09 | 优酷网络技术(北京)有限公司 | 一种离线数据任务的验证方法及装置 |
CN106201886B (zh) * | 2016-07-18 | 2019-04-09 | 优酷网络技术(北京)有限公司 | 一种实时数据任务的验证的代理方法及装置 |
CN107391372A (zh) * | 2017-07-19 | 2017-11-24 | 中国银行股份有限公司 | 一种数据加工功能测试方法及*** |
CN107562955A (zh) * | 2017-09-30 | 2018-01-09 | 北京酷我科技有限公司 | 一种sql语句的快速生成方法 |
CN107885710A (zh) * | 2017-11-10 | 2018-04-06 | 中国银行股份有限公司 | 一种银行参数报表的生成方法及装置 |
CN108399130A (zh) * | 2018-02-28 | 2018-08-14 | 平安科技(深圳)有限公司 | 自动生成测试案例的方法、装置、设备及可读存储介质 |
CN108920382B (zh) * | 2018-07-31 | 2022-04-01 | 惠州市德赛西威汽车电子股份有限公司 | 测试用例生成方法、装置、存储介质及服务器 |
CN109254988A (zh) * | 2018-08-03 | 2019-01-22 | 京信通信***(中国)有限公司 | 报表自动测试方法、装置、计算机存储介质及设备 |
CN109542794A (zh) * | 2018-12-04 | 2019-03-29 | 中国航空工业集团公司西安航空计算技术研究所 | 一种应用于嵌入式***的软件自动测试方法 |
CN109685626A (zh) * | 2018-12-27 | 2019-04-26 | 北京顺丰同城科技有限公司 | 一种下单测试方法及装置 |
CN110457224B (zh) * | 2019-08-15 | 2023-08-18 | 中国银行股份有限公司 | 生成测试数据的方法及装置 |
CN110806969A (zh) * | 2019-09-18 | 2020-02-18 | 北京你财富计算机科技有限公司 | 一种测试用例完整度评估方法、装置及电子设备 |
CN110780850B (zh) * | 2019-10-24 | 2021-01-05 | 上海复深蓝软件股份有限公司 | 需求用例辅助生成方法、装置、计算机设备及存储介质 |
CN111078526A (zh) * | 2019-11-04 | 2020-04-28 | 泰康保险集团股份有限公司 | 一种测试用例的生成方法、装置及存储介质 |
CN111813653B (zh) * | 2020-05-28 | 2023-07-04 | 杭州览众数据科技有限公司 | 一种字段内容相关的数据异常测试方法及自动化测试工具 |
CN111625467B (zh) * | 2020-06-03 | 2021-08-03 | 深圳华锐金融技术股份有限公司 | 自动化测试方法、装置、计算机设备和存储介质 |
CN112000557B (zh) * | 2020-07-16 | 2023-09-12 | 浙江众合科技股份有限公司 | 轨道交通信号***自动化测试装置 |
CN112104526A (zh) * | 2020-09-21 | 2020-12-18 | 中国人民解放军陆军装备部驻北京地区军事代表局驻石家庄地区第一军事代表室 | 测试***及测试方法 |
CN112327815A (zh) * | 2020-11-30 | 2021-02-05 | 北京一雄信息科技有限公司 | 一种批量测试汽车诊断仪数据流准确性的方法及装置 |
CN112667494A (zh) * | 2020-12-08 | 2021-04-16 | 上海纳恩汽车技术股份有限公司 | 一种基于配置表的汽车uds自动化测试方法,***以及存储介质 |
CN112579474A (zh) * | 2020-12-30 | 2021-03-30 | 中国科学院长春光学精密机械与物理研究所 | 软件测试需求提取***及其测试需求提取方法 |
CN112800009A (zh) * | 2021-01-28 | 2021-05-14 | 重庆富民银行股份有限公司 | 基于兼容配置的用于自动化测试数据的集中管理*** |
CN112906362A (zh) * | 2021-02-05 | 2021-06-04 | 广东智能财税数据科技发展有限公司 | 一种报表汇总方法、装置、设备及存储介质 |
CN112906363A (zh) * | 2021-02-05 | 2021-06-04 | 广东智能财税数据科技发展有限公司 | 一种报表新增方法、装置、设备及存储介质 |
CN112965909B (zh) * | 2021-03-19 | 2024-04-09 | 湖南大学 | 测试数据、测试用例生成方法及***、存储介质 |
CN113407441A (zh) * | 2021-05-25 | 2021-09-17 | 威胜集团有限公司 | 软件测试方法、装置、设备及存储介质 |
CN113282498B (zh) * | 2021-05-31 | 2024-04-05 | 深圳赛安特技术服务有限公司 | 测试用例的生成方法、装置、设备及存储介质 |
CN113220588A (zh) * | 2021-06-02 | 2021-08-06 | 北京锐安科技有限公司 | 一种数据处理的自动化测试方法、装置、设备及存储介质 |
CN113535548B (zh) * | 2021-06-21 | 2023-01-03 | 上汽通用五菱汽车股份有限公司 | 测试脚本生成方法、装置、设备及计算机可读存储介质 |
CN113238966B (zh) * | 2021-06-22 | 2024-07-02 | 中国农业银行股份有限公司 | 报表平台前端测试方法、装置、设备及存储介质 |
CN115203057B (zh) * | 2022-08-16 | 2023-03-28 | 北京永洪商智科技有限公司 | 低代码测试自动化方法、装置、设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102487340A (zh) * | 2010-12-02 | 2012-06-06 | 中兴通讯股份有限公司 | 报文交互的测试方法及装置 |
CN103186457A (zh) * | 2011-12-29 | 2013-07-03 | 阿里巴巴集团控股有限公司 | 一种自动生成测试用例的方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100790470B1 (ko) * | 2005-12-05 | 2008-01-02 | 한국전자통신연구원 | 디바이스 드라이버 테스트를 위한 테스트 케이스 자동 생성방법 및 장치 |
-
2014
- 2014-03-04 CN CN201410077108.0A patent/CN103838672B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102487340A (zh) * | 2010-12-02 | 2012-06-06 | 中兴通讯股份有限公司 | 报文交互的测试方法及装置 |
CN103186457A (zh) * | 2011-12-29 | 2013-07-03 | 阿里巴巴集团控股有限公司 | 一种自动生成测试用例的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN103838672A (zh) | 2014-06-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103838672B (zh) | 一种通用报表的自动化测试方法及装置 | |
CN104866426B (zh) | 软件测试综合控制方法及*** | |
CN104133772B (zh) | 一种自动生成测试数据的方法 | |
CN110275861B (zh) | 数据存储方法及装置、存储介质、电子装置 | |
CN106446412B (zh) | 一种航空电子***基于模型的测试方法 | |
CN106104472A (zh) | 指定逻辑验证规则并将逻辑验证规则应用于数据 | |
CN107291450A (zh) | 一种编程友好型的敏捷代码自动生成方法 | |
CN104572122A (zh) | 一种软件应用数据的生成装置及方法 | |
CN107798017B (zh) | 分布式数据库中的执行计划信息生成方法和*** | |
CN110221975A (zh) | 创建接口用例自动化测试脚本的方法及装置 | |
CN102117202A (zh) | 基于j2ee架构的代码生成装置 | |
CN104992022A (zh) | 一种基于模型的航空电子***接口管理方法 | |
CN108762808A (zh) | 接口文档的生成方法及*** | |
CN104951623A (zh) | 一种基于模型的航空电子***接口管理*** | |
CN109582906A (zh) | 数据可靠度的确定方法、装置、设备和存储介质 | |
CN107506190A (zh) | 基于Spring框架的XML文件修改方法及装置 | |
CN111158656A (zh) | 基于因果树法的测试代码生成方法及装置 | |
CN116468010A (zh) | 报表生成方法、装置、终端及存储介质 | |
CN107357588B (zh) | 目标代码生成方法及装置 | |
Grund et al. | Package ‘mitml’ | |
US20150143346A1 (en) | Constructing test-centric model of application | |
CN115114146A (zh) | 接口测试方法、装置、设备及存储介质 | |
US20150088483A1 (en) | Simulated component connector definition and connection process | |
CN103885341A (zh) | 基于汽车性能模拟器的性能分析***和方法 | |
CN113342692A (zh) | 测试用例自动生成方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |