软件测试用例设计

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

软件测试用例设计测试需求和范围通过测试用例体现出来,并以更为有效的方式来执行测试,以便于更快地发现程序的缺陷。测试用例是测试脚本开发、测试执行的基础。只有设计好测试用例,才能保证测试的覆盖率。一、测试用例设计基础测试用例是为某个特定测试目标而设计的,它是测试操作过程序列、条件、期望结果及相关数据的一个特定的集合,那么如何构造这个集合呢?软件测试用例的设计遵守下列4个步骤:1.制定测试用例设计的策略和思想,在测试计划中描述出来。2.设计测试用例的框架,也就是测试用例的结构。3.细化结构,逐步设计具体的测试用例。4.通过测试用例的评审,不断优化测试用例。为何需要测试用例如何实现测试目标、完成任务,是借助测试用例来实现的;在进行软件测试时,总该需要一个类似“操作指导书”的文件来告诉我们如何操作,什么样的结果算是测试通过了,这就靠测试用例。我们可以了解测试用例在多个方面的作用,更容易理解测试用例的重要性。1.测试用例是测试人员在测试过程中的重要参考依据。测试过程中,总要对测试结果有一个评判的依据,没有依据,就不可能知道测试结果是通过了还是没有,也不知道输入的数据正确与否,这一切需要定义,它在测试胜例中得到了定义。2.测试用例可以帮助实施有效的测试,所有被执行的测试都是有意义的,不要执行毫无意义的测试操作,有助于节约测试时间,提高测试效率。3.良好的测试用例不断地被重复使用,使得测试过程事半功倍。在一个版本中,可能要进行2-3次的回归测试,这些回归测试,就要求能重复使用测试用例。4.测试用例是一个知识积累的过程。在测试过程中,对产品特性的理解会越来越深,发现的缺陷也会越来越多。即使最初的测试用例考虑不周全,随着测试的进行和软件版本的更新,也将日趋完善。5.测试用例是一个知识传递的过程,能保持一致的、稳定的测试质量。有了测试用例,无论是谁来测试,参照测试用例实施,都能保障测试的质量,可以把人为因素的影响减至最少。6.测试用例的通过率是检验代码质量保证效果最主要的指标之一,代码的质量不高或是质量很好,其依据往往就是测试用例的通过率。因此,测试用例将会使得测试的成本降低,并可重复使用,也是检测测试效果的重要因素。设计良好的测试用例是测试的最重要工作。测试用例设计考虑因素测试用例的设计,就是围绕软件质量需求,分析质量需求的每一个剖面,使测试用例能覆盖各个剖面及测试点。另一方面,它会试图找出系统的薄弱环节、边界点等,因为这些特殊区域有必要得到更多的测试,尽力降低测试的风险,达到所设定的测试目标。(一)主要影响因素1.需求目标,是功能性的需求目标也是非功能性的需求目标。功能性的测试比较清楚,正确与否的判断能一目了然。而非功能性测试,其相对性比较强,需要从不同的侧面进行比照。2.用户实际使用的场景。从用户的角度来模拟程序的输入,包括用户的操作习惯,使产品更能贴近用户的需求。3.软件功能需求规格说明书、产品设计文档等,是测试用例设计的主要参考文档。这些文档对产品特性的描述方法、格式和详细程序,也会影响到测试用例的设计。4.测试的方法对测试用例的设计影响非常大。白盒测试方法和黑盒测试方法是从不同的思想来解决问题的,前者从内部逻辑思路来考虑,后者从外部功能思路来考虑。5.测试对象。客户端软件和服务器端系统、分布式系统和集中式系统、异步系统和同步系统等,其测试用例的侧重点或侧试剖面是不同的,它们从不同的侧面去发现软件系统的弱点或薄弱环节。(二)设计的基本思想1.设计测试用例时,要寻找系统设计、功能设计的弱点。测试用例需要确切地反映功能设计中可能存在的问题,而不要简单拷贝产品规格设计说明书的内容。2.设计正面的测试用例,应参照设计规格说明书,根据关联的功能、操作路径等设计。而对孤立的功能则直接按功能设计测试用例。基本事件的测试用例应包括所有需要实现的需求功能,覆盖率达100%。3设计负面的、异常的测试用例,如考虑错误的或者异常的输入,往往可以发现更多的软件缺陷,这显得更为重要。例如,在进行电子邮件地址校验的时候,考虑错误的、不合法的(如没有@符号的输入)或者带有异常字符(单引号、斜杠、双引号等)的电子邮件地址输入,尤其是在做Web页面测试的时候,通常会出现因一些字符转义问题而造成异常情况。测试用例的元素测试用例是对测试场景和操作的描述,所以必须给出测试目标、测试对象、测试环境要求、输入数据和操作步骤,概括如下。1.测试目标:为什么而测?功能、性能、可用性、容错性、兼容性、安全性等2.测试对象:测什么?被测试的项目,如对象、函数、类、菜单、按钮、表格、接口、整个系统等。3.测试环境:在哪里测?测试用例运行时所处的环境,包括系统的配置和设定等要求,也包括操作系统、浏览器、通讯协议等单机或网络环境。4.测试前提:什么时候开始测?测试用例运行时所处的前提或条件限制。5.输入数据:哪些数据?在操作时,系统所接受的各种可变化的数据,如数字、字符、文件等。6.操作步骤:如何测?执行软件和程序的先后次序步骤等。如打开对话框、点击按钮等。这还不够,因为缺少一个评判的依据。如果没有评判标准,在执行完测试用例后,就不能根据测试结果来确定测试是否通地。所以,每个测试用例必须说明其输出标准,即所期望的输出结果。除了用例的基本描述信息之外,还需要上面讨论的用例框架所需的信息,即所述模块、优先级、层次。为了今后管理方便,还要加上其他信息,如测试执行的预估时间、关联的测试用例,是否为自动化测试类别,关联的缺陷等。二、功能测试用例的设计功能测试,依据产品设计规格说明书,主要采用黑盒测试主法,不需要看源代码,而是通过直接运行软件来验证每个功能是否都能正常使用,是否满足用户的需求。功能测试的过程,就是通过数据输入来驱动功能的运行并最终获得数据输出的过程,所以功能测试也被称数据驱动测试方法。在进行功能测试用例设计时,一般遵守下列操作的流程。1.模块划分。2.根据功能结构及其关系,进行模块层次划分,抓住测试点。3.首先设计最上层的测试用例,然后再向下逐层推进。4.最后是测试用例的评审。功能测试用例的内容功能测试用例,一般按照功能模块来组织,系统具有的所有功能都要得到测试,所以针对不同的应用系统,其功能测试的内容差异很大。如果把功能测试的内容抽象出来,功能测试的内容可以归为界面(UI)、数据、操作、逻辑、接口等几个方面的测试,通过这些测试,使其最终符合功能规格说明书的要求。1.界面测试,指测试系统界面整体布局的合理性,以及是否清晰、美观,包括颜色搭配、字体、文字是否对齐、图片大小与位置、弹出窗口的位置是否合适。其次,还会测试用户是否可以调整布局,是否可以自定义界面,包括文字、图片、颜色等。2.数据测试,指接受正确的数据输入,并对异常数据的输入有提示和容错处理。数据输出结果正确,格式清晰和整齐。数据的处理,要提供合适的保存和备份的功能。能提供多种快速、方便的查询功能。数据从输入到最终输出,符合数据流设计,正确地完成一个完整的数据处理过程。软件升级后,能继续支持旧版本的数据。3.操作测试,内容包括所有菜单、按钮的设计须符合操作习惯,能对操作有正确的响应,而且操作灵活、符合用户的习惯,例如程序安装、启动之后,有相应的提示框来告知用户此操作的状态——是成功还是失败。所有重要的操作,都应该允许用户后退到上一步骤,对不正确的、异常的操作要通过提示框及时提示或警示用户。危险的操作(如删除文件、修改重要数据等)需要进一步确认后,才被执行。经常性的操作应该有多个入口。按钮或菜单在不满足操作条件时,应变灰或暗淡显示,否则,就应该显示。4.逻辑测试,这个测试的目的是使逻辑合理、清楚、流畅、不复杂。如果某个操作需要多个步骤实现,应该有清楚的提示,或者有一个向导来帮助用户完成。某项功能,其不同操作的路径也不一样,但逻辑上要保持一致。系统的各种状态应按照业务流程变化,并保持稳定。5.接口测试,这个测试是让接口能配合多种硬件周边设备,以及所需的第3方软件接口或公共接口的需要。不管是内部应用接口,还是外部应用接口,应保持其规范性、一致性和完备性。接口还须是可定义或可配置的,应具有良好的兼容性和扩充性。功能测试用例的设计方法在设计测试用例的过程中,测试人员应与产品人员、开发人员实时沟通,并使用产品的初级版本,不断加深对产品功能的理解。沟通、试用产品可以说是测试用例设计的基本方法,因为只有对产品功能真正理解之后,才能对症下药,设计出有效的测试用例。下一步,就是借助UML视图、逻辑结构图、数据流图等进行软件的结构层次、数据流程或操作流程的分析。除了这些图,还可以借助决策表、功能点层次列表等更好地设计测试用例。UML视图、逻辑结构图、数据流图等方法,是站在比较宏观的高度,从不同的角度全面地理解产品特性,以帮助测试用例的设计。如果从微观或细节的角度看,软件测试用例的设计方法主要有:·等价类划分法·边界值分析方法·因果图·功能图·错误推测方法·正交实验设计方法等价类划分法等价类划分是功能测试用例设计中一种重要的、常用的设计方法,它将不能穷举的测试过程进行合理分类,从而保证设计出来的测试用例具有完整性和代表性。等价类划分设计方法是把所有可能的输入数据,即程序的输入数据集合划分成若干个子集(等价类),然后从每一个等价类中选取少数具有代表性的数据作为测试用例。在采用等价类划分法设计测试用例的过程中,一般会经过两个步骤:分类和抽象。·首先是分类,即将输入域按照相同特性或者类似功能进行分类。·然后进行抽象,即在各个子类中抽象出相同特性并用实例来表征这个特性。在等价类中,各个输入数据对于揭露程序中的错误是等效的,具有等价的特性,所以表征该类的数据输入将能代表整个数据子集——等价类的输入。因此可以合理假定:测试某等价类的代表值就等效于对这一类其他值的测试。举个例子,需要一个对所有实数进行开方运算的程序设计测试用例。这时,需要将所有的实数(输入域)进行划分,可以分成:·正实数,+3.1415926代表正实数。·负实数,-1.44444代表负实数·0则+3.1415926、-1.44444和0就是3个等价类的特征值。在进行等价划分的过程中,不但要考虑有效等价类划分,同时还要考虑无效的等价类划分,使用无效等价类,可以测试程序的容错性——对异常情况的处理,在程序设计中,不但要保证所有有效的数据输入能产生正确的输出,同时需要保障在输入错误或者空输入的时候可以进行容错处理,并得到保护,这样,软件运行才能稳定和可靠。在进行等价类划分时,一般都可以归为下列几种情况。1.输入数据是布尔值,这是非常特殊的情况,有效等价类只有一个值——真(true),无效等价类也只有一个值——假(false)。2.在输入条件规定了取值范围或者个数的前提下,可以确定一个有效等价类和两个无效价类。例如程序输入数据要求是两位正整数x,则有效等价类为10≤x≤99,两个无效等价类为x10和x99。3.在输入条件规定了输入值的集合或者规定了“必须如何”的条件下,可以确定一个有效等价类和一个无效等价类。例如,邮政编码则必须是由6位数字构成的有效值,其有效集合是清楚的,对应存在一个无效的集合。4.在规定了一组列表形式(n个值)的输入数据,并且程序要对每一个输入值分别进行处理的情况下,可确定n个有效等价类和一个无效等价类。例如,把我国的直辖市作为输入值,则等价类是一个固定的杖举类型{北京、上海、天津、重庆},而且要针对各个城市分别取出相对应的数据,此时无效等价类为非直辖市的省、自治区等。5.更复杂的情况是,输入数据只是要求符合某几个规则,这时,可能存在多个有效等价类和若干个无效等价类。例如,邮件地址和用户名的输入。·要求输入26个英语字母和10个阿拉伯数字构成的、长度不超过20位的用户名。·有效的E-mail地址,必须含有“@”,@后面格式为x.x,E-mail地址不能带有一些特殊符号,如“/\#‘&”等。在使用等价类划分方法设计测试用例时,应先划分有效的等价类和无效的等价类,然后:1.为每个等价类规定一个唯一的编号,一个等价类至少存在一个测试用例。2.设计一个新的测试用例,例其尽

1 / 8
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功