您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 经营企划 > 如何更好的执行报表测试
如何更好的执行报表测试如何更好的执行报表测试魏靖魏靖20092009--66--1616报表的产生根源报表的产生根源¾¾报表是任何一个管理软件都会提供的重要功报表是任何一个管理软件都会提供的重要功能;能;¾¾报表功能的基本要求,就是通过查询、统计、报表功能的基本要求,就是通过查询、统计、分析,提供用户所需的准确的数据。如果无法分析,提供用户所需的准确的数据。如果无法实现这个基本功能,则报表完全失去意义实现这个基本功能,则报表完全失去意义;;¾¾近期工作主要任务是报表测试近期工作主要任务是报表测试报表的含义及作用报表的含义及作用¾¾报表是数据库的对象之一,报表不但可以按用报表是数据库的对象之一,报表不但可以按用户要求的格式进行数据的打印输出,而且可以户要求的格式进行数据的打印输出,而且可以输出数值型数据的统计、汇总值;输出数值型数据的统计、汇总值;¾¾报表能综合反应企业某一特定时期的经验状报表能综合反应企业某一特定时期的经验状况;况;¾¾报表可以直接影响到企业管理层的决策报表可以直接影响到企业管理层的决策;;¾¾报表有多种表现形式如分析图,仪表盘;报表有多种表现形式如分析图,仪表盘;¾¾高级应用的报表可实现数据挖掘、数据钻取的高级应用的报表可实现数据挖掘、数据钻取的功能。功能。测试经验测试经验¾¾提高对业务逻辑和数据逻辑的熟悉程度提高对业务逻辑和数据逻辑的熟悉程度99其实对任何一个软件进行测试,都必须要熟悉它的业务,包括业其实对任何一个软件进行测试,都必须要熟悉它的业务,包括业务流程和业务规则。但是报表同一般的业务功能还是有些区别的。务流程和业务规则。但是报表同一般的业务功能还是有些区别的。例如对于单据的增、删、改,通过对界面的浏览和探索性的操例如对于单据的增、删、改,通过对界面的浏览和探索性的操作,大概都可以弄明白它的业务流程和业务规则,因为这些内容作,大概都可以弄明白它的业务流程和业务规则,因为这些内容比较直观,而且在不同的行业中也差不了太多。但是在报表中,比较直观,而且在不同的行业中也差不了太多。但是在报表中,是很难直观的看到我们所需要了解的内容的。例如报表中的某个是很难直观的看到我们所需要了解的内容的。例如报表中的某个数据项,它的算法或者说数据来源,恐怕是比较难看出来了。数据项,它的算法或者说数据来源,恐怕是比较难看出来了。99所以对于报表业务的熟悉,主要是两个方面:数据项的算法和数所以对于报表业务的熟悉,主要是两个方面:数据项的算法和数据来源,也就是说要明白一个数据项同具体的业务有什么关系,据来源,也就是说要明白一个数据项同具体的业务有什么关系,单据的增、删、改或者状态的变化,对报表中各个数据项的计算单据的增、删、改或者状态的变化,对报表中各个数据项的计算会产生什么不同的影响。如果不知道到这些,那么就无法验证报会产生什么不同的影响。如果不知道到这些,那么就无法验证报表中的数据是否准确,也无法通过报表去检查业务系统的正确与表中的数据是否准确,也无法通过报表去检查业务系统的正确与否否。。测试经验测试经验¾¾覆盖所有可能的查询统计方式,而不是以自己的覆盖所有可能的查询统计方式,而不是以自己的使用习惯为准使用习惯为准99对于报表的使用者来说对于报表的使用者来说————一般是企业的中层或一般是企业的中层或高层领导,他们对于报表的要求可能会是多方面高层领导,他们对于报表的要求可能会是多方面的。如,生产线上的管理人员,他们可能关注的的。如,生产线上的管理人员,他们可能关注的是每个产品的进度,而企业的管理者,他们更多是每个产品的进度,而企业的管理者,他们更多的是关注整个加工单的进度。假如一个报表提供的是关注整个加工单的进度。假如一个报表提供了多种查询统计的方法,那么在测试时,只要时了多种查询统计的方法,那么在测试时,只要时间充分,就应该覆盖这些所有可能被用到的查询间充分,就应该覆盖这些所有可能被用到的查询统计方法,而不是以自己的使用习惯为测试的依统计方法,而不是以自己的使用习惯为测试的依据据。。测试经验测试经验¾¾使用或搭建完全受控的数据环境弄清楚数据的流转使用或搭建完全受控的数据环境弄清楚数据的流转过程,即,数据从哪里来?中间经过了哪些处理?过程,即,数据从哪里来?中间经过了哪些处理?最终如何进行展现?最终如何进行展现?99首先,应该保证准备足够多的有效的数据。前面一首先,应该保证准备足够多的有效的数据。前面一条也提到了,在实际测试报表时,应当尽可能的覆条也提到了,在实际测试报表时,应当尽可能的覆盖到报表所提供的各种查询统计方法,因此至少应盖到报表所提供的各种查询统计方法,因此至少应该保证每一种查询统计方法都应该有对应的数据,该保证每一种查询统计方法都应该有对应的数据,得到的结果都不会是得到的结果都不会是00,否则等于没有覆盖到这个被,否则等于没有覆盖到这个被测的查询统计算法。当然数据也不是越多越好,能测的查询统计算法。当然数据也不是越多越好,能保证全部覆盖,并且刚好够用就可以了,因为数据保证全部覆盖,并且刚好够用就可以了,因为数据的准备和生成也是很花时间的的准备和生成也是很花时间的。。99其次,要保证数据的可控。数据并不是随意生成其次,要保证数据的可控。数据并不是随意生成的,如果使用通过自动化工具或者通过业务测试时的,如果使用通过自动化工具或者通过业务测试时随意的输入的数据来进行报表测试,一般来说是不随意的输入的数据来进行报表测试,一般来说是不太可能的。因为如果无法控制数据来源,那么即使太可能的。因为如果无法控制数据来源,那么即使知道报表中每个数据项的算法,也无法最终验证报知道报表中每个数据项的算法,也无法最终验证报表的查询统计结果是否正确。例如,系统会有不同表的查询统计结果是否正确。例如,系统会有不同类型的单据,每种单据又会有不同的状态,某个报类型的单据,每种单据又会有不同的状态,某个报表的统计中,可能会涉及到多种类型和状态的单表的统计中,可能会涉及到多种类型和状态的单据,那么在准备数据时,就要充分考虑到这一点,据,那么在准备数据时,就要充分考虑到这一点,准备各种不同的单据来满足测试的要求。又比如,准备各种不同的单据来满足测试的要求。又比如,如果整个系统中只有一个加工单,那么测试按加工如果整个系统中只有一个加工单,那么测试按加工单看现场工作中心分布,则只有一条数据。这样的单看现场工作中心分布,则只有一条数据。这样的统计意义也就不大了统计意义也就不大了。。测试数据准备循序渐进,数据逻辑由简单测试数据准备循序渐进,数据逻辑由简单到复杂,数据量由小到大。如,某分省统到复杂,数据量由小到大。如,某分省统计报表中,可以先用一个省份的有限数据计报表中,可以先用一个省份的有限数据进行测试,并逐步增加数据复杂程度。而进行测试,并逐步增加数据复杂程度。而不要上来就用很复杂的数据进行测试。不要上来就用很复杂的数据进行测试。99所以如果希望高有效、更高质量的完成报表的测所以如果希望高有效、更高质量的完成报表的测试,那么就要重视并增加对于数据准备工作的关注:试,那么就要重视并增加对于数据准备工作的关注:用于验证报表功能的数据,一定是专门为报表准备用于验证报表功能的数据,一定是专门为报表准备的,并且是经过精心设计,要分析影响数据项算法的,并且是经过精心设计,要分析影响数据项算法的各种因素,以及每个因素可能出现的不同变化,的各种因素,以及每个因素可能出现的不同变化,这样才有可能覆盖各种查询统计方法;同时,才能这样才有可能覆盖各种查询统计方法;同时,才能保证无论使用哪个数据项的算法进行计算,其结果保证无论使用哪个数据项的算法进行计算,其结果都是可以预知的都是可以预知的————因为数据来源已经被我们控制因为数据来源已经被我们控制了了。。99对于算法比较复杂,又提供了多种查询统计方式的对于算法比较复杂,又提供了多种查询统计方式的报表,如果想完整的测试,就需要准备大量的数据。报表,如果想完整的测试,就需要准备大量的数据。而如果想高效、高质量的完成这项功能,就一定要而如果想高效、高质量的完成这项功能,就一定要理解数据准备工作的重要性理解数据准备工作的重要性99经过精心设计的数据还有一个好处,就是当在进行业务经过精心设计的数据还有一个好处,就是当在进行业务功能的测试时,不再需要使用一些随意的数据,而是可功能的测试时,不再需要使用一些随意的数据,而是可以通过业务测试的过程,把报表测试所需要的数据输入以通过业务测试的过程,把报表测试所需要的数据输入到系统中。并根据报表对单据类型和状态的需要,进行到系统中。并根据报表对单据类型和状态的需要,进行相应的操作。相应的操作。99如果留心,你也会发现报表测试同其他业务功能测试的如果留心,你也会发现报表测试同其他业务功能测试的有个区别。业务功能(例如单据的新增、审核等)的测有个区别。业务功能(例如单据的新增、审核等)的测试用例设计,通常需要考虑的是对各种正常的、异常的试用例设计,通常需要考虑的是对各种正常的、异常的业务流程和业务规则的组合的遍历或覆盖;而对于报表业务流程和业务规则的组合的遍历或覆盖;而对于报表功能,虽然没有太复杂的业务流程和规则,但是算法更功能,虽然没有太复杂的业务流程和规则,但是算法更加复杂,同时报表功能本身就是一种对数据的加工处加复杂,同时报表功能本身就是一种对数据的加工处理,因此会更偏重于对于各种数据来源和算法的遍历或理,因此会更偏重于对于各种数据来源和算法的遍历或覆盖,也就是要准备各种正常的、异常的数据,来验证覆盖,也就是要准备各种正常的、异常的数据,来验证报表是否取到的该取的数据、没有取不该取的数据,并报表是否取到的该取的数据、没有取不该取的数据,并且最后计算出了正确的结果且最后计算出了正确的结果。。测试经验测试经验¾¾特征性数据的准备特征性数据的准备99如果由多人同时对一个系统进行测试,虽然大家各自使如果由多人同时对一个系统进行测试,虽然大家各自使用的数据都是经过精心设计的,但是在实际进行报表测用的数据都是经过精心设计的,但是在实际进行报表测试时,还是很难保证其他人的数据不会对自己的测试结试时,还是很难保证其他人的数据不会对自己的测试结果产生影响,最明显的一个问题就是原来自己对结果是果产生影响,最明显的一个问题就是原来自己对结果是可以预知的,但是现在掺杂了别人的数据,就需要花时可以预知的,但是现在掺杂了别人的数据,就需要花时间去区分这种间去区分这种““假假””的错误和真的错误的错误和真的错误99有一个经验是可以借鉴的,就是在初期,团队内对数据有一个经验是可以借鉴的,就是在初期,团队内对数据的准备达成一致,使数据中的某一项具有特征性,例如的准备达成一致,使数据中的某一项具有特征性,例如分别使用不同的工单号。最后测试报表时,通过限定选分别使用不同的工单号。最后测试报表时,通过限定选取的数据来源,来保证相互之间尽可能的没有影响取的数据来源,来保证相互之间尽可能的没有影响。。测试经验测试经验¾¾做好数据环境的备份和维护做好数据环境的备份和维护99虽然数据是经过精心准备的,但是难免在操作过程中因为误操作虽然数据是经过精心准备的,但是难免在操作过程中因为误操作导致环境的变化,例如不小心把一张单据变成了另外一种状态,导致环境的变化,例如不小心把一张单据变成了另外一种状态,或者某个类型的单据多做了一张。对于这种情况,一个简单的方或者某个类型的单据多做了一张。对于这种情况,一个简单的方法就是去维护你的数据文档法就是去维护你的数据文档————一般我们都可以用一般我们都可以用EXCELEXCEL表来表来保存我们事先准备的数据,可以一个文件保存一个类型的单据,保存我们事先准备的数据,可以一个文件保存一个类型的单据,文件中的每张表用来保存不同状态的单据,例如已经审核过的入文件中的每张表用来保存不同状态的单据,例如已经审核过的入库单,没有审核过的入库单,全部入库的入库单和部分入库的入库单,没有审核过的入库单,全部入库的入库单和部分入库的入库单等等。假如你一不小心,把一张本来准备入一半的入库单全库单等等。假如你一不小心
本文标题:如何更好的执行报表测试
链接地址:https://www.777doc.com/doc-856327 .html