zoukankan      html  css  js  c++  java
  • 报表测试方法与注意事项

    转自:https://www.cnblogs.com/sallyliu/p/6366144.html

    1.提高对业务的熟悉程度
    和功能测试以及其他测试一样,报表测试也需要熟悉业务,包括业务流程、业务规则以及数据存储,不同点是报表测试要理解每个指标的算法、数据来源以及要明白具体的业务动作和指标之间的关系.

    例如:要统计保费收入,首先要考虑正常保单,其次要考虑批增、批减以及注销、全单退以及其他特殊批改,这些业务类型都可以对此指标的统计结果产生影响。所以如果不能分析业务动作和指标之间的关系,那就无法验证报表中数据的准确性。

    2.数据准备
    数据对报表测试来说是非常重要的问题,因为报表的基本功能就是通过各种查询统计分析的方法为用户提供准确的数据,帮助用户进行决策以及分析,所以在报表测试前要保证准备足够多准确、有效的数据。在实际测试的时候一定要覆盖到报表所要求的每个维度,要保证所有的指标都要有对应的数据,不能出现指标为零的情况,当然也不需要过多,只要覆盖了所有的类型就可以了。一下总结了两种数据准备的方法:

    1> 对测试后期比如冻结测试时产生的数据进行备份,用于报表测试,前提一定要保证
    数据的原始性,不允许对任何人对数据进行修改;
    2> 自己手工对数据进行准备并且精心设计,要分析影响所测指标的各种因素,以及每
    个因素可能出现的不同变化,这样才有可能覆盖各种查询统计方法,并且要考虑需要考虑的是对各种正常的、异常的业务流程和业务规则的组合的遍历或覆盖,从而来验证报表是否取到的该取的数据、没有取不该取的数据,并且最后计算出了正确的结果。最后要将自己准备的数据用excel保存,并对数据的特点进行记录,以提高测试时的效率,并可以减少回归测试工作量;

    3.数据正确性验证
    对于客户来说,使用报表就是期望通过报表系统这个平台能够快速简单的查到自己所需要的数据,所以测试报表最主要的内容就是要验证数据的正确性

    总结方法如下: 

    1 > 要弄清楚数据的来源,来源于哪张表、哪个字段;
    2 > 时间条件:统计区间具体应该以业务中的什么时间在卡,并且考虑需求中是否包括统计区间的边界值;
    3> 要弄清楚所测表以及所测指标的特定条件,比如要统计2009-01-01——2009-01-31
    这个月份所有代理业务,那特定条件就是将保单的业务来源要限制在代理业务中;

    4> Sql准备,这个过程是将上面三个过程进行总结,也是后续和开发人员进行分析数据的基础,所以提高自己编写sql的能力。另外当测试时间不充裕的情况下,对一些简单的报表,如清单之类的报表就可以不用自己遍写sql语句,直接选出各种业务类型的单子进行单独分析;

    5> 数据核对以及分析,用sql查询出的数据要和开发人员的进行核对,由于有些数据量很大,所以最好借助对比工具(推荐:BCompare此软件),对于核对不上的数据要单独进行分析,分析的过程往往是发现问题主要环节,在这个过程中,如果自己实在分析不出来,则可以让开发人员协助;

    6> 数据的显示格式: 小数位、千分符,百分号等是否与报表设置的一致,单位、汇率等是否进行转化,将有些代码是否转换成文字,比如被保险人性别,是否将系统中的0、1转化成男或女;

    7> 明细与合计的一致性:

    各部分明细值的和是否和总和一致等;
    8> 要覆盖所有的查询统计方式,在时间充分的条件下,要根据条件(筛选项、维度)通过等价类划分和排列组合设置各种条件组合,每种都要测试到,千万不能按照自己的习惯为准;

    4.报表格式的显示
    在数据验证之后,要关注的就是输出报表的显示格式是否符合客户需求。

    报表的格式主要有两大类:

    一、保险行业标准中规定的报表使用固定格式,如:保监会上报的一些报表,

    二:按照企业或者用户的需求定制的报表,所以对这两大类报表则需要从以下几个方面去测试:

      1> 报表的整体显示格式是否符合客户提供的表样

      2> 报表的标题或者表名是否正确
      3> 报表页面的时间段是否是用户选择的时间段
      4> 当输出的内容过多时,分页方式是否正确,翻页时,是否有与上页相同的样式(如
      表头),第2页的输出是否正确
      5> 需要特别提醒的数据(一些异常数据)是否突出显示,有些指标计算方法特别复杂或者有几个指标容易混淆时是否在页面有加注释

    5.报表之间的可比性
    在纵向的测试完成后,我们要将所测试的报表进行横向联系因为有些报表虽然名称不一样,但是有些指标是一样的,这样我们就需要将这两张报表哪起来进行比较,看在相同的时间段内是否统计出的结果都是一样的。

    另外不同报表的不同指标之间也是有联系的,如:业务中的应收保费清单和财务中的应收保费科目余额,当两者统计口径一致的时候,清单中的应收保费的合计则等于财务应收科目的余额,还有保费收入、实收保费、应收保费在同一统计区间总保费收入 = 实收保费 + 应收保费(未实收到的),所以在测试过程中,一定要理清它们之间的层次、顺序,这就需要加强对业务的理解和知识的积累!

    6.其他
    1> 报表的输出以及打印
    报表在系统中生成后,并没有结束.报表一般都需要打印出来供客户使用用,例如开会或者提交审批之类.所以报表的打印功能也是非常重要的.在打印之前,用户一般都需要导出报表做进一步的分析或用于和其他报表的比较.所以也要验证报表的导出功能.一般可以导出的主要格式是Excel,pdf格式,然后要验证导出的内容是否正确,与生成的报表相一致.

    2> 报表的性能  尽量要求开发人员采用最优的查询语句,避免客户在使用过程中等待时间过长

    3> 报表的权限
    对于有权限控制的系统,报表当然也应该和用户所具有的权限相一致.需要从两方面校验权限的控制.报表的条件定义:在条件选择区域,有些下拉框中应该不能显示用户权限范围外的数据. 

    备注:目前这部分内容测试比较少,之前客户没有提出权限这方面的需求,但是最近在使用过程中,客户提出过,要求分公司人员只能查出自己分公司的清单,允许总公司查出所有的符合要求的清单,估计在后续还会提出类似这样的要求,所以这部分后续要需要加强测试。

  • 相关阅读:
    Stack
    js this理解
    js面向对象
    自执行函数
    原!struts安全漏洞,由2.3.37版本升级至2.5.22
    原!linux机器 配置自动scp脚本
    转!!记一次使用 Arthas 热更新线上代码
    mysql 修改大表字段,报错ERROR 1878 (HY000): Temporary file write failure. 用pt-online-schema-change
    转!!JAVA Future 模式与 Promise 模式
    转!!linux下详解shell中>/dev/null 2>&1
  • 原文地址:https://www.cnblogs.com/deliaries/p/11270895.html
Copyright © 2011-2022 走看看