• 1
  • 1
分享

一、测试过程拆解

针对BI报表测试,一般情况下,我们需要自己准备数据,来验证报表统计的准确性。由于系统的构成不一样,简单把报表测试过程分解为两个层次:数据收集汇总、数据统计展。

在做数据收集汇总验证时,我们需要了解数据从哪里来,如何汇总,数据入库的规则是什么,如何存放,在什么时间点进行汇总。把这些问题弄清楚了,才可以针对性的做测试策略,来验证数据入库的准确性。这步很重要,因为这个是报表测试的数据来源,如果这里的数据出错,后面的一切都没有意义。

针对数据统计展现,我们需要了解页面上展现的数据来源于库中的哪些表哪些字段,根据什么样的规则来统计。把所有需要展现的数据集对应清楚,这样才能有效的进行数据准备,验证前端的统计、展现是否有问题。可参考:模拟数据在实际场景中的应用

在实际的测试过程中,以上两个层次不要集中在一起去验证,以免链路过长,不好定位问题,最好分开来验证(可以由不同的人员并行测试),同时,在测试过程中,一定要保证数据的可控制性!在开发设计之初,我们就需要评估相关的测试数据制造时间,进行有针对性的准备。完成数据准备后,最好能够备份,以便在测试过程中随时还原数据,重现或者验证BUG。

二、BI报表测试策略

1、数据汇总测试策略

数据来源:

  • 数据从哪些系统中收集。

  • 通过什么方式进行收集(定时任务\接口筛选\数据库同步)。

数据入库:

  • 数据源库与目标库的对应关系。

  • 了解相关库的基本操作(MYSQL\HADOOP)。

数据验证:

  • 明确数据入库的时间分片(按日?月?年?时?分)。

  • 核对两边的数据,可以抽样验证,重点关注临界的数据。

2、测试数据准备

原始数据:

  • 了解原始库的库表结构、数据分类。

  • 了解本次报表展现的边界规则,对应的准备测试数据。

  • 通过一定的手段生成数据并固定测试数据。

展现数据:

  • 数据覆盖所有分类。

  • 数据量需要足够多。

  • 需要包含所有边界值(结合展现时的查询条件)。

  • 数据中需要包含少量的非法数据,验证系统的容错性。

数据生成方式:

  • 存储过程。

  • 第三方工具(DataFactary等)。

  • 通过业务生成数据(并不推荐)。

  • 相关业务接口生成数据。

3、页面数据展现测试

数据的来源:

  1. 来源于哪张表,哪个字段。

  2. 数据库中的数值与界面数据的对应.如数据库中性别的数据可能是0或1,但界面显示为男或女,这个对应关系是否正确。

数据的范围:

  1. 是否只显示了报表设置的对应范围。

  2. 特别要注意边界数据,要清楚报表的需求,是否需要过滤掉被选择的数据.如时间选择为2021-6-1~2022-6-1,那么是否应该包含6-1这天。

数据的对应关系:

  1. 数据库中的字段是否与报表中的信息对应。

数据的格式:

  1. 小数位,千位符,四舍五入等是否与报表设置一致。

  2. 单位或税率转换是否正确。

  3. 组合显示的数据是否合理。

数据的排序:

  1. 排序方式是否与报表设置一致(如果没有设置,是否有一个清晰的默认排序方式,如按字母或数字排序)。

数据准确性:

  1. 对于各种分类统计,首先验证数据总量是否一致,其次验证各类数据的总和是否一致,特别注意四舍五入对数据的影响。

  2. 所登录的用户是否能查看到全量的数据,还是部分数据,部分数据的统计是否正确。

测试这一部分内容需要对业务逻辑相当熟悉,对数据库的设计也要非常了解.必要时可以通过自己写查询语句查看数据.有些报表的条件有多有少,但测试方法都是一样.根据条件通过等价类划分和排列组合设置各种条件组合.千万不要盲目的测试,否则会导致该测的没测,多余的测试做了一堆.一般来说有类别划分的(一般界面表现为下拉框),每个类别都要测试到,如性别中的男,女都要测试.输入的可以用等价类来划分要测试的数据。

4、页面UI测试

报表的整体风格:

  1. 报表是否符合规定的或用户设置的格式。

报表标题:

  1. 报表的标题是否是正确的报表名称。

  2. 如报表中有嵌入的数据(会跟随用户的选择而变化的).需要检查数据是否正确,如XX企业6月份财务报表,这个6月就是用户选择的;或者XX公司2021-6-1~2022-6-1的网站访问量,这个时间段也是用户选择的。

  3. 报表的页首与页尾:是否采用了一致的规则。

  4. 分页:当输出的内容多时,分页是否正确,翻页功能是否正确。

友好性:

  1. 数据或图表是否清晰,一目了然。

  2. 数据的展示符合用户的习惯。

  3. 需要特别提醒的数据(如合计,异常数据)是否突出显示。

  4. 复杂算法处,用户不明白或容易混淆处是否有注释。

  5. 一些默认的格式是否让人感觉舒服,如对齐,边界,间隔等。

5、数据权限控制

报表系统权限控制等级:比如:按钮级(权限不够某个按钮就不能用);菜单级(权限不够某个菜单就不能用);页面级(比如用tab方式展示页面,没有权限则某个页面就不展现)。

参与人员涉及到的权限:一般以角色区分,这里详细列出各个角色允许的权限,便于后继针对性检查。

数据权限:在条件选择区域,有些下拉框中应该不能显示用户权限范围外的数据.如普通人员在使用报表时,报表名称下拉框中是不可以显示管理者才能查看的报表的.注意这里一定要测试每个条目。

数据内容:报表中的内容不能显示用户本没有权限查看的数据。

6、报表输出

报表在电脑上生成后,并不是报表的结束.报表一般都需要打印出来以做它用,如开会或者提交审批之类.所以报表的打印功能也是非常重要的.测试主要分成三部分:打印设置、打印预览、实际打印效果。

除了打印之外,用户有可能需要导出报表做进一步的分析或用于和其他报表的比较.所以也应该提供导出报表的功能.一般可以导出为CSV,Excel,pdf,html,xml格式.看公司需要了.这里主要要检查导出的报表默认属性是否为读写,然后导出的内容是否正确,与生成的报表相一致。

7、报表性能

用户在设置好条件后都希望不要等待报表太长时间,当然有时数据量大时等待时间长些也是合理的.但是在做报表的开发时或测试人员可以提出一些意思来提高报表的性能.可以走查开发的SQL代码、必要的时候可以通过视图来提高性能。


作者:好好先生

原文链接:https://blog.csdn.net/weixin_44275820/article/details/125477568

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   微软就最近曝光的美国国家公共数据(NPD)漏洞发布了一个新的支持页面。这是由网络犯罪集团 USDoD 发起的网络攻击导致的大规模漏洞,受影响人数远超 1.5 亿,近 300 万条个人敏感数据记录(如社会保险号 (SSN)、家庭住址、姓名等)被泄露。  美国监督与问责委员会证实,它正在调查此事,以更好地了解事情的经过和原因。NPD从公共记录、国家和州数据库以及法院文件(包括一些非公开来源)中收集信息。然后,这些私人数据被出售给各种组织,如背景调查网站、调查员、应用程序开发商和数据转售商。  微软在其支持文件中解释了发生的情况:  2024 年初,在线背景调查和防欺诈服务公司 National...
            0 0 272
            分享
          • 9 月 5 日消息,据腾讯 QQ 官方消息,在开学之际,QQ 上线了“QQ 学生卡”,可一键查看你的 Q 龄。在 QQ 搜索“QQ 学生卡”,即可查看你的 Q 龄。据了解,QQ 是 1999 年 2 月由腾讯开发的一款基于互联网的即时通信软件,最初称为 OICQ。2000 年 11 月,腾讯推出 QQ2000 版本,将名称由 OICQ 更名为 QQ。根据腾讯 2021 年财报,QQ 移动端月活跃账户数为 5.52 亿。作者:孤城文章来源:IT之家 (ithome.com)
            0 0 643
            分享
          •  一、前言工欲善其事,必先利其器最近对 API 接口协作的软件研究了好久,市面上的软件都下载用了一轮,下面给大家介绍其中的最强「神器」 Apifox。Apifox 官网:apifox.cn 在介绍它之前,先说几个场景。如果你是后端、前端或测试,那一定遇到过这些场景。1.1. 场景一、后端视角:我是个 后端 ,遇到过的问题:接口定好,团队里的前端、测试小伙伴找我 要文档 。代码注释好给个 Swagger 还容易被吐槽界面丑、功能弱,不能做到 开发阶段即可并行联调 ,一开始是对接不了、调试不起来的,甚至有时候还会出现前端开发完界面,只能等后端联调。接口联调对接过程中,总会有些接口没预料...
            11 10 1981
            分享
          •   “同行评审是一种通过作者的同行(开发、测试、QA等)来确认缺陷和需要变更区域的检查方法。”在软件测试中,同行评审是用来检验软件开发,软件评测各阶段的工作是否齐全,规范,各阶段产品是否达到了规定的技术要求和质量要求,以决定是否可以转入下一阶段的工作。软件评审是为了确保软件开发项目的顺利进行而必须进行的工作,往往同行评审时由5人以上的团体来完成的,在一定的时间内,发现尽量多的错误,是评判一个同行评审是否达到要求的评价指标。  在同行评审中,部门评审阶段一般分为九个阶段:  1.系统分析和设计  2.软件需求分析  3.系统概要设计  4.软件详细设计  5.代码和单元测试  6.软件组件测试 ...
            0 0 1814
            分享
          • 1、现在在做功能测试,一般都是把软件界面和该软件的逻辑测试一下,工作大半年了想往性能测试方向转,感觉很多东西要学习,但是不知道从哪下手,请大神指点。有这种想转的思想很好。相信有很多和你同样情况的同学,同时,半年的经验一下子转过来是不可能的。首先,我建议在工作过程中在积累一年左右。主要是在做功能测试的同时,你可以自己搭建测试环境,加深对整个系统的理解,这个过程就在提高自己的学习能力和打下知识基础。被测项目用了哪些技能可以自己多多加深学习和理解。也就是在项目中自己更多的学习,利用工作中的测试项目充分学习。其次,学习一款性能测试工具。我本人不建议上来就学那些操作系统、数据库等知识。毕竟先从工具入手是...
            1 0 1976
            分享
      • 51testing软件测试圈微信