CN110377524A - 报表系统的测试方法、装置、系统及介质 - Google Patents
报表系统的测试方法、装置、系统及介质 Download PDFInfo
- Publication number
- CN110377524A CN110377524A CN201910679662.9A CN201910679662A CN110377524A CN 110377524 A CN110377524 A CN 110377524A CN 201910679662 A CN201910679662 A CN 201910679662A CN 110377524 A CN110377524 A CN 110377524A
- Authority
- CN
- China
- Prior art keywords
- test
- report
- test case
- reporting system
- script
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/177—Editing, e.g. inserting or deleting of tables; using ruled lines
- G06F40/18—Editing, e.g. inserting or deleting of tables; using ruled lines of spreadsheets
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Debugging And Monitoring (AREA)
Abstract
本公开提供了一种报表系统的测试方法、装置、系统及介质。所述方法包括:解析所述报表系统的报表页面,得到至少一个报表页面要素;基于所述至少一个报表页面要素的组合,生成至少一个测试用例;生成所述至少一个测试用例中每个测试用例的测试路径;利用样本数据,按照第一测试路径测试所述报表系统,得到第一测试结果;以及将所述第一测试结果与第一标准报表进行对比,验证所述第一测试用例在所述报表系统中运行的准确性,其中所述第一标准报表为利用所述样本数据基于所述第一测试用例的报表逻辑而获得的报表。
Description
技术领域
本公开涉及计算机技术领域,具体地,涉及一种报表系统的测试方法、装置、系统及介质。
背景技术
随着企业科技管理水平的不断发展,电子报表得到广泛应用。由于报表在企业管理、决策中起到关键作用,因此,企业对报表的时效性、准确性有严格要求,测试验证在电子报表的质量把控中显得尤为重要。
通常,电子报表的生命周期分为原型设计、软件需求分析、开发、测试、投入使用这几个阶段。原型设计阶段设计报表页面要素、报表表样、业务逻辑;软件需求分析阶段确认数据源抽取、表结构设计、界面要素控件、联动关系等开发要件;进入开发阶段完成报表,再经测试验证,最终投入使用。传统方式中测试对前置环节的依赖性很强,而且测试数据准备、自动化工具脚本编写、测试案例编写大都取决于开发设计需求分析说明书。
为了应对快速变化的市场,管理层对电子报表需求变化多、工期短,大量人力资源都将投入原型设计和实际开发中,软件需求分析说明书的更新成为了瓶颈,为测试工作带来的相当大的难度,提前准备的测试数据不符合要求,测试案例未能覆盖全部业务场景,按常规顺序准备则又有测试脚本调试不充分,测试工期压缩等风险。
发明内容
有鉴于此,本公开提供了一种可以在报表设计阶段进行报表测试的报表系统的测试方法、装置、系统及存储介质。
本公开的一个方面,提供了一种报表系统的测试方法。所述报表系统的测试方法包括:解析所述报表系统的报表页面,得到至少一个报表页面要素;基于所述至少一个报表页面要素的组合,生成至少一个测试用例;生成所述至少一个测试用例中每个测试用例的测试路径;利用样本数据,按照第一测试路径测试所述报表系统,得到第一测试结果,其中,所述第一测试路径为至少一个测试用例中的第一测试用例的测试路径,所述第一测试用例为所述至少一个测试用例中的任意一个测试用例;以及将所述第一测试结果与第一标准报表进行对比,验证所述第一测试用例在所述报表系统中运行的准确性,其中所述第一标准报表为利用所述样本数据基于所述第一测试用例的报表逻辑而获得的报表。
根据本公开的实施例,所述基于所述至少一个报表页面要素的组合,生成至少一个测试用例,包括:按照剪枝策略生成所述至少一个测试用例。
根据本公开的实施例,所述至少一个报表页面要素中每个报表页面要素的取值为至少一个字典值选项之一,所述基于所述至少一个报表页面要素的组合,生成至少一个测试用例包括:对所述至少一个报表页面要素中的不同报表页面要素进行组合,得到至少一个第一组合;对所述至少一个第一组合中的每个第一组合中的每个报表页面要素取不同的字典值选项,得到至少一个第二组合;按照剪枝策略从所述至少一个第二组合中筛选出所述至少一个测试用例。
根据本公开的实施例,所述利用样本数据,按照第一测试路径测试所述报表系统,得到第一测试结果包括:将所述第一测试路径转换为第一测试脚本;以及在所述报表系统中加载所述样本数据并执行所述第一测试脚本,得到所述第一测试结果。
根据本公开的实施例,所述第一测试脚本包括前置公共步骤脚本和后置公共步骤脚本,其中:所述前置公共步骤脚本用于用户登录、报表连接查找、以及查询;所述后置公共步骤脚本用于下载报表以及保存报表。
根据本公开的实施例,所述报表系统的测试方法还包括:获取所述报表系统中所述第一测试用例的报表逻辑;利用样本数据基于所述第一测试用例的报表逻辑生成所述第一标准报表。
根据本公开的实施例,所述报表系统的测试方法还包括:计算所述报表系统的测试用例通过率,其中所述测试用例通过率=验证通过的测试用例的个数/所述至少一个测试用例的总个数。
本公开的另一方面,提供了一种报表系统的测试装置。所述装置包括解析模块、第一生成模块、第二生成模块、测试模块以及验证模块。所述解析模块用于解析所述报表系统的报表页面,得到至少一个报表页面要素。所述第一生成模块用于基于所述至少一个报表页面要素的组合,生成至少一个测试用例。所述第二生成模块用于生成所述至少一个测试用例中每个测试用例的测试路径。所述测试模块用于利用样本数据按照第一测试路径测试所述报表系统,得到第一测试结果,其中,所述第一测试路径为至少一个测试用例中的第一测试用例的测试路径,所述第一测试用例为所述至少一个测试用例中的任意一个测试用例。所述验证模块用于将所述第一测试结果与第一标准报表进行对比,验证所述第一测试用例在所述报表系统中运行的准确性,其中所述第一标准报表为利用所述样本数据基于所述第一测试用例的报表逻辑而获得的报表。
本公开的另一方面,提供了一种报表系统的测试装系统,包括:一个或多个存储器,存储有可执行指令;以及一个或多个处理器,执行所述可执行指令,以实现如上所述的方法。
本公开的另一方面,提供了一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行如上所述的方法。
根据本公开的实施例,可以通过解析报表系统的报表页面来获得至少一个报表页面要素,进而得到测试用例及测试路径,以对报表系统进行测试,可以避免报表系统测试对报表说明书等前置环节的依赖,提高测试效率。
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述以及其他目的、特征和优点将更为清楚,在附图中:
图1示意性示出了根据本公开实施例的报表系统的测试方法的应用场景;
图2示意性示出了根据本公开实施例的报表系统的测试方法的流程图;
图3示意性示出了根据本公开实施例的报表系统的测试方法中生成测试用例的流程图;
图4示意性示出了根据本公开实施例的报表系统的测试方法中得到测试结果的流程图;
图5示意性示出了根据本公开实施例的报表系统的测试方法中生成标准报表的流程图;
图6示意性示出了根据本公开实施例的报表系统的测试装置的方框图;
图7示意性示出了图1中的原型设计装置的结构框图;
图8示意性示出了图1中的测试脚本生成装置的结构框图;
图9示意性示出了图1中的标准结果生成装置的结构框图;
图10示意性示出了图1中的测试执行装置的结构框图;以及
图11示意性示出了根据本公开实施例的适于实现报表系统的测试方法的电子设备的方框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
本文中涉及的术语解释如下:
指标是用于描述不同类型对象的统计,分为基础指标和衍生指标。基础指标为只有一层逻辑的指标(例如,客户、金额、交易量等)。衍生指标为基础指标的基础上再运算的指标。
维度对象:用于描述指标的条件筛选或者限定指标类型。例如:一星级(的客户)、人民币、全辖汇总等。
原子对象:为报表组成所用到的不可分割最小粒度的元素对象集,可以包括基础指标、维度对象和对象控件。通过原子对象以灵活的方式进行不同的组合,来完成报表设计。
报表模型:将基础指标和维度对象按照业务含义加以分类并标准化地归并,为了方便报表设计人员检索和复用,以特定结构方式存储于数据库。
本公开的实施例提供了一种报表系统的测试方法、装置、系统及介质。该测试方法包括解析报表系统的报表页面,得到至少一个报表页面要素。基于至少一个报表页面要素的组合,生成至少一个测试用例。生成至少一个测试用例中每个测试用例的测试路径。利用样本数据,按照第一测试路径测试报表系统,得到第一测试结果,其中,第一测试路径为至少一个测试用例中的第一测试用例的测试路径,第一测试用例为至少一个测试用例中的任意一个测试用例。然后,将第一测试结果与第一标准报表进行对比,验证第一测试用例在报表系统中运行的准确性,其中第一标准报表为利用样本数据基于第一测试用例的报表逻辑而获得的报表。
根据本公开的实施例,可以实现报表开发与报表测试的一体化。首先,在报表开发前期设计报表的模型和原子对象;然后,基于这些报表基本要素,结合样本数据库,生成测试用例来覆盖报表测试要点。同时,生成相应的报表标准结果。最终,通过标准报表与测试结果比对,来验证报表系统的准确性。
图1示意性示出了根据本公开实施例的报表系统的测试方法的应用场景。参阅图1,说明本公开实施例中报表系统的测试方法的应用场景。图1中场景可以同时实现报表系统设计与报表系统测试。
原型设计装置1用于实现报表系统设计。测试脚本生成装置2、标准结果生成装置3和测试执行装置4用于实现报表系统测试。样本数据库5用于为报表系统设计和报表系统测试提供样本数据。
原型设计装置1用于管理维护报表设计所使用到的各种对象,并定期从样本数据库5中抽取通用参数的生产数据以更新维度对象的字典值。
测试脚本生成装置2用于接收原型设计装置1解析的报表页面要素并加工成测试路径,再转化为自动化工具执行脚本,提供给测试执行装置4进行测试用例执行。
标准结果生成装置3用于接收原型设计装置1中的报表表样和报表逻辑,结合测试脚本生成装置2最优测试路径,从样本数据库5的报表模型的样本数据生成标准结果报表,提供给测试执行装置4进行报表比对。
测试执行装置4用于接收测试脚本生成装置2的测试脚本并加载样本数据库5中的样本数据执行测试获得测试结果,并将测试结果与标准结果生成装置3生成的标准报表进行比较,生成测试结果报告。
样本数据库5主要用于管理样本数据,该样本数据分为报表模型样本数据、参数信息和基础层样本数据。报表模型样本数据,即生产报表模型表的数据,按照报表模型表数据字段类型,提供可定期进行维护模型数据的功能。在报表模型表新增好之后,将实际的生产上操作产生的数据导入报表模型表成为样本数据,提供给标准结果生成装置3生成标准结果报表。参数信息包括通用参数表和权限参数表,通用参数表提供给原型设计装置1用于维度对象信息的更新。权限参数表提供给测试执行装置4用于选取查询用户执行测试脚本。基础层样本数据,即生产上模型数据对应的源数据文本,提供给测试执行装置4,用于测试执行所使用的数据来源。
图2示意性示出了根据本公开实施例的报表系统的测试方法的流程图。
参阅图2,结合图1、图3至图5,对图2所示测试方法进行详细说明,该测试方法包括操作S110~操作S150。
在操作S110,解析报表系统的报表页面,得到至少一个报表页面要素。
报表页面是指报表页面要素集中的报表名称对应的页面,如下表1中所示的“债券业务统计表”的页面。
表1
报表名称 | 维度类别 | 字典值 | 值是否默认 |
债券业务统计表 | 频度 | 日 | 是 |
债券业务统计表 | 频度 | 月 | 否 |
债券业务统计表 | 频度 | 季 | 否 |
债券业务统计表 | 频度 | 年 | 否 |
债券业务统计表 | 日期 | 20151231 | 是 |
债券业务统计表 | 机构 | 总行 | 是 |
债券业务统计表 | 统计方式 | 全辖汇总 | 是 |
债券业务统计表 | 统计方式 | 本级行汇总 | 否 |
债券业务统计表 | 币种 | 人民币 | 是 |
债券业务统计表 | 币种 | 美元 | 否 |
报表页面要素是指报表页面中包括的维度类别,如表1中所示的“频度”、“日期”、“机构”、“统计方式”、“币种”。
在操作S110中,对表1所示的报表页面进行解析后,获取该报表页面对应的一个及以上的报表页面要素。
在操作S120,基于至少一个报表页面要素的组合,生成至少一个测试用例。在操作S120中可以按照剪枝策略生成该至少一个测试用例。
剪枝策略是一种对报表页面要素进行组合的策略。假设报表页面有n个报表页面要素。第一个报表页面要素有m1个字典值选项,第二个报表页面要素有m2个字典值选项,……,以此类推,第n报表页面要素有mn个字典值选项。假定第一个报表页面要素的m1个字典值选项依次为S11、S12、……、S1m1;第二个报表页面要素的m2个字典值选项依次为S21、S22、……、S2m2;以此类推,第n个报表页面要素的mn个字典值选项依次为Snl、Sn2、……、Snmn。
设定每一个报表页面要素的第一个字典值选项{S11,S21,S31……Sn1}为默认选值。
以{S11,S21,S31……Sn1}为第一个组合,仅改变第一个报表页面要素的字典值选项得到第二个组合{S12,S21,S31……Sn1}。遍历第一个报表页面要素的所有字典选项得到m1个组合:{S13,S21,S31……Sn1},{S14,S21,S31……Sn1}……{Sm1,S21,S31……Sn1}。
接着,以类似的方式对第二个报表页面要素的字典值选项逐个替换,遍历得到m2个组合:{S11,S22,S31……Sn1},{S11,S23,S31……Sn1},……{S11,S2m2,S31……Sn1}
以此类推遍历所有n个报表页面要素的字典值选项,最终,总共可以得到∑mn-n+1个不同的组合。
然后按照剪枝策略从该∑mn-n+1筛选出最精简的有效测试用例。本公开实施例中,该至少一个报表页面要素中每个报表页面要素的取值为至少一个字典值选项之一。根据本公开的实施例,操作S120的一个具体实现实例可以参考图3的示意。
图3示意性示出了根据本公开实施例的报表系统的测试方法中操作S120生成测试用例的流程图。如图3的示意,操作S120可以包括操作S121、操作S122和操作S123。
在操作S121,对至少一个报表页面要素中的不同报表页面要素进行组合,得到至少一个第一组合。
本公开实施例中,以报表页面为如表1所示的“债券业务统计表”,报表页面要素为“频度”、“日期”、“机构”、“统计方式”、“币种”为例,得到的第一排列组合为“频度、日期、机构、统计方式、币种”。可以理解的是,若报表页面有多个,得到的第一排列组合也为多个。
在操作S122,对至少一个第一组合中的每个第一组合中的每个报表页面要素取不同的字典值选项,得到至少一个第二组合。
以{“频度”、“日期”、“机构”、“统计方式”、“币种”}组成的第一组合为例。
对于该第一组合,其中的频度”有“日”、“月”“季”、和“年”这四个不同的字典值选项。“日期”有“20151231”这一个字典值选项,“机构”有“总行”这一个字典值选项。“统计方式”有“全辖汇总”和“本级行会总”这两个字典值选项。“币种”有“人民币”和“美元”这两个字典值。根据组合的乘法原理,上述示例中每个报表页面要素取不同的字典值选项时,共有16种组合,即对于{“频度”、“日期”、“机构”、“统计方式”、“币种”}的第一组合,就存在有16个第二组合。
在操作S123,按照剪枝策略从至少一个第二组合中筛选出至少一个测试用例。
剪枝策略可以保证以最小的组合覆盖所有的字典选项。利用剪枝策略可以从至少一个第二组合中筛选出最精简的有效测试用例。
仍以上述示例中第一组合为{“频度”、“日期”、“机构”、“统计方式”、“币种”}为例,按照剪枝策略从至少一个第二组合中筛选出的测试用例有以下6种组合,如表2所示。
表2
组合 | 报表名称 | 频度 | 日期 | 机构 | 统计方式 | 币种 |
1 | 债券业务统计表 | 日 | 20151231 | 总行 | 全辖汇总 | 人民币 |
2 | 债券业务统计表 | 月 | 20151231 | 总行 | 全辖汇总 | 人民币 |
3 | 债券业务统计表 | 季 | 20151231 | 总行 | 全辖汇总 | 人民币 |
4 | 债券业务统计表 | 年 | 20151231 | 总行 | 全辖汇总 | 人民币 |
5 | 债券业务统计表 | 日 | 20151231 | 总行 | 本级行汇总 | 人民币 |
6 | 债券业务统计表 | 日 | 20151231 | 总行 | 全辖汇总 | 美元 |
在操作S130,生成至少一个测试用例中每个测试用例的测试路径。测试路径用于描述不同的条件组合,将业务场景分为不同的实现路径,完成路径所使用的测试用例即为测试路径。
在操作S140,利用样本数据,按照第一测试路径测试报表系统,得到第一测试结果,其中,第一测试路径为至少一个测试用例中的第一测试用例的测试路径,第一测试用例为至少一个测试用例中的任意一个测试用例。根据本公开的一个具体实施例,操作S140可以参考图4示意的方法流程实现。
图4示意性示出了根据本公开实施例的报表系统的测试方法中操作S140得到测试结果的流程图。如图4所示,本公开实施例中操作S140可以包括操作S141和操作S142。
在操作S141,将第一测试路径转换为第一测试脚本。
第一测试脚本包括前置公共步骤脚本和后置公共步骤脚本,其中,前置公共步骤脚本用于用户登录、报表连接查找、以及查询,后置公共步骤脚本用于下载报表以及保存报表。
由于前置公共步骤脚本和后置公共步骤脚本中除了访问用户与报表所在路径这两个参数不一致,其余操作对于所有报表都是相同的,因此,可以通过表3所示的报表基本信息表中的报表访问权限和报表名称这两个参数来更新脚本。其中,报表访问权限用于选取访问用户,报表名称用于获取报表所在路径。
表3
报表名称 | 报表访问权限 | 开始有效时间 | 结束有效时间 |
债券业务统计表 | 总行用户 | 20151231 | 99991231 |
进一步地,在后置公共步骤<下载并保存报表>时,选取下载报表保存目录的时候可以使用报表名称+测试轮次拼接而成。
在操作S141中根据第一测试路径,再关联表4所示的债券业务统计表的报表页面要素详细信息中的对象控件标识、操作方式,拼接前置公共步骤和后置公共步骤,以形成自动化操作步骤集脚本。
表4
以表2中第一条测试路径为例:选择任一总行用户,登录报表系统,查询框输入“债券业务统计表”,点击查询按钮进行测试;其中,sequence_1控件选择“日”,data_1控件选择“20151231”,organ_1控件选择“总行”,sum_type_1选择“全辖汇总”,curr_1选择“人民币”,点击下载报表按钮。选取“债券业务统计表\轮次1\测试保存报表\”目录,文件名称:“债券业务统计表-日-20151231-总行-全辖汇总-人民币.xls”点击保存。同理,遍历完成表2中所有测试路径自动化测试脚本的转化。
在操作S142,在报表系统中加载样本数据并执行第一测试脚本,得到第一测试结果。
将样本数据库5中的基础层样本数据加载到待测试的报表系统后台数据库,再通过报表系统的程序逻辑运算为报表模型的数据,以作为样本数据。
根据生成的第一测试脚本,逐条加载第一测试路径以执行该第一测试脚本,并从样本数据库的权限参数表中选取使用报表权限对应的用户登陆待测系统,以得到第一测试结果。需要说明的是如果相同机构、权限的用户存在多条,对于每条测试路径,系统可以随机选取一个登录用户。
根据本公开的实施例中,在操作S150之前,可以预先生成第一标准报表。具体地,生成第一标准报表的过程可以参考图5所示的示意图。
图5示意性示出了根据本公开实施例的报表系统的测试方法中生成标准报表的流程图。如图5所述,该生成该第一标准报表包括操作S140′和操作S140″。
在操作S140′,获取报表系统中第一测试用例的报表逻辑。具体地,可以获取从如下表5所示的报表逻辑信息表中存储的统计对象,并关联表6所示的基础指标信息表中的统计对象所属的报表模型表名称及字段名称,再根据报表模型表名称关联表7所示的模型信息表来获取报表模型表英文名称,并从如表8所示的维度对象信息表中获取报表模型表字段以及条件设定。
表5
表6
表7
报表模型表英文名称 | 报表模型表中文名称 | 所属业务 |
account_bond_invest | 债券利息表 | 债券类别 |
表8
维度类别 | 维度对象名称 | 报表模型表字段 | 条件设定 |
债券类型 | 可供出售类 | bondtype | =‘1’ |
债券持有期限 | 半年 | term | =‘1’ |
债券持有期限 | 一年期 | term | =‘2’ |
债券持有期限 | 三年期 | term | =‘3’ |
频度 | 日频度 | sequence | =‘1’ |
频度 | 月频度 | sequence | =‘2’ |
频度 | 季频度 | sequence | =‘3’ |
频度 | 年频度 | sequence | =‘4’ |
机构 | 总行 | organ | =‘0100’ |
统计方式 | 本级行汇总 | sum_type | =‘1’ |
统计方式 | 全辖汇总 | sum_type | =‘2’ |
币种 | 人民币 | curr_id | =‘001’ |
币种 | 美元 | curr_id | =‘014’ |
根据本公开的实施例,对于基础指标,报表逻辑可描述为:select统计方式(字段名称)from报表模型表英文名称where维度对象的报表模型表字段维度条件。对于衍生指标,需要首先获取统计对象中的基础指标的报表逻辑,再通过所构成基础指标的运算规则拼接基础指标的报表逻辑。
以债券业务统计表中的“一年期可供出售类债券利息收入”为例阐述基础指标:通过表5的报表逻辑信息表获取该基础指标的统计对象为“债券利息收入”,在表6的基础指标信息表中获取对应的统计对象的报表模型表名称为“债券利息表”,通过查询表7的模型信息表来获得报表模型表英文名称“account_bond_interest”,报表模型表字段英文名称为“bond_income(利息收入)”,统计方式为“SUM”,在表8的维度对象信息表中查询报表模型表字段“term”和“bondtype”的条件都为“=’1’”。得到“可供出售类债券利息收入”基础指标的查询脚本为:selectSUM(bond_income)from account_bond_interest where term=’1’and bondtype=’1’。
以债券业务统计表中的“一年期可供出售类债券已实现损益”为例阐述衍生指标:“一年期可供出售类债券已实现损益”由“可供出售类债券利息收入”和“一年期可供出售类债券价差损益”两个基础指标相加所得。由于“可供出售类债券利息收入”基础指标的的查询脚本为select SUM(bond_income)from account_bond_interest where term=’1’andbondtype=’1’;“一年期可供出售类债券价差损益”基础指标的查询脚本为select SUM(bond_profit)from account_bond_interest where term=’1’and bondtype=’1’;最终得到“一年期可供出售类债券已实现损益”衍生指标的查询脚本为select(select SUM(bond_income)from account_bond_interest where term=’1’and bondtype=’1’)+(select SUM(bond_profit)from account_bond_interest where term=’1’andbondtype=’1’)from dual。
在操作S140″,利用样本数据基于第一测试用例的报表逻辑生成第一标准报表。
根据操作S130中生成的第一测试用例,结合表8的维度对象信息表中的报表模型表字段及其对应的字典值,将前台页面的限制条件补充到“where”后的筛选条件中,所有维度选择使用“and”字符连接。以表2中的最少测试路径组合中第一条测试路径为例,根据“表8维度对象信息表中”中报表模型表字段和条件设定,转化为筛选条件语句为:sequence=’1’and data=’20151231’and organ=’0100’and sum_type=’1’and curr_id=’001’。
从表9所示的模型结构信息表中获取报表模型表的字段结构,如果对应字段为主键,那么该字段所有的测试数据都需要去重顺序遍历;如果字段设置是可以为空,测试数据中也需要预留空字段的位数。根据以上规则可生成测试用的报表模型表样本数据。以本文中债券业务统计表为例,样本数据如表10债券利息表所示。
表9
表10
结合数据库查询语句,在报表抽取内容的查询代码基础上,拼接上报表页面选择筛选条件,并抽取出需求名称所对应的值,通过原型设计装置1的对应处理,形成第一标准报表,并保存在“债券业务统计表\轮次1\标准结果报表\”目录,文件名称按照报表名称拼接页面筛选条件形式保存。
在操作S150,将第一测试结果与第一标准报表进行对比,验证第一测试用例在报表系统中运行的准确性,其中第一标准报表为利用样本数据基于第一测试用例的报表逻辑而获得的报表。
在操作S150中验证第一测试用例在报表系统中运行的准确性,例如生成如表11所示的项目测试报告以直观地显示其准确性。其中,待解决问题数是测试结果与标准报表比对不通过的测试路径个数,需要待开发人员排查解决。
表11
进一步地,根据本公开的实施例,在操作S150之后还可以计算报表系统的测试用例通过率,其中,测试用例通过率=验证通过的测试用例的个数/至少一个测试用例的总个数。
根据本公开实施例提供的报表系统的测试方法,通过报表原型设计与报表测试设计的对接,实现了测试前置,提高了测试效率。具体地,以报表原型设计为测试设计源头,实现了报表设计与报表测试的对接;并且自动完成报表测试,解决了因测试环节繁复、测试人员业务水平不足等影响测试质量的因素,有效提高了测试的可靠性,即使报表需求有改变,也可从原型设计工具出发进行迭代测试,大大加快了测试对于需求变化的响应速度。以报表模型粒度从生产环境进行数据采集,加快了测试数据的准备节奏,也保证了测试数据的完整性和可靠性。运用剪枝策略,在条件选择处理上去除了不必要的重复组合,使用了剪枝组合处理,使测试过程更加快捷、高效、有针对性。
图6示意性示出了根据本公开实施例的报表系统的测试装置600的方框图。
如图6所示,该报表系统的测试装置600包括解析模块610、第一生成模块620、第二生成模块630、测试模块640以及验证模块650。装置600可以用于执行参考图2~图5所描述的数据处理方法。
解析模块610例如可以执行操作S110,用于解析报表系统的报表页面,得到至少一个报表页面要素。
第一生成模块620例如可以执行操作S120,用于基于至少一个报表页面要素的组合,生成至少一个测试用例。
第二生成模块630例如可以执行操作S130,用于生成至少一个测试用例中每个测试用例的测试路径。
测试模块640例如可以执行操作S140,用于利用样本数据,按照第一测试路径测试报表系统,得到第一测试结果,其中,第一测试路径为至少一个测试用例中的第一测试用例的测试路径,第一测试用例为至少一个测试用例中的任意一个测试用例。
验证模块650例如可以执行操作S150,用于将第一测试结果与第一标准报表进行对比,验证第一测试用例在报表系统中运行的准确性,其中第一标准报表为利用样本数据基于第一测试用例的报表逻辑而获得的报表。
以下通过图7~图10中对图1中各个装置的详细介绍,示例性介绍本公开实施例的装置的具体实现。
图7示意性示出了图1中的原型设计装置1的结构框图。
如图7所示,原型设计装置1可以包括对象管理单元11、原型设计单元12和原型编译单元13。
对象管理单元11用于管理报表设计所需的对象合集,并按照报表设计基本要素划分为模型、基础指标、维度对象、对象控件。当新增对象时,首先判断对象管理单元11中是否存在其原对象。若存在,维护人员放弃新增该对象,或修改原对象,避免对象信息的重复维护。
业务模型分为业务大类和业务小类,对象管理单元11按照业务大类管理其模型,多个业务相近的基础指标和维度对象归集为一张报表模型表。报表模型表信息存放在模型信息表中,包括报表模型表英文名称、报表模型表中文名称、所属业务三个基本要素。以设计一张“债券业务统计表”为例,如果有相同名称的报表信息,提示用户在原有的报表基础上进行修改,或是重新命名新的报表。首先在报表内容设计中,为了维护债券业务报表中的债券利息信息,根据内容所述的“债券业务”业务类别,选取了一张适合的报表模型表,如“债券利息表”,英文名称“account_bond_interest”,所属业务为“债券业务”,形成的模型信息表如表7所示。报表模型表英文名称存储于后台数据库,用于提供给标准结果生成装置3定位后台具体报表模型表进行标准结果生成;报表模型表中文名称以中文形式描述报表模型表所代表的业务含义,所属业务用于设计报表逻辑时能够按照业务大类筛选到所需要的报表模型表,每张报表模型表的结构按照实际分类设定。模型结构信息存储在如表9所示的模型结构信息表中。
基础指标是构成报表的最基本元素,指标按照业务小类管理,相同业务小类存储在如表6所示的基础指标信息表中,包括指标对象名称、报表模型表名称、字段名称、统计对象、统计方式、时间范围。指标对象名称用于描述指标对象的业务含义;报表模型表名称用于描述指标所在的报表模型表名称;字段名称用于描述存储报表模型表中的字段名称;统计对象用于描述指标的统计内容,如客户、金额、交易量;统计方式用于描述指标的统计要求,主要包括计数(COUNT)、累加(SUM)、最大值(MAX)、最小值(MIN)、平均值(AVG)这六种;时间范围用于描述统计数据的时间跨度,常用的时间范围有当日、当月、近……月、至……月末等,例如计算近3个月内的存款交易额,时间范围就是3个月前至今。
维度对象主要用于限定和描述基础指标,存储在如表8所示的维度对象信息表中,包括维度类别、维度对象名称、报表模型表字段、条件设定。维度类别用于描述统计规则类别,以筛选统计规则,主要分为产品、科目、币种、交易、渠道等;维度对象名称用于描述规则对象的名称,以描述指标的维度属性,同时也提供给原型设计工具中前台UI设计以及报表内容设计筛选;报表模型表字段用于描述关联报表模型表中的字段名称;条件设定用于描述关联字段筛选的字典值,关联方式有=,<>,>,<,>=,<=,between……,in……等方式。
对象控件用于维护报表页面查询条件的展现形式,标准化的对象控件和操作方式存储在如表12所示的对象控件表中,包括对象控件名称和操作方式。对象控件名称用于描述页面对象具体使用的UI控件名称;操作方式用于描述用户对该对象控件进行的操作,如选择、单击、双击等。
表12
对象控件名称 | 操作方式 |
下拉控件 | 选择 |
日期控件 | 选择 |
机构树 | 选择 |
文本框 | 输入 |
单选框 | 单击 |
原型设计单元12用于提供UI界面开放原型设计功能,包括表样设计、报表逻辑设计、报表查询页面设计。
表样设计是指在行列二维表上设计报表表样,需完成标题(含副标题)、表头、表体等表样要素的字体、颜色、位置等内容设计。
报表逻辑设计是指在表样设计的行列二维表中,按照业务类别选取基本模型,再根据基本模型选取所需要的基础指标及维度对象,填充入行列二维表中对应的单元格中进行编辑。单元格可支持多个基础指标构成的衍生指标进行设定。
报表查询页面设计的操作包括:首先选取维度对象信息表(即表8)中的维度类别作为页面查询条件,并同时为每个维度类别分别选取一项维度对象作为缺省值,然后关联对象控件表(即表12)中定义的控件,以定义每个控件在前台展现的方式以及在报表页面上的排列顺序位置。
原型设计单元12完成表样、报表逻辑、报表查询页面的原型设计后,将报表查询页面信息存储在如表13所示的查询页面信息表中,将报表逻辑存储在如表5所示的报表逻辑信息表中,并将设计的报表表样发送给原型编译单元13进行解析,同时在如表3所示的报表基本信息表中创建一条记录维护报表信息。
查询页面信息表(即表13)包括序号、维度类别、对象控件名称、缺省值。序号表示查询页面的排列显示顺序;维度类别取自维度对象信息表(即表8)中描述维度对象的分类,设计人员从中选择进行报表页面设计;对象控件名称取自页面对象控件表(即表12)中描述查询页面对象所使用的控件类型;缺省值为每个维度类别默认筛选条件。
表13
序号 | 维度类别 | 对象控件名称 | 缺省值 |
1 | 频度 | 下拉控件 | 日 |
2 | 日期 | 日期控件 | 当前日期 |
3 | 机构 | 机构树 | 总行 |
4 | 统计方式 | 下拉控件 | 本级行汇总 |
5 | 币种 | 下拉控件 | 人民币 |
报表逻辑信息表(即表5)包括元素名称、指标类型、统计对象、维度对象名称。元素名称是指报表单元格名称,与表样中的表头相对应;指标类型分为基础指标和衍生指标两类,基础指标可以从基础指标信息表(即表6)中直接查询选择,衍生指标在基础指标的基础上进行运算得到;统计对象根据指标类型选取基础指标信息表(即表6)中指标对象名称,如指标类型为基础指标则选取单个基础指标对象名称,如指标类型为衍生指标则选取计算该衍生指标所需的基础指标的对象名称,并使用运算符拼接;维度对象名称是描述指标的维度名称,维度对象关联表维度对象信息表(即表8)中获取对应名称,如果一个基础指标有多个维度对象描述,则在维度对象名称中以维度对象的描述关系进行拼接。
报表基本信息表(即表3)包括报表名称、报表访问权限、开始有效时间、结束有效时间。报表名称为报表中显示的报表标题;报表访问权限代表系统中可以访问报表的角色设定;开始有效时间代表报表创建日期时间;结束有效时间代表报表失效的时间,建立时默认为99991231。如果报表信息有修改,则自动将结束有效时间修改为修改日期,再新建一条新的纪录。
原型编译单元13用于将原型设计单元12中的报表表样设计信息进一步分析加工,并将解析后的报表页面要素发送给测试脚本生成装置2以生成测试路径,以及将报表表样和报表逻辑发送给标准结果生成装置3以生成标准结果报表。
具体地,原型编译单元13解析查询页面对象,生成如表4所示的债券业务统计表的页面要素详细信息,并发送给测试脚本生成装置2以生成测试脚本。页面要素详细信息表由序号、维度类别、对象控件标识、对象控件名称、操作方式、缺省值、默认字典组成。序号、维度类别、对象控件名称、缺省值取自于查询页面信息表(即表13),在页面原型设计完成之后直接生成;对象控件标识由维度类别关联维度对象信息表(即表8)中报表模型表字段拼接上设计装置自动赋值的序列号生成对象控件标识,对象控件标识符作为对象在页面上的唯一标示符号进行保存;操作方式是根据对象控件名称关联页面对象控件表(即表12)获取;默认字典是依据所设计的维度类别关联维度对象信息表(即表8)取得。
原型编译单元13关联原型设计单元12的报表信息表(即表3)的报表名称,以及关联维度对象信息表(即表8)的维度对象名称的字典值,生成如表1所示的报表页面要素集,提供给测试脚本生成装置2以生成测试路径。报表页面要素集由报表名称、维度类别、字典值、是否默认字段组成。报表名称取自报表基本信息表(即表3)。维度类别、字典值由查询页面信息表(即表13)设计的报表维度类别,关联维度对象信息表(即表8)获得,并根据字典值和缺省值的对照,该字典值是否为默认字典,填充在是否默认字段中。
原型编译单元13解析出数据对象所属单元格的位置,并存储于如表14所示的报表元素坐标表中,报表元素坐标表包括元素名称、坐标位置。元素名称是指报表单元格名称,其属性分为基础指标或衍生指标;坐标位置表示报表需求在报表中所处的位置,以(行,列)坐标标识,识别方式同表14所示方式解析。
表14
元素名称 | 坐标位置 |
一年期可供出售类债券利息收入 | (2,2) |
一年期可供出售类债券利息收入 | (2,3) |
原型编译单元13解析出网页中暂存的表样文本信息,以及在行列二维表中的位置,并存储于如表15所示的报表表样信息中,报表表样信息包括展现名称、属性、字体、格式、颜色、报表中所处位置。展现名称是指在报表中显示的文本;属性分为标题或表头;字体、格式、颜色为报表表样设计时候,标题或者表头所设定的展现形式;坐标位置表示报表需求在报表中所处的位置,以(行,列)坐标标识,如(1,2)表示在报表中的第1行,第2列,(1,2:5)表示在报表中的第1行,第2到5列单元格合并,(1,ALL)ALL表示在表中全部的行或列,这里指第一行合并单元格展现,(2,5),(3,4)不连续的位置以“,”拼接表示在此表示第2行的第5列和第3行的第4列两个单元格。
表15
图8示意性示出了图1中的测试脚本生成装置2的结构框图。
如图8所示,测试脚本生成装置2的内部示意图。测试脚本生成装置2可以包括通用测试脚本生成单元21、测试路径组合单元22和测试脚本转化单元23。
通用测试脚本生成单元21与测试路径组合单元22连接,负责将维护通用测试脚本发送给测试路径组合单元22。所述通用测试脚本,包含了前置公共步骤<用户登录、报表连接查找、查询>、后置公共步骤<下载并保存报表>两种类型的脚本。由于这两种公共步骤中除了访问用户与报表所在路径这两个参数不一致,其余操作对于所有报表都是相同的,因此该单元需通过表3报表基本信息表获得报表访问权限(用于选取访问用户)、报表名称(用以获取报表所在路径)两个参数更新脚本,其余脚本、参数可设计为固定内容。
优选地,考虑到测试一般有多轮测试,所以在后置公共步骤<下载并保存报表>时,选取下载报表保存目录的时候可以使用报表名称+测试轮次拼接而成。
测试路径组合单元22:获取表1报表页面要素集后,提取页面对象名称及对应字典值,按照剪枝策略进行路径裁剪,以确保对于没有相互联动依赖对象控件的报表,测试路径能覆盖到所有对象控件的全部字典值,但是使用的测试路径为最少。
测试脚本转化单元23,根据测试路径组合单元22生成的最少测试路径,再关联原型编译单元13解析得到表4债券业务统计表中的报表页面要素详细信息,拼接通用测试脚本生成单元21中的前置公共步骤脚本和后置公共步骤脚本,形成自动化操作步骤集脚本。
图9示意性示出了图1中的标准结果生成装置3的结构框图。
如图9所示,标准结果生成装置3的内部示意图。标准结果生成装置3可以包括报表逻辑分析单元31、报表条件筛选单元32、测试数据生成单元33和对比报表生成单元34。
首先通过报表逻辑分析单元31将原型编译单元13中的表6报表逻辑信息表中的指标转化为查询脚本,发送给报表条件筛选单元32;报表条件筛选单元32在报表逻辑分析单元31查询脚本的基础上,拼接上根据报表的查询页面筛选的限定条件,完成最终查询脚本提供给测试数据生成单元33。测试数据生成单元33脚本根据最终查询脚本从样本数据库抽取标准模型层数据,供对比报表生成单元34访问。对比报表生成单元34,依据原型编译单元13中的表样信息生成报表表样,并将测试数据生成单元33抽取的模型层数据填充入报表。
报表逻辑分析单元31从原型设计装置1维护的表6报表逻辑信息表获得统计对象,关联表6的基础指标信息表获取统计对象所属模型表名称及字段名称,再根据表7的模型表名称关联表获得模型表英文名称,从表8的维度对象信息表获取模型表字段以及条件设定。
报表条件筛选单元32将测试路径组合单元22生成的最优测试路径组合集,结合对象管理装置11中表8的维度对象信息表中的模型表字段及其对应的字典值选项,将前台页面的限制条件补充到报表逻辑分析单元31中where后筛选条件中,所有维度选择使用“and”字符连接。
测试数据生成单元33从原型设计装置1中表9的模型结构信息表获取模型表的字段结构,如果对应字段为主键,那么该字段所有的测试数据都需要去重顺序遍历。如果字段设置是可以为空,测试数据中也需要预留空字段的位数。根据以上规则可生成测试用的模型表样本数据。
对比报表生成单元34结合报表逻辑分析单元31、报表条件筛选单元32的数据库查询语句,在报表抽取内容的查询代码基础上,拼接上报表页面选择筛选条件,从测试数据生成单元33抽取出需求名称所对应的值,填充到原型编译单元13对应的单元格位置,形成报表标准结果。保存在“债券业务统计表\轮次1\标准结果报表\”目录,文件名称按照报表名称拼接页面筛选条件形式保存。
图10示意性示出了图1中的测试执行装置4的结构框图。
如图10所示,测试执行装置4的内部示意图。测试执行装置4可以包括样本数据加载单元41、测试脚本执行单元42和测试结果生成单元43。
样本数据加载单元41将样本数据库5中的基础层数据加载到待测试的报表系统后台数据库,再通过报表系统的程序逻辑运算为模型层的数据。
测试脚本执行单元42根据测试路径组合单元22生成的自动化脚本,逐条加载测试路径执行脚本,并从样本数据库中的权限参数表中选取使用报表权限对应的用户登陆待测系统。
测试结果生成单元43报表测试报告至少包含有以下要素,本轮测试涉及报表数,验证通过的报表数,自动化装置覆盖的测试用例数,报表通过率。
根据本公开的实施例的模块、子模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
例如,解析模块610、第一生成模块620、第二生成模块630、测试模块640以及验证模块650、对象管理单元11、原型设计单元12、原型编译单元13、通用测试脚本生成单元21、测试路径组合单元22、测试脚本转化单元23、报表逻辑分析单元31、报表条件筛选单元32、测试数据生成单元33、对比报表生成单元34、样本数据加载单元41、测试脚本执行单元42、以及测试结果生成单元43中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,解析模块610、第一生成模块620、第二生成模块630、测试模块640、验证模块650、对象管理单元11、原型设计单元12、原型编译单元13、通用测试脚本生成单元21、测试路径组合单元22、测试脚本转化单元23、报表逻辑分析单元31、报表条件筛选单元32、测试数据生成单元33、对比报表生成单元34、样本数据加载单元41、测试脚本执行单元42、以及测试结果生成单元43中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,解析模块610、第一生成模块620、第二生成模块630、测试模块640、验证模块650、、对象管理单元11、原型设计单元12、原型编译单元13、通用测试脚本生成单元21、测试路径组合单元22、测试脚本转化单元23、报表逻辑分析单元31、报表条件筛选单元32、测试数据生成单元33、对比报表生成单元34、样本数据加载单元41、测试脚本执行单元42、以及测试结果生成单元43中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图11示意性示出了根据本公开实施例的报表系统的测试系统1100的方框图。图11仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图11所示,根据本公开实施例的测试系统1100包括处理器1101,其可以根据存储在只读存储器(ROM)1102中的程序或者从存储部分1108加载到随机访问存储器(RAM)1103中的程序而执行各种适当的动作和处理。处理器1101例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器1101还可以包括用于缓存用途的板载存储器。处理器1101可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 1103中,存储有测试系统1100操作所需的各种程序和数据。处理器1101、ROM 1102以及RAM 1103通过总线1104彼此相连。处理器1101通过执行ROM 1102和/或RAM1103中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除ROM1102和RAM 1103以外的一个或多个存储器中。处理器1101也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
根据本公开的实施例,测试系统1100还可以包括输入/输出(I/O)接口1105,输入/输出(I/O)接口1105也连接至总线1104。系统1100还可以包括连接至I/O接口1105的以下部件中的一项或多项:包括键盘、鼠标等的输入部分1106;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分1107;包括硬盘等的存储部分1108;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分1109。通信部分1109经由诸如因特网的网络执行通信处理。驱动器1110也根据需要连接至I/O接口1105。可拆卸介质1111,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1110上,以便于从其上读出的计算机程序根据需要被安装入存储部分1108。
根据本公开的实施例,根据本公开实施例的方法流程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1109从网络上被下载和安装,和/或从可拆卸介质1111被安装。在该计算机程序被处理器1101执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的数据处理方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM 1102和/或RAM 1103和/或ROM 1102和RAM 1103以外的一个或多个存储器。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。
Claims (10)
1.一种报表系统的测试方法,包括:
解析所述报表系统的报表页面,得到至少一个报表页面要素;
基于所述至少一个报表页面要素的组合,生成至少一个测试用例;
生成所述至少一个测试用例中每个测试用例的测试路径;
利用样本数据,按照第一测试路径测试所述报表系统,得到第一测试结果,其中,所述第一测试路径为至少一个测试用例中的第一测试用例的测试路径,所述第一测试用例为所述至少一个测试用例中的任意一个测试用例;以及
将所述第一测试结果与第一标准报表进行对比,验证所述第一测试用例在所述报表系统中运行的准确性,其中所述第一标准报表为利用所述样本数据基于所述第一测试用例的报表逻辑而获得的报表。
2.根据权利要求1所述的测试方法,其中,所述基于所述至少一个报表页面要素的组合,生成至少一个测试用例,包括:
按照剪枝策略生成所述至少一个测试用例。
3.根据权利要求2所述的测试方法,其中,所述至少一个报表页面要素中每个报表页面要素的取值为至少一个字典值选项之一,所述基于所述至少一个报表页面要素的组合,生成至少一个测试用例,包括:
对所述至少一个报表页面要素中的不同报表页面要素进行组合,得到至少一个第一组合;
对所述至少一个第一组合中的每个第一组合中的每个报表页面要素取不同的字典值选项,得到至少一个第二组合;
按照剪枝策略从所述至少一个第二组合中筛选出所述至少一个测试用例。
4.根据权利要求1所述的方法,其中,所述利用样本数据,按照第一测试路径测试所述报表系统,得到第一测试结果包括:
将所述第一测试路径转换为第一测试脚本;以及
在所述报表系统中加载所述样本数据并执行所述第一测试脚本,得到所述第一测试结果。
5.根据权利要求4所述的方法,其中,所述第一测试脚本包括前置公共步骤脚本和后置公共步骤脚本,其中:
所述前置公共步骤脚本用于用户登录、报表连接查找、以及查询;
所述后置公共步骤脚本用于下载报表以及保存报表。
6.根据权利要求1所述的方法,还包括:
获取所述报表系统中所述第一测试用例的报表逻辑;
利用样本数据基于所述第一测试用例的报表逻辑生成所述第一标准报表。
7.根据权利要求1所述的方法,还包括:
计算所述报表系统的测试用例通过率,其中所述测试用例通过率=验证通过的测试用例的个数/所述至少一个测试用例的总个数。
8.一种报表系统的测试装置,包括:
解析模块,用于解析所述报表系统的报表页面,得到至少一个报表页面要素;
第一生成模块,用于基于所述至少一个报表页面要素的组合,生成至少一个测试用例;
第二生成模块,用于生成所述至少一个测试用例中每个测试用例的测试路径;
测试模块,用于利用样本数据按照第一测试路径测试所述报表系统,得到第一测试结果,其中,所述第一测试路径为至少一个测试用例中的第一测试用例的测试路径,所述第一测试用例为所述至少一个测试用例中的任意一个测试用例;以及
验证模块,用于将所述第一测试结果与第一标准报表进行对比,验证所述第一测试用例在所述报表系统中运行的准确性,其中所述第一标准报表为利用所述样本数据基于所述第一测试用例的报表逻辑而获得的报表。
9.一种报表系统的测试系统,包括:
一个或多个存储器,存储有可执行指令;以及
一个或多个处理器,执行所述可执行指令,以实现根据权利要求1~7中任一项所述的方法。
10.一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行根据权利要求1~7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910679662.9A CN110377524B (zh) | 2019-07-25 | 2019-07-25 | 报表系统的测试方法、装置、系统及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910679662.9A CN110377524B (zh) | 2019-07-25 | 2019-07-25 | 报表系统的测试方法、装置、系统及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110377524A true CN110377524A (zh) | 2019-10-25 |
CN110377524B CN110377524B (zh) | 2023-04-18 |
Family
ID=68256249
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910679662.9A Active CN110377524B (zh) | 2019-07-25 | 2019-07-25 | 报表系统的测试方法、装置、系统及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110377524B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110851366A (zh) * | 2019-11-18 | 2020-02-28 | 中国银行股份有限公司 | 一种回归测试的实现方法及装置 |
CN111813691A (zh) * | 2020-07-23 | 2020-10-23 | 中国工商银行股份有限公司 | 测试问题排查方法、装置、电子设备和介质 |
CN112559324A (zh) * | 2020-11-30 | 2021-03-26 | 南京航空航天大学 | 一种基于应用内视觉挖掘的软件测试用例生成方法 |
CN113127370A (zh) * | 2021-05-14 | 2021-07-16 | 中国工商银行股份有限公司 | 报表系统冒烟测试方法、rpa机器人及系统 |
CN114817286A (zh) * | 2022-04-29 | 2022-07-29 | 中冶赛迪重庆信息技术有限公司 | 一种铜冶炼设备数据处理方法、系统、电子设备及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103164328A (zh) * | 2011-12-12 | 2013-06-19 | 中国移动通信集团陕西有限公司 | 一种业务功能的回归测试方法、装置及系统 |
US20150278393A1 (en) * | 2014-03-25 | 2015-10-01 | Wipro Limited | System and method for business intelligence data testing |
CN109254988A (zh) * | 2018-08-03 | 2019-01-22 | 京信通信系统(中国)有限公司 | 报表自动测试方法、装置、计算机存储介质及设备 |
CN109992498A (zh) * | 2017-12-29 | 2019-07-09 | 北京京东尚科信息技术有限公司 | 测试用例的生成方法及系统、计算机系统 |
-
2019
- 2019-07-25 CN CN201910679662.9A patent/CN110377524B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103164328A (zh) * | 2011-12-12 | 2013-06-19 | 中国移动通信集团陕西有限公司 | 一种业务功能的回归测试方法、装置及系统 |
US20150278393A1 (en) * | 2014-03-25 | 2015-10-01 | Wipro Limited | System and method for business intelligence data testing |
CN109992498A (zh) * | 2017-12-29 | 2019-07-09 | 北京京东尚科信息技术有限公司 | 测试用例的生成方法及系统、计算机系统 |
CN109254988A (zh) * | 2018-08-03 | 2019-01-22 | 京信通信系统(中国)有限公司 | 报表自动测试方法、装置、计算机存储介质及设备 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110851366A (zh) * | 2019-11-18 | 2020-02-28 | 中国银行股份有限公司 | 一种回归测试的实现方法及装置 |
CN111813691A (zh) * | 2020-07-23 | 2020-10-23 | 中国工商银行股份有限公司 | 测试问题排查方法、装置、电子设备和介质 |
CN111813691B (zh) * | 2020-07-23 | 2024-03-01 | 中国工商银行股份有限公司 | 测试问题排查方法、装置、电子设备和介质 |
CN112559324A (zh) * | 2020-11-30 | 2021-03-26 | 南京航空航天大学 | 一种基于应用内视觉挖掘的软件测试用例生成方法 |
CN112559324B (zh) * | 2020-11-30 | 2023-07-07 | 南京航空航天大学 | 一种基于应用内视觉挖掘的软件测试用例生成方法 |
CN113127370A (zh) * | 2021-05-14 | 2021-07-16 | 中国工商银行股份有限公司 | 报表系统冒烟测试方法、rpa机器人及系统 |
CN114817286A (zh) * | 2022-04-29 | 2022-07-29 | 中冶赛迪重庆信息技术有限公司 | 一种铜冶炼设备数据处理方法、系统、电子设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110377524B (zh) | 2023-04-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110377524A (zh) | 报表系统的测试方法、装置、系统及介质 | |
CN110892375B (zh) | 用于规则编辑、模拟、版本控制和业务流程管理的系统 | |
US8930337B2 (en) | Mapping dataset elements | |
US9798781B2 (en) | Strategy trees for data mining | |
US8904342B2 (en) | System and method for rapid development of software applications | |
US9037549B2 (en) | System and method for testing data at a data warehouse | |
CN102754072B (zh) | 规定用户界面元素 | |
US11263562B1 (en) | System and method for computer-assisted improvement of business intelligence exosystem | |
CN104020997A (zh) | 可扩展图形化规则应用系统 | |
CN110413524A (zh) | 用于生成测试脚本的方法和装置、自动化测试方法 | |
CN112368685A (zh) | 可定制的企业自动化测试框架 | |
KR20110043292A (ko) | 커스터마이징 리서치 시스템 및 그 방법 | |
Nickel et al. | Decision Optimization with IBM ILOG CPLEX Optimization Studio: A Hands-On Introduction to Modeling with the Optimization Programming Language (OPL) | |
CN108897877A (zh) | 基于excel的大数据分析工具和方法 | |
CN111916164B (zh) | 用于临床研究中的中心启动调研系统的实现方法和装置 | |
CN111933228B (zh) | 用于临床研究中的项目分发与管理系统的实现方法和装置 | |
Offutt et al. | An industrial study of applying input space partitioning to test financial calculation engines | |
CN112381509A (zh) | 重大新药创制国家科技重大专项课题管理系统 | |
Bischof et al. | Raw data collection software in the Swiss NFI | |
Ferrua | The “Delta” Case: New AWS Data Platform Implementation | |
CN113052675B (zh) | 数据展示方法和装置 | |
US20220343354A1 (en) | Systems, methods, and graphical user interfaces for price book generation, modification, and visualization | |
US11681504B1 (en) | Automated application builder using configuration files | |
Chang-Fu | Design and Implementation of Intelligent Financial Data Mining and Analysis System Based on Web | |
de Castro et al. | Local features: Enhancing variability modeling in software product lines |
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 |