随着大数据分析的流行,测试人员越来越多的需要接触到各类不同的报表,如何测试报表中相关数据的有效性和正确性成为了难点。
报表涉及的测试点很多,比如上下游数据的比对、权限、性能、安全、接口、内容展示等等,且由于报表是用户最关心最常用的模块,所以如何保证报表的测试质量就显得尤为重要了。
报表测试主要分为:报表界面测试、报表安全性、报表准确性、报表展示速度(也就是性能)。从重点开始,数据准确性测试,带有报表测试的系统分为两类,一类是业务系统中,带有统计分析功能模块,该模块中包含分析报表,这个系统的主体是业务系统,报表是为办理业务的而提供帮助的。比如说,应年检统计报表,某月应交罚款车辆统计报表,这样的报表数据准确与否,可通过增加、删减、修改相关业务或相关业务的参数,查看统计报表数据变化,检查数据准确性。另一类是系统只有统计功能,就是数据仓库展现这类,它与业务系统分离,并且经过多层处理,比如数据仓库的数据,经过抽取,清洗,展现前会经过数据挖掘,数据再处理,有些字段在原始数据表中根本就没有。这样的数据准确性测试比较复杂,当然检查出数据错误,修改定位也是很不容易的。
针对报表测试,一般情况下,我们需要自己准备数据,来验证报表统计的准确性。由于系统的构成不一样,简单把报表测试过程分解为两个层次:数据收集汇总、数据统计展。
在做数据收集汇总验证时,我们需要了解数据从哪里来,如何汇总,数据入库的规则是什么,如何存放,在什么时间点进行汇总。把这些问题弄清楚了,才可以针对性的做测试策略,来验证数据入库的准确性。这步很重要,因为这个是报表测试的数据来源,如果这里的数据出错,后面的一切都没有意义。
针对数据统计展现,我们需要了解页面上展现的数据来源于库中的哪些表哪些字段,根据什么样的规则来统计。把所有需要展现的数据集对应清楚,这样才能有效的进行数据准备,验证前端的统计、展现是否有问题。
在实际的测试过程中,以上两个层次不要集中在一起去验证,以免链路过长,不好定位问题,最好分开来验证(可以由不同的人员并行测试),同时,在测试过程中,一定要保证数据的可控制性!!!在开发设计之初,我们就需要评估相关的测试数据制造时间,进行有针对性的准备。完成数据准备后,最好能够备份,以便在测试过程中随时还原数据,重现或者验证BUG。
1.1 数据汇总测试策略
测试项目:数据来源
测试要点:1.数据从哪些系统中的收集2.通过什么方式进行收集(定时任务\接口筛选\数据库同步)
测试项目:数据入库
测试要点:1.数据源库与目标库的对应关系2.了解相关库的基本操作(MYSQL\HADOOP)
测试项目:数据验证
测试要点:1.明确数据入库的时间分片(按日?月?年?时?分)2.核对两边的数据,可以抽样验证,重点关注临界的数据
1.2 测试数据准备
测试项目:原始数据
测试要点:1.了解原始库的库表结构\数据分类2.了解本次报表展现的边界规则,对应的准备测试数据3.通过一定的手段生成数据并固定测试数据
测试项目:展现数据
测试要点:1.数据覆盖所有分类2.数据量需要足够多3.需要包含所有边界值(结合展现时的查询条件)4.数据中需要包含少量的非法数据,验证系统的容错性
测试项目:数据生成方式
测试要点:1. 存储过程2. 第三方工具3. 通过业务生居数据(并不推荐)4. 相关业务接口生成数据
1.3 页面数据展现测试
测试项目:数据的来源
测试要点:
来源于哪张表,哪个字段
数据库中的数值与界面数据的对应.如数据库中性别的数据可能是0或1,但界面显示为男或女,这个对应关系是否正确.
测试项目:数据的范围
测试要点:
是否只显示了报表设置的对应范围
特别要注意边界数据,要清楚报表的需求,是否需要过滤掉被选择的数据.如时间选择为2006-9-27~2007-9-27,那么是否应该包含9-27这天.
测试项目:数据的对应关系
测试要点:
数据库中的字段是否与报表中的信息对应
测试项目:数据的格式
测试要点:
小数位,千位符,四舍五入等是否与报表设置一致
单位或税率转换是否正确
组合显示的数据是否合理
测试项目:数据的排序
测试要点:
排序方式是否与报表设置一致(如果没有设置,是否有一个清晰的默认排序方式,如按字母或数字排序)
测试项目:数据准确性
测试要点:
对于各种分类统计,首先验证数据总量是否一致,其次验证各类数据的总和是否一致,特别注意四舍五入对数据的影响
所登录的用户是否能查看到全量的数据,还是部分数据,部分数据的统计是否正确
测试这一部分内容需要对业务逻辑相当熟悉,对数据库的设计也要非常了解.必要时可以通过自己写查询语句查看数据.有些报表的条件有多有少,但测试方法都是一样.根据条件通过等价类划分和排列组合设置各种条件组合.千万不要盲目的测试,否则会导致该测的没测,多余的测试做了一堆..一般来说有类别划分的(一般界面表现为下拉框),每个类别都要测试到,如性别中的男,女都要测试.输入的可以用等价类来划分要测试的数据.
1.4 页面UI测试
测试项目:报表的整体风格
测试要点:
报表是否符合规定的或用户设置的格式
测试项目:报表标题
测试要点:
报表的标题是否是正确的报表名称
如报表中有嵌入的数据(会跟随用户的选择而变化的).需要检查数据是否正确,如XX企业9月份财务报表,这个9月就是用户选择的;或者XX公司2006-9-27~2007-9-27的网站访问量,这个时间段也是用户选择的.
测试项目:报表的页首与页尾
测试要点:
是否采用了一致的规则.
测试项目:分页
测试要点:
当输出的内容多时,分页是否正确.
翻页功能是否正确
测试项目:友好性
测试要点:
数据或图表是否清晰,一目了然,
数据的展示符合用户的习惯
需要特别提醒的数据(如合计,异常数据)是否突出显示
复杂算法处,用户不明白或容易混淆处是否有注释
一些默认的格式是否让人感觉舒服,如对齐,边界,间隔等
测试项目:常规页面检查
测试要点:
翻页
联动搜索
数据比例差异很大时,报表的表现形式
1.5 数据权限控制
测试项目:报表系统权限控制等级
测试要点:
比如:按钮级(权限不够某个按钮就不能用);菜单级(权限不够某个菜单就不能用);页面级(比如用tab方式展示页面,没有权限则某个页面就不展现)
测试项目:参与人员涉及到的权限
测试要点:
一般以角色区分,这里详细列出各个角色允许的权限,便于后继针对性检查
测试项目:数据权限
测试要点:
在条件选择区域,有些下拉框中应该不能显示用户权限范围外的数据.如普通文员在使用报表时,报表名称下拉框中是不可以显示管理者才能查看的报表的.有些以输入的文本框有级别的划分时,都应该要测试输入超越权限的数据的相应.注意这里一定要测试每个条目.
测试项目:数据内容
测试要点:
报表中的内容不能显示用户本没有权限查看的数据.
1.6 报表输出
报表在电脑上生成后,并不是报表的结束.报表一般都需要打印出来他用,如开会或者提交审批之类.所以报表的打印功能也是非常重要的.测试主要分成三部分:
l 打印设置
l 打印预览
l 实际打印效果
除了打印之外,用户有可能需要导出报表做进一步的分析或用于和其他报表的比较.所以也应该提供导出报表的功能.一般可以导出为CSV,Excel,pdf,html,xml格式.看公司需要了.这里主要要检查导出的报表默认属性是否为读写,然后导出的内容是否正确,与生成的报表相一致。
1.7 报表性能
用户在设置好条件后都希望不要等待报表太长时间,当然有时数据量大时等待时间长些也是合理的.但是在做报表的开发时或测试人员可以提出一些意思来提高报表的性能.可以走查开发的SQL代码、必要的时候可以通过视图来提高性能。
本文由 Smartbi 投稿至 数据分析网 并经编辑发表,内容观点不代表本站立场,如转载请联系原作者,本文链接:https://www.afenxi.com/89117.html 。