第一篇:软件测试用例的设计心得
1、了解软件的原始需求(测试目的)
在编写一个软件或者模块的测试用例时候,一定要明白这个功能的原始需求,也就是软件的使用者(客户)的需求。理解原始需求后,编写的测试用例才更有目的性。
2、熟悉软件的功能需求(测试点)
这个功能需求是指软件的细化需求点,这个一般在需求文档里面都会体现。这里要做的是把 “粗略”的需求,细化成一个个小需求点。熟悉功能需求后,要知道软件是怎么使用的,这也才能覆盖到各种操作。
总之,测试用例一定要全部覆盖所有的需求点,这是最基本的一点。
3、熟悉软件的实现原理(测试点)
在理解原始需求和软件的功能需求后,根据需求编写的测试用例,基本上都能覆盖得比较全面了。
在此基础上,熟悉软件的实现原理,理解软件的内部处理。
(1)熟悉原理的过程是进一步深入熟悉软件的过程。如果单单是从需求点上面覆盖案例,测试用例只能覆盖“表面”的一层。一些内部的处理流程也许没有覆盖到,而这些没有覆盖到的代码很可能就是一个风险点。
(2)熟悉模块原理后,还有一点就是易于分析软件模块的关联性。一个大型的软件,都是一些小模块的组合而成。软件越是大型,耦合就越大,“互相影响”就会越多,若设计用例单单从模块本身考虑的话,很可能就会对其他模块造成风险。
4、用户场景和网上问题(测试点)
从用户的使用场景考虑,这在一些网络设备比较重要,比如软件后期在一些真实的使用环境中使用。
还要就是从一些网上问题总结出来的,那些地方容易出错,在设计案例的时候需要考虑进去。
5、测试用例的框架
一个测试用例的框架体现了一个测试人员在设计测试用例的整体思路。框架也是从大到小划分下来,可以是:
UI界面,功能,容错,兼容,性能等几大类,每个大类在根据软件的逻辑等进行划分成小类,最后细分到测试点。
6、测试步骤(测试技巧方法)
前面4点都是从测试点的角度考虑,测试用例在完成测试点外,接下来就是测试步骤和测试结果啦。
测试用例可以写的很详细,也可以写的比较简单。这要看公司的要求,有些公司要求测试步骤很细很细,包括测试结果和测试步骤一一对应。
要求测试步骤写的很详细的公司,一般是怕执行人员的执行力不到位,导致没有理解案例的目的,导致漏测。一般出现在新员工对软件系统的不熟悉。如果测试步骤写的很详细的话,会很耗时间,而且过于详细的会限制执行人员的思维。个人认为测试用例的重点在于测试点上。
7、测试用例的一些思路
在设计测试用例中,通常较多使用的是边界值,等价类,通过和不通过测试。下面从单个模块或者单个功能点考虑:(结合一些网上文章的观点)
(1)UI界面:易用性,提示信息,整体布局,按钮图标,色彩,中英文标点错别字。
(2)数据的多样性:有效数据,合法的无效数据(边界值),非法的异常数据,产生错误输出的合法数据组合等各种数据的组合。
(3)操作多样性:添加删除编辑查询,多用户的操作。
(4)容量测试
(5)用户权限:使用权限,各种操作的权限。
(6)升级安装卸载:平滑升级
(7)日志相关(包括调试日志)
(8)软件功能的逻辑划分:功能上划分未能覆盖的代码逻辑,可以添加白盒灰盒用例。
(9)可靠性,容错性
(10)兼容性:浏览器,系统,支撑软件。
(11)安全性
(12)性能(这里的性能是指,单个模块或者子系统的性能)
总之测试用例首先要能覆盖所有功能需求点,然后搞懂软件处理逻辑,可以找开发一起看测试用例,把没有覆盖到的代码流程相应的用例补充,至此,用例基本不会出现基本功能的问题。
在此基础上,可以进行一些可靠性,容错性,兼容性等用例的设计,测试下软件的稳定性。
第二篇:常见的软件测试用例设计方法
常见的软件测试用例设计方法有以下几种:
一、等价类划分
1)确定等价类
有效等价类代表对程序的有效输入;无效等价类代表的是其他不正确的任何输入。如果需要,我们还可以将一个等价类划分为更小的一些等价类。
比如,规格说明规定了“请输入书籍的数量(1~99)以及书籍的类型(硬皮、软皮或活页)”。它们对应的等价类分别如下:
书籍数量
书籍类型
2)生成测试用例
1.为每个等价类设置编号。
2.编写测试用例,尽可能多的覆盖尚未被覆盖的有效等价类。直到所有的有效等价类都被测试用例覆盖。测试用例及其覆盖的有效等价类如下:
3.编写测试用例,覆盖一个且仅一个尚未被覆盖的无效等价类。直到所有的无效等价类都被测试用例所覆盖。测试用例及其覆盖的无效等价类如下:
用单个的测试用例覆盖无效等价类,是因为有些输入的错误检查可能会屏蔽或取代其他输入的错误检查。比如②⑦,也许程序提示“非法的书籍数量”后,就不会执行对书籍类型的检查了。
二、边界值分析
经验证明,考虑了边界条件的测试用例比其他没有考虑边界条件的测试用例,具有更高的测试回报率。所谓边界条件,是指输入和输出等价类中恰好处在边界、或超过边界、或在边界以下的状态。
上例中的书籍数量范围是1~99,那么应该针对0,1和99,100的情况分别设计测试用例。
从定义可以看出,等价划分只关注输入空间(输入等价类)的不同,边界值分析还需要从输出空间(输出等价类)设计测试用例。
举例来说:
某个程序按月计算个人所得税的速算扣除数,且最小金额是0,最大金额是13,505。使用边界值分析法,应该设计测试用例测试速算扣除数结果为0和13505的情况。此外,还应观察是否可能设计出导致速算扣除数为负数,或者超过13505的测试用例。
边界值分析法和等价划分重要的区别是,等价划分是从等价类中挑选任意一个元素作为测试数据;边界值分析法考察正处于等价划分边界或在边界附近的状态。
三、因果图
边界值分析和等价划分的缺点是,未对输入条件的组合情况、输入条件之间的相互制约关系进行分析。
1)因果图的基本关系
恒等(Identify):若a为1,则b为1;否则b为0。
非(NOT):若a为1,则b为0;否则b为1。
或(OR):若a或b或c为1,则d为1;否则d为0。
与(AND):若a和b和c都为1,则d为1;否则d为0。
2)因果图的约束条件
1、对于输入条件的约束有E、I、O、R四种:
异(E):E必须总为真,而a、b最多只有一个为1。
或(I):I为真时,a、b和c中至少有一个必须为1。
唯一(O):a、b中,有且仅有一个必须为1。
要求(R):如果a为1,b也必须为1。
2、对于输出结果的约束只有M一种:
屏蔽(M):如果结果a为0,则b强制为0。
一、假设有一规格说明:
“第一列中的字符必须是‘A’或‘B’,第二列中的字符必须是一个数字。在这种情况下,对文件进行更新。如果第一个字符不正确,产生提示信息X12。如果第二个字符不是数字,产生提示信息X13。”
(1)将规格说明分解为可执行的片段,确定“因”和“果”,为每个“因”和“果”都赋予唯一的编号。“因”是条件,是指一个明确的输入条件等价类。“果”是动作,是指一个输出或系统转换(输入对程序或系统状态的延续影响)。
(2)分析规格说明的语义,转换为因果图。原因①和原因②不可能同时成立,为因果图添加对应的约束条件,得到右图。
因果图和添加了约束条件后的因果图
(3)将因果图转换为判定表,每一列代表一个测试用例。
判定表
(4)将判定表中的列转换为测试用例。
二、将因果图转换为判定表的思路(以上述的例子来说明)
1.选择一个“果”作为当前状态。例:71。
2.对因果图回溯,找出导致该“果”为1的所有因的组合(需要考虑到约束条件)。例:001,000。
3.在判定表中为每个“因”的组合生成一列。例:(列3)和(列4)。
4.对于每种“因”的组合,判断所有其他“果”的状态,并放置在对应的每一列中。例:已得在001,000两种组合下结点71的结果为1。判断在“因”为001的组合下,得到70和72的结果为0。判断在“因”为000的组合下,得到70的结果为0,72的结果为1。将“果”的状态填入其对应的列。
对因果图进行回溯时,需要做到以下考虑:
1.当回溯经过一个结果为1的OR结点时,不要将OR结点的1个以上的输入同时设为1。
2.当回溯经过一个结果为0的AND结点时,应列举出导致该结果为0的所有输入情况的组合。然而,当该AND结点的一个输入条件为0时,其他输入有一个或更多的1,则不必考虑其他输入为1的所有情况。
3.当回溯经过一个结果为0的AND结点时,所有输入皆为0的这一种情况应当列举出来。
找出因果图中,所有导致输出状态为0的输入条件
(1)根据上述第c)条思路,我们只需列出使得结点⑤和结点⑥皆为0的情况。结点①②③④的取值状态为:
0,0,0,0(5=0,6=0)
(2)根据第b)条思路,对于结点⑤为1而结点⑥为0的情况,应该列出导致⑥为0的所有输入情况组合。同时,只需列出一种使得⑤为1的情况即可,不需要列出⑤为1时的所有输入情况组合。又根据第a)条思路,当结点⑤为1时,我们不应将结点①和②同时设为1。于是,得到结点①②③④的取值状态:
1,0,0,0(5=1,6=0)
1,0,0,1(5=1,6=0)
1,0,1,0(5=1,6=0)
同样的,对于⑤为0而⑥为1的情况,也只需要列出⑥为1的一种情况即可(尽管在本例中也只有这一种)。
0,0,1,1(5=0,6=1)
因果图有助于用一个系统的方法选择出高效的测试用例集。它还有一个额外的好处,就是可以指出规格说明的不完整性和二义性。但通常它不能生成全部应该被确定的有效测试用例。
注意:因果图方法没有充分考虑边界条件。建议,最好是单独考虑边界值分析。这不意味着我们要为此增加相应多的测试用例,而是在由因果图生成测试用例时,可以将边界条件分析一并考虑进去。最好的结果是既满足了两方面的目标,又不需要增加新的测试用例。
四、错误推测
错误猜测是一项依赖于直觉的非正规的过程,其基本思想是人们利用直觉和经验猜测可能犯得错误或错误易发情况的清单,然后编写测试用例来暴露这些错误。
例如,程序输入中出现0这个值,就是一种错误易发情况。因此可以编写测试用例检查特定的输入值中有0,或特定的输出值被强制为0的情况。同样,在出现输入或输出数目不定的地方,如,对某个列表进行搜索,结果为“空列表”或“只包含一个”条目的列表,也是错误容易发生的情况。
第三篇:测试用例设计步骤
测试用例设计步骤
设计测试案例的时候,需要有清晰的测试思路,对要测试什么,按照什么顺序测试,覆盖哪些需求做到心中有数。测试用例编写者不仅要掌握软件测试的技术和流程,而且要对被测软件的设计、功能规格说明、用户试用场景以及程序/模块的结构都有比较透彻的理解。测试用例设计一般包括以下几个步骤:
1、测试需求分析
从软件需求文档中,找出待测试软件/模块的需求,通过自己的分析、理解,整理成为测试需求,清楚被测试对象具有哪些功能。测试需求的特点是:包含软件需求,具有可测试性。测试需求应该在软件需求基础上进行归纳、分类或细分,方便测试用例设计。测试用例中的测试集与测试需求的关系是多对一的关系,即一个或多个测试用例集对应一个测试需求。
2、业务流程分析
软件测试,不单纯是基于功能的黑盒测试,还需要对软件的内部处理逻辑进行测试。为了不遗漏测试点,需要清楚的了解软件产品的业务流程。建议在做复杂的测试用例设计前,先画出软件的业务流程。如果设计文档中已经有业务流程设计,可以从测试角度对现有流程进行补充。如果无法从设计中得到业务流程,测试工程师应通过阅读设计文档,与开发人员交流,最终画出业务流程图。业务流程图可以帮助理解软件的处理逻辑和数据流向,从而指导测试用例的设计。
从业务流程上,应得到以下信息:
A、主流程是什么
B、条件备选流程是什么
C、数据流向是什么
D、关键的判断条件是什么
3、测试用例设计
完成了测试需求分析和软件流程分析后,开始着手设计测试用例。测试用例设计的类型包括功能测试,边界测试,异常测试,性能测试,压力测试等。在用例设计中,除了功能测试用例外,应尽量考虑边界、异常、性能的情况,以便发现更多的隐藏问题。
黑盒测试的测试用例设计方法有:等价类划分、边界值划分、因果图分析和错误猜测,白盒测试的测试用例设计方法有:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、多重条件覆盖。在这里主要讨论黑盒测试。在设计测试用例的时候可以使用软件测试用例设计方法,结合前面的需求分析和软件流程分析进行设计:
功能测试:测试某个功能是否满足需求的定义,功能是否正确,完备。
适合的技术:由业务需求和设计说明导出的功能测试、等价类划分
边界测试:对某个功能的边界情况进行测试。
适合的技术:边界值划分
异常测试:对某些功能来说,其边界情况无法简单的了解或某些操作不完全是正确的但又是
可能发生的,类似这样的情况需要书写相关的异常测试。
适合的技术:由业务需求和设计说明导出的特殊业务流程、错误猜测法、边界值
分析、内部边界值测试。
性能测试:检查系统是否满足在需求中所规定达到的性能,性能主要包括了解程序的内外部
性能因素。内部性能因素包括测试环境的配置,系统资源使用状况;外部因素包
括响应时间,吞吐量等。
适合的技术:业务需求和设计说明导出的测试
压力测试:压力测试又称强度测试,主要是检查系统运行环境在极限情况下软件运行的能力,比如说给一个相当大的负荷或网络流量给应用软件兼容测试:测试软件产品在不
同的平台,不同的工具,相同工具的不同版本下功能的兼容性。
4、测试用例评审
测试用例设计完成后,为了确认测试过程和方法是否正确,是否有遗漏的测试点,需要进行测试用例的评审。
测试用例评审一般是由测试leader安排,参加的人员包括:测试用例设计者、测试leader、项目经理、开发工程师、其它相关开发测试工程师。测试用例评审完毕,测试工程师根据评审结果,对测试用例进行修改,并记录修改日志。
5、测试用例更新完善
测试用例编写完成之后需要不断完善,软件产品新增功能或更新需求后,测试用例必须配套修改更新;在测试过程中发现设计测试用例时考虑不周,需要对测试用例进行修改完善;在软件交付使用后客户反馈的软件缺陷,而缺陷又是因测试用例存在漏洞造成,也需要对测试用例进行完善。一般小的修改完善可在原测试用例文档上修改,但文档要有更改记录。软件的版本升级更新,测试用例一般也应随之编制升级更新版本。测试用例是“活”的,在软件的生命周期中不断更新与完善。
第四篇:小议软件测试用例的设计论文
白盒测试技术中测试用例的设计方法研究
白盒测试方法的主要作用有:
(1)至少测试一次程序子模块的所有独立执行路径;
(2)针对所有可能的逻辑判定,至少一次取“真”或“假”两种情况;(3)在运行界限内和循环边界处执行循环体;
(4)测试程序内部的数据结构的有效性。在实际的数据测试中,如果程序具有多种循环嵌套的情况,不同的执行路径数目可能是天文数字,例如一个有5条路径的嵌套20次循环的小程序,包含不同执行路径条数为520次方,如果每一条路径测试1ms,全年无休时要测试完所有路径需要约3170年的时间。因此,我们必须采用一些替代办法,典型的方法是有选择的执行程序中某些最有代表性的通路。白盒测试的主要技术有:
1根据程序内部的逻辑结构设计测试用例的技术—逻辑覆盖
(1)语句覆盖,选择足够多的测试数据以使被测程序中每条语句都至少执行一次。语句覆盖不考虑对程序的逻辑覆盖,它主要关心表达式的结果,却对每个条件取不同值的情况不做测试。因此,语句覆盖是比较弱的逻辑覆盖标准。在图论中和语句覆盖对应的是点覆盖。
(2)判定覆盖,又叫分支覆盖,它首先满足语句覆盖的条件,同时对每个判定的每种可能的结果都至少执行一次,即对每个分支都至少执行一次每个判定,判定覆盖对程序的逻辑覆盖程度也不高。在图论中和判定覆盖相对应的是边覆盖。
(3)条件覆盖,指的是不仅每个语句至少执行一次,而且使判定表达式中的每个条件都取到各种可能的结果,条件覆盖中可能不包含判定覆盖。
(4)判定/条件覆盖,指选取足够多的测试数据,使得判定表达式中的每个条件都取到各种可能的值,每个判定表达式也取到各种可能的结果。
(5)条件组合覆盖,要求选择足够多的测试数据,使得每个判定表达式中条件的各种可能组合都至少出现一次。条件组合覆盖是逻辑覆盖标准中最强的。
(6)路径覆盖,指的是选取足够多的测试数据,使程序的每条可能路径都至少执行一次。测试用例设计举例1:如下图1所示程序段流程,实现语句覆盖需要设计的测试数据有:X=0,Y=3和X=-1,Y=2;实现条件覆盖至少采用的测试数据有:X=0,Y=3和X=3,Y=1;实现判定覆盖至少应用的测试数据有X=0,Y=3,X=1,Y=2和X=-1,Y=2。
2测试程序的控制结构,主要包括条件测试,循环测试和基本路径测试。
其中基本路径测试是由TomMcCabe提出的一种白盒测试技术,这种技术在设计测试用例时需要首先计算程序的环形复杂度,并用该复杂度为指南定义执行路径的基本集合。在实际测试中,仅靠基本路径测试还不能满足要求,还需要结合条件测试技术来检查程序模块中包含的逻辑条件,还有循环测试来专门测试循环结构的有效性。
黑盒测试技术中的测试用例设计方法研究
黑盒测试主要用来测试软件的功能特点,通过黑盒测试可以发现:(1)是否有遗漏了的功能或者不正确的功能;(2)能否有正确的接收输入和正确的输出结果,这主要针对接口而言;(3)是否有外部信息访问错误或数据结构错误,同时,软件运行时能否满足性能上的要求;(4)软件在初始化或者退出时有无错误等;使用黑盒测试同样不可能将所有可能的输入条件和输出条件用于测试,因为测试用例的组合是天文数字。例如一个程序有两个输入量和一个输出量,在32位计算机上运行,若X,Y取整数,按穷举测试时需要232×232=264组,如果一组数据需要1ms,全年无休,需要5亿年的时间。显然,我们必须设计合理的方案来减少测试用例的数量。目前黑盒测试的主要测试用例设计技术有:
1等价类划分
等价类划分是把程序的输入域划分成若干个数据类,据此导出测试用例,因为对于同一类中的数据而言其作用是相同的[3]。等价类划分可以分为有效等价类和无效等价类。有效等价类是指符合程序功能要求的数据类,该类中包含的都是有意义的数据;而无效等价类指不能满足程序正确运行或者预期结果的数据类的集合。我们在设计测试用例时,要同时考虑有效等价类和无效等价类的设计方案。等价类的划分有自己的原则。在具体使用等价类划分设计测试用例时有两个步骤:(1)设计一个新的测试方案以尽可能多地覆盖尚未被覆盖的有效等价类,重复这一步骤直到所有有效等价类都被覆盖为止;(2)设计一个新的测试方案,使它覆盖一个而且只覆盖一个尚未被覆盖的无效等价类,重复这一步骤直到所有无效等价类都被覆盖为止。
2边界值分析
使用边界值分析方法来设计测试用例时需要开发者具有一定的经验和创造性,通常根据划分的输入等价类和输出等价类的边界来确定边界值的结果,即选取刚刚等于、刚刚小于和刚刚大于边界值的测试数据,而不是选择等价类内部的数据作为测试用例。
3错误推测法
错误推测法主要依靠直觉和经验,需要有一定开发大型软件工程的经验,其基本思想是通过列举出程序中可能有的错误和容易发生错误的特殊情况,并根据这些情况来选择测试方案。
小结
测试用例的设计方法并不是独立使用的,而是经常会进行一些不同设计方案的组合,如黑盒测试中的等价类划分和边界分析方法可以结合使用,进步设计更加合理的测试用例,找出更多的软件运行错误。
第五篇:软件测试中报表测试用例设计方法总结
软件测试中报表测试用例设计方法总结
报表的测试主要分为以下几个方面:界面,安全性,准确性,展示速度(性能)
数据统计方面
1、报表统计数据的正确性;
2、报表统计数据的完整性;
3、报表统计数据的合法性;比如,统计金额字段需求要求有“$”等;
报表格式
1、表头字段表示的正确性;
2、表头字段表示的完整性;
3、表头字段表示的字体,字号,美观程度;
4、各统计字段的显示是否满足需求;比如:数据过长时要求折行还是缩小;
5、页眉和页角的表示;
报表的预览和印刷
1、预览中的显示完整性;
2、多页情况下,第2页的表头显示;
3、能否实现需求要求的特定印刷情况;(比如,印刷使用指定的模板)
4、预览后印刷;
5、不预览,直接印刷
6、需求规定各类打印机的测试;
数据准确性测试,带有报表测试的系统分为两类,一类是业务系统中,带有统计分析功能模块,该模块中包含分析报表,这个系统的主体是业务系统,报表是为办理业务的而提供帮助的。
比如说,应年检统计报表,某月应交罚款车辆统计报表,这样的报表数据准确与否,可通过增加、删减、修改相关业务或相关业务的参数,查看统计报表数据变化,检查数据准确性。
另一类是系统只有统计功能,就是我说的数据仓库展现这类,它与业务系统分离,并且经过多层处理,比如数据仓库的数据,经过抽取,清洗,展现前会经过数据挖掘,数据再处理,有些字段在原始数据表中根本就没有。这样的数据准确性测试比较复杂,当然检查出数据错误,修改定位也是很不容易的。
从整个项目节约成本看,逐层测试效果是最好的。完全修改率也是最高的。
首先建立测试数据模型,模拟所有应用表,建立简单易跟踪的数据用例,底层的数据表测试,方法很原始,嘿嘿,通过SQL语句和手工计算,对数据进行比对。对系统中的报表数据准确性测试方法较为灵活,①系统中报表重叠的进行比对
②对子报表汇总与父报表比对,就是对月报表汇总与年报表比对,日报表汇总与月报表比对,这只是一个方面,可以从维度关系考虑,地域,行政级别、时间,个人等方面下手,进行汇总比对
③这个方法如果延伸点呢,可以将报表间的业务逻辑关系作为比对依据。呵呵,这要看测试人员的需求了解深度个人能力了。插几句不想干的话,做测试工作总让我保持快乐状态,前两天我的一个同事说,公司里一直没有人喜欢做测试工作,这个工作太枯燥。嘿嘿,我当时就说我做了这么多年的测试工作从来没有感觉到枯燥。重复性工作不代表枯燥,编程其实不也是重复嘛,人每天谁不重复昨天的事啊,吃饭,吃这个动作重复一生,有谁觉得麻烦枯燥啦?
④使用SQL和手工计算进行比对。以上是差错方式,接下来讲一下查什么错?哪些地方容易出错
●原始表使用错误:因为表比较多,又加上没有统一的数据关系对应表,很容易表使用错误,当然这应该是单元测试检查出来的错误。
●数据处理逻辑错误:这一点容易因为测试人员和开发人员对需求理解有偏差造成争执,所以在需求评审时,对数据处理规则用表达式或伪代码表示清楚。还有就是程序员失误,逻辑编写有偏差,边界值、特殊情况处理不当。
●数据权限:不同用户对数据有着不同的查看权限。这关系到数据的安全性。
●数据误差:数据的保留位数,数据是否是处理计算是否是最后一次计算使用了位数保留和四舍五入。
●由于字典表,数据错误,而造成的数据错误,如,根据性别统计,购买量,表中的男女颠倒,或者没有考虑性别缺失项,用了ifelse,这样就是把表中缺失该项内容的算成了else条件里。或者逻辑中应该考虑用户状态,数据状态类似的字段,容易被忽略,测试应该考虑到。
●最后一项,当数据量相当大的时候,统计应该考虑,切割速度,也就是数据的完整性,由于数据切割的滞后,带来的数据不完整,而造成统计结果不完整。如统计昨天的销售情况,而昨天的数据并没有完全从业务系统数据到数据池,再者月底数据,由于最后一天的数据切割不完整而造成的正月统计数量不准确。
报表的界面和输入输出测试
界面分为输入界面和输出界面;统一的界面要求:美观、统一、易操作。
输入界面要求是:
①输入项字段长度不允许超过字段长度;
②输入不符合字段要求的,不允许查询。如money类型,在输入汉字,字母、特殊字符等不允许查询,并有友好的操作提示。
③用户权限范围外的输入,不允许查询。如用户输入不是其权限范围内的客户号,不允许查询,并有友好的操作提示。
对于选项,应不出现可选择的用户权限以外的选项。
对于汉字模糊查询,考虑不常见字,如“?”即汉字因译码问题,造成的汉字存储出现乱码问题。
输出界面要求:
①因为是报表所以应该有打印、打印预览、报表导出等功能。不能因为报表导出丢失数据,不能因为打印缺少了报表表格框
②报表排列方式可调,用户可按任意列升序或降序排列,或者,按某一关键列的一定规则排序
③报表标题明确,不能含糊误导用户
④报表内可关联查询的项,应能特殊显示,如鼠标有箭头变为手掌,子报表格式与父报表格式统一,数据统一。
报表测试根据项目的定义有大有小,有时只是作为软件的一个部分进行测试,有时整个项目都是测试各种报表.但不论如何,报表的作用始终都是将系统中已经存在的数据根据用户的设置计算加工/整理汇总/最终以清晰的格式展示给用户,以便用户进一步做数据分析或统计.软件中的报表实现一般分为定义报表的所需数据(一般可以通过选择或手工输入条件来缩小数据范围)和定义报表格式两个部分.报表格式除了如国家各行业标准中规定的报表使用固定格式外,大多是根据企业或用户的需要定制报表.所以,做报表测试时要注意以下方面:
1.数据的正确
用户使用报表就是期望通过一个简单方便的平台能快速的查找到他所需要的数据.所以在测试报表时首先就要检查报表中的数据是不是用户需要的数据,如果没有加工的数据,是否保持了原貌;加工过的数据查看加工的结构是否和手工加工的结果一致.简言之,需要测试以下内容.数据的来源:来源于哪张表,哪个字段,数据库中的数值与界面数据的对应.如数据库中性别的数据可能是0或1,但界面显示为男或女,这个对应关系是否正确.数据的范围:是否只显示了报表设置的对应范围;特别要注意边界数据,要清楚报表的需求,是否需要过滤掉被选择的数据.如时间选择为200627~200727,那么是否应该包含9-27这天.数据的对应关系:数据库中的字段是否与报表中的信息对应
数据的格式:小数位,千位符,四舍五入等是否与报表设置一致;单位或税率转换是否正确;组合显示的数据是否合理
数据的排序:排序方式是否与报表设置一致(如果没有设置,是否有一个清晰的默认排序方式,如按字母或数字排序)
流水号:如报表有使用流水号,流水号的生成和格式是否正确.取消操作是否会生成流水号.明细与合计的一致性:各部分明细或小节是否与最后总和一致
其他
测试这一部分内容需要对业务逻辑相当熟悉,对数据库的设计也要非常了解.必要时可以通过自己写查询语句查看数据.有些报表的条件有多有少,但测试方法都是一样.根据条件通过等价类划分和排列组合设置各种条件组合.千万不要盲目的测试,否则会导致该测的没测,多余的测试做了一堆..一般来说有类别划分的(一般界面表现为下拉框),每个类别都要测试到,如性别中的男,女都要测试.输入的可以用等价类来划分要测试的数据.2.格式的正确
数据验证正确后,就需要看看报表的输出格式是否符合要求.可以从以下几方面来检查.报表的整体风格:报表是否符合规定的或用户设置的格式
报表标题:报表的标题是否是正确的报表名称;如报表中有嵌入的数据(会跟随用户的选择而变化的).需要检查数据是否正确,如XX企业9月份财务报表,这个9月就是用户选择的;或者XX公司200627~200727的网站访问量,这个时间段也是用户选择的.公司的一些标志:如logo,名称,地址之类的是否正确
报表的页首与页尾:是否采用了一致的规则.分页:当输出的内容多时,分页是否正确.翻页功能是否正确
友好性:数据或图表是否清晰,一目了然,数据的展示符合用户的习惯;需要特别提醒的数据(如合计,异常数据)是否突出显示;复杂算法处,用户不明白或容易混淆处是否有注释;一些默认的格式是否让人感觉舒服,如对齐,边界,间隔等
3.权限的控制
对于有权限控制的系统,报表当然也应该和用户所具有的权限相一致。需要从两方面校验权限的控制。
报表的条件定义:在条件选择区域,有些下拉框中应该不能显示用户权限范围外的数据。如普通文员在使用报表时,报表名称下拉框中是不可以显示管理者才能查看的报表的。有些以输入的文本框有级别的划分时,都应该要测试输入超越权限的数据的相应。
注意这里一定要测试每个条目。
报表内容:报表中的内容不能显示用户本没有权限查看的数据。
4.报表的输出
报表在电脑上生成后,并不是报表的结束。报表一般都需要打印出来他用,如开会或者提交审批之类。所以报表的打印功能也是非常重要的。测试主要分成三部分:
●打印设置
●打印预览
●实际打印效果
除了打印之外,用户有可能需要导出报表做进一步的分析或用于和其他报表的比较。所以也应该提供导出报表的功能。一般可以导出为CSV,Excel,pdf,html,xml格式。