黑盒测试流程及方法_第1页
黑盒测试流程及方法_第2页
黑盒测试流程及方法_第3页
黑盒测试流程及方法_第4页
黑盒测试流程及方法_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

测试流程依次如下:

1.需求:阅读需求,理解需求,与客户、开发、架构多方交流,深入了解需求。--testingteam

2.测试计划:根据需求估算测试所需资源(人力、设备等)、所需时间、功能点划分、如何合理分配安排资源等。---testingleaderortestingmanager

3.用例设计:根据测试计划、任务分配、功能点划分,设计合理的测试用例。---testingleader,seniortester

4.执行测试:根据测试用例的详细步骤,执行测试用例。--everytester(主要是初级测试人员)

5.执行结果记录和bug记录:对每个case记录测试的结果,有bug的在测试管理工具中编写bug记录。--everytester(主要是初级测试人员)

6.defecttracking:追踪leader分配给你追踪的bug.直到bugfixed。--everytester

7.测试报告:通过不断测试、追踪,直到被测软件达到测试需求要求,并没有重大bug.

8.用户体验、软件发布等……详细测试步骤:

1.书写测试计划

2.审核测试计划,未通过返回第一步

3.书写测试用例;

4.审核测试用例,未通过返回第三步

5.测试人员按照测试用例逐项进行测试活动,并且将测试结果填写在测试报告上;(测试报告必须覆盖所有测试用例)

6.测试过程中发现bug,将bug填写在bugzilla上发给集成部经理;(bug状态NEW)

7.集成部经理接到bugzilla发过来的bug

7.1对于明显的并且可以立刻解决的bug,将bug发给开发人员;(bug状态ASSIGNED);

7.2对于不是bug的提交,集成部经理通知测试设计人员和测试人员,对相应文档进行修改;(bug状态RESOLVED,决定设置为INVALID);

7.3对于目前无法修改的,将这个bug放到下一轮次进行修改;(bug状态RESOLVED,决定设置为REMIND)

8.开发人员接到发过来的bug立刻修改;(bug状态RESOLVED,决定设置为FIXED)

9.测试人员接到bugzilla发过来的错误更改信息,应该逐项复测,填写新的测试报告(测试报告必须覆盖上一次中所有REOPENED的测试用例);

10.如果复测有问题返回第六步(bug状态REOPENED)

11.否则关闭这项BUG(bug状态CLOSED)

12.本轮测试中测试用例中有95%一次性通过测试,结束测试任务;

13.本轮测试中发现的错误有98%经过修改并且通过再次测试(即bug状态CLOSED),返回第五步进行新的一轮测试;

14.测试任务结束后书写测试总结报告;

15.正规测试结束进入非正规测试,首先是ALPHA测试,请公司里其他非技术人员以用户角色使用系统。发现bug通知测试人员,测试人员以正规流程处理bug事件;

16.然后是BETA测试,请用户代表进行测试。发现bug通知测试人员,测试人员以正规流程处理bug事件。(又叫用户体验测试UAT)Bugzilla是Mozilla公司提供的一款开源的免费Bug(错误或是缺陷)追踪系统,用来帮助你管理软件开发,建立完善的BUG跟踪体系。Bugzilla是一开源BugTrackingSystem,是专门为Unix定制开发的。但是在windows平台下依然可以成功安装使用.Bugzilla是一个搜集缺陷的数据库。它让用户报告软件的缺陷从而把它们转给合适的开发者。开发者能使用bugzilla保持一个要做事情的优先表,还有时间表和跟踪相关性。不是所有的"bugs"都是软件缺陷。一些数据库中的内容是作为增强的请求(RFE)。一个RFE是一个严重级别字段被设为"enhancement"的"Bug".人们常说"bug",实际上意思是Bugzilla中的记录,所以RFEs经常被称作bug。黑盒测试黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。黑盒测试法注重于测试软件的功能需求,主要试图发现下列几类错误。功能不正确或遗漏;界面错误;输入和输出错误;数据库访问错误;性能错误;初始化和终止错误等。从理论上讲,黑盒测试只有采用穷举输入测试,把所有可能的输入都作为测试情况考虑,才能查出程序中所有的错误。实际上测试情况有无穷多个,人们不仅要测试所有合法的输入,而且还要对那些不合法但可能的输入进行测试。这样看来,完全测试是不可能的,所以我们要进行有针对性的测试,通过制定测试案例指导测试的实施,保证软件测试有组织、按步骤,以及有计划地进行。黑盒测试行为必须能够加以量化,才能真正保证软件质量,而测试用例就是将测试行为具体量化的方法之一。具体的黑盒测试用例设计方法包括等价类划分法、边界值分析法、错误推测法、因果图法、判定表驱动法、正交试验设计法、功能图法、场景法等。等价类划分的办法是把程序的输入域划分成若干部分(子集),然后从每个部分中选取少数代表性数据作为测试用例。每一类的代表性数据在测试中的作用等价于这一类中的其他值。该方法是一种重要的,常用的黑盒测试用例设计方法。划分等价类1)划分等价类:等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的,并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试.因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据.取得较好的测试结果.等价类划分可有两种不同的情况:有效等价类和无效等价类。有效等价类:是指对于程序的规格说明来说是合理的,有意义的输入数据构成的集合.利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。无效等价类:与有效等价类的定义恰巧相反。设计测试用例时,要同时考虑这两种等价类.因为,软件不仅要能接收合理的数据,也要能经受意外的考验.这样的测试才能确保软件具有更高的可靠性。划分等价类准则2)划分等价类的方法:下面给出六条确定等价类的原则。①在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类。②在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可确立一个有效等价类和一个无效等价类.③在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类。④在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类。⑤在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。⑥在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步的划分为更小的等价类。3)设计测试用例:在确立了等价类后,可建立等价类表,列出所有划分出的等价类:输入条件输入条件有效等价类无效等价类然后从划分出的等价类中按以下三个原则设计测试用例:①为每一个等价类规定一个唯一的编号。②设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖地有效等价类,重复这一步.直到所有的有效等价类都被覆盖为止。③设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步.直到所有的无效等价类都被覆盖为止。边界值分析法边界值分析是通过选择等价类边界的测试用例。边界值分析法不仅重视输入条件边界,而且也必须考虑输出域边界。它是对等价类划分方法的补充。(1)边界值分析方法的考虑:长期的测试工作经验告诉我们,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部.因此针对各种边界情况设计测试用例,可以查出更多的错误。使用边界值分析方法设计测试用例,首先应确定边界情况.通常输入和输出等价类的边界,就是应着重测试的边界情况.应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据。(2)基于边界值分析方法选择测试用例的原则:1)如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据。2)如果输入条件规定了值的个数,则用最大个数,最小个数,比最小个数少一,比最大个数多一的数作为测试数据。3)根据规格说明的每个输出条件,使用前面的原则1)。4)根据规格说明的每个输出条件,应用前面的原则2)。5)如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例。6)如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试用例。7)分析规格说明,找出其它可能的边界条件。错误推测法错误推测法是基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性的设计测试用例的方法.错误推测方法的基本思想:列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例。例如,在单元测试时曾列出的许多在模块中常见的错误.以前产品测试中曾经发现的错误等,这些就是经验的总结。还有,输入数据和输出数据为0的情况.输入表格为空格或输入表格只有一行.这些都是容易发生错误的情况。可选择这些情况下的例子作为测试用例。因果图法前面介绍的等价类划分方法和边界值分析方法,都是着重考虑输入条件,但未考虑输入条件之间的联系,相互组合等。考虑输入条件之间的相互组合,可能会产生一些新的情况.但要检查输入条件的组合不是一件容易的事情,即使把所有输入条件划分成等价类,他们之间的组合情况也相当多.因此必须考虑采用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来考虑设计测试用例.这就需要利用因果图(逻辑模型)。因果图方法最终生成的就是判定表。它适合于检查程序输入条件的各种组合情况。生成测试用例(1)分析软件规格说明描述中,哪些是原因(即输入条件或输入条件的等价类),哪些是结果(即输出条件),并给每个原因和结果赋予一个标识符。(2)分析软件规格说明描述中的语义。找出原因与结果之间,原因与原因之间对应的关系.根据这些关系,画出因果图。(3)由于语法或环境限制,有些原因与原因之间,原因与结果之间的组合情况不可能出现.为表明这些特殊情况,在因果图上用一些记号标明约束或限制条件。(4)把因果图转换为判定表。(5)把判定表的每一列拿出来作为依据,设计测试用例。从因果图生成的测试用例(局部,组合关系下的)包括了所有输入数据的取TRUE与取FALSE的情况,构成的测试用例数目达到最少,且测试用例数目随输入数据数目的增加而线性地增加。前面因果图方法中已经用到了判定表。判定表(DecisionTable)是分析和表达多逻辑条件下执行不同操作的情况下的工具.在程序设计发展的初期,判定表就已被当作编写程序的辅助工具了.由于它可以把复杂的逻辑关系和多种条件组合的情况表达得既具体又明确。判定表组成法条件桩(ConditionStub):列出了问题的所有条件.通常认为列出的条件的次序无关紧要。动作桩(ActionStub):列出了问题规定可能采取的操作.这些操作的排列顺序没有约束。条件项(ConditionEntry):列出针对它左列条件的取值.在所有可能情况下的真假值。动作项(ActionEntry):列出在条件项的各种取值情况下应该采取的动作。规则:任何一个条件组合的特定取值及其相应要执行的操作.在判定表中贯穿条件项和动作项的一列就是一条规则.显然,判定表中列出多少组条件取值,也就有多少条规则,既条件项和动作项有多少列。判定表的建立步骤①确定规则的个数。假如有n个条件.每个条件有两个取值(0,1),故有2n种规则。②列出所有的条件桩和动作桩。③填入条件项。④填入动作项.等到初始判定表。⑤简化.合并相似规则(相同动作)。B.Beizer指出了适合使用判定表设计测试用例的条件:①规格说明以判定表形式给出,或很容易转换成判定表。②条件的排列顺序不会也不影响执行哪些操作。③规则的排列顺序不会也不影响执行哪些操作。④每当某一规则的条件已经满足,并确定要执行的操作后,不必检验别的规则。⑤如果某一规则得到满足要执行多个操作,这些操作的执行顺序无关紧要。正交试验设计法就是使用已经造好了的正交表格来安排试验并进行数据分析的一种方法,目的是用最少的测试用例达到最高的测试覆盖率。场景法现在的软件几乎都是用事件触发来控制流程的,事件触发时的情景便形成了场景,而同一事件不同的触发顺序和处理结果就形成事件流。这种在软件设计方面的思想也可以引入到软件测试中,可以比较生动地描绘出事件触发时的情景,有利于测试设计者设计测试用例,同时使测试用例更容易理解和执行。基本流和备选流:如下图所示,图中经过用例的每条路径都用基本流和备选流来表示,直黑线表示基本流,是经过用例的最简单的路径。备选流用不同的色彩表示,一个备选流可能从基本流开始,在某个特定条件下执行,然后重新加入基本流中(如备选流1和3);也可能起源于另一个备选流(如备选流2),或者终止用例而不再重新加入到某个流(如备选流2和4)。[2]

\o"查看图片"

基本流和备选流流程测试计划首先,根据用户需求报告中关于功能要求和性能指标的规格说明书,定义相应的测试需求报告,即制订黑盒测试的最高标准,以后所有的测试工作都将围绕着测试需求来进行,符合测试需求的应用程序即是合格的,反之即是不合格的;同时,还要适当选择测试内容,合理安排测试人员、测试时间及测试资源等。测试设计将测试计划阶段制订的测试需求分解、细化为若干个可执行的测试过程,并为每个测试过程选择适当的测试用例(测试用例选择的好坏将直接影响到测试结果的有效性)。测试开发建立可重复使用的自动测试过程。测试执行执行测试开发阶段建立的自动测试过程,并对所发现的缺陷进行跟踪管理。测试执行一般由单元测试、组合测试、集成测试、系统联调及回归测试等步骤组成,测试人员应本着科学负责的态度,一步一个脚印地进行测试。测试评估结合量化的测试覆盖域及缺陷跟踪报告,对于应用软件的质量和开发团队的工作进度及工作效率进行综合评价。缺点1.结果取决于测试用例的设计,测试用例的设计部分优势来源于经验,OUSPG的东西很值得借鉴2.没有状态转换的概念,目前一些成功的例子基本上都是针对PDU来做的,还做不到针对被测试程序的状态转换来实现3.就没有状态概念的测试来说,寻找和确定造成程序crash的测试例是个麻烦事情,必须把周围可能的测试例单独确认一遍。而就有状态的测试来说,就更麻烦了,尤其不是一个单独的testcase造成的问题。这些在堆的问题中表现的更为突出。工具选择\o"编辑本段"编辑如何高效地完成功能测试?选择一款合适的功能测试工具并培训一支高素质的工具使用队伍无疑是至关重要的。尽管现阶段存在少数不采用任何功能测试工具,从事功能测试外包项目的软件服务企业。短期来看,这类企业盈利状况尚可,但长久来看,它们极有可能被自动化程度较高的软件服务企业取代。目前,用于功能测试的工具软件有很多,针对不同架构软件的工具也不断推陈出新。这里重点介绍的是其中一个较为典型自动化测试工具,即Mercury公司的WinRunner。WinRunner是一种用于检验应用程序能否如期运行的企业级软件功能测试工具。通过自动捕获、检测和模拟用户交互操作,WinRunner能识别出绝大多数软件功能缺陷,从而确保那些跨越了多个功能点和数据库的应用程序在发布时尽量不出现功能性故障。WinRunner的特点在于:与传统的手工测试相比,它能快速、批量地完成功能点测试;能针对相同测试脚本,执行相同的动作,从而消除人工测试所带来的理解上的误差;此外,它还能重复执行相同动作,测试工作中最枯燥的部分可交由机器完成;它支持程序风格的测试脚本,一个高素质的测试工程师能借助它完成流程极为复杂的测试,通过使用通配符、宏、条件语句、循环语句等,还能较好地完成测试脚本的重用;它针对于大多数编程语言和Windows技术,提供了较好的集成、支持环境,这对基于Windows平台的应用程序实施功能测试而言带来了极大的便利。工作流程\o"编辑本段"编辑识别GUI在WinRunner中,我们可以使用GUISpy来识别各种GUI对象,识别后,WinRunner会将其存储到GUIMapFile中。它提供两种GUIMapFile模式:GlobalGUIMapFile和GUIMapFileperTest。其最大区别是后者对每个测试脚本产生一个GUI文件,它能自动建立、存储、加载,推荐初学者选用这种模式。但是,这种模式不易于描述对象的改变,其效率比较低,因此对于一个有经验的测试人员来说前者不失为一种更好的选择,它只产生一个共享的GUI文件,这使得测试脚本更容易维护,且效率更高。建立测试脚本在建立测试脚本时,一般先进行录制,然后在录制形成的脚本中手工加入需要的TSL(与C语言类似的测试脚本语言)。录制脚本有两种模式:ContextSensitive和Analog,选择依据主要在于是否对鼠标轨迹进行模拟,在需要回放时一般选用Analog。在录制过程中这两种模式可以通过F2键相互切换。只要看看现代软件的规模和功能点数就可以明白,功能测试早已跨越了单靠手工敲敲键盘、点点鼠标就可以完成的阶段。而性能测试则是控制系统性能的有效手段,在软件的能力验证、能力规划、性能调优、缺陷修复等方面都发挥着重要作用。对测试脚本除错在WinRunner中有专门一个DebugToolbar用于测试脚本除错。可以使用step、pause、breakpoint等来控制和跟踪测试脚本和查看各种变量值。测试脚本当应用程序有新版本发布时,我们会对应用程序的各种功能包括新增功能进行测试,这时当然不可能再来重新录制和编写所有的测试脚本。我们可以使用已有的脚本,批量运行这些测试脚本测试旧的功能点是否正常工作。可以使用一个call命令来加载各测试脚本。还可在call命令中加各种TSL脚本来增加批量能力。分析测试结果分析测试结果在整个测试过程中最重要,通过分析可以发现应用程序的各种功能性缺陷。当运行完某个测试脚本后,会产生一个测试报告,从这个测试报告中我们能发现应用程序的功能性缺陷,能看到实际结果和期望结果之间的差异,以及在测试过程中产生的各类对话框等。回报缺陷在分析完测试报告后,按照测试流程要回报应用程序的各种缺陷,然后将这些缺陷发给指定人,以便进行修改和维护。常用方法功能测试就是对产品的各功能进行验证,根据功能测试用例,逐项测试,检查产品是否达到用户要求的功能。常用的测试方法如下1.页面链接检查:每一个链接是否都有对应的页面,并且页面之间切换正确。2.相关性检查:删除/增加一项会不会对其他项产生影响,如果产生影响,这些影响是否都正确。3.检查按钮的功能是否正确:如update,cancel,delete,save等功能是否正确。4.字符串长度检查:输入超出需求所说明的字符串长度的内容,看系统是否检查字符串长度,会不会出错.5.字符类型检查:在应该输入指定类型的内容的地方输入其他类型的内容(如在应该输入整型的地方输入其他字符类型),看系统是否检查字符类型,会否报错.6.标点符号检查:输入内容包括各种标点符号,特别是空格,各种引号,回车键.看系统处理是否正确.7.中文字符处理:在可以输入中文的系统输入中文,看会否出现乱码或出错.8.检查带出信息的完整性:在查看信息和update信息时,查看所填写的信息是不是全部带出.,带出信息和添加的是否一致9.信息重复:在一些需要命名,且名字应该唯一的信息输入重复的名字或ID,看系统有没有处理,会否报错,重名包括是否区分大小写,以及在输入内容的前后输入空格,系统是否作出正确处理.10.检查删除功能:在一些可以一次删除多个信息的地方,不选择任何信息,按”delete”,看系统如何处理,会否出错;然后选择一个和多个信息,进行删除,看是否正确处理.11.检查添加和修改是否一致:检查添加和修改信息的要求是否一致,例如添加要求必填的项,修改也应该必填;添加规定为整型的项,修改也必须为整型.12.检查修改重名:修改时把不能重名的项改为已存在的内容,看会否处理,报错.同时,也要注意,会不会报和自己重名的错.13.重复提交表单:一条已经成功提交的纪录,back后再提交,看看系统是否做了处理。14.检查多次使用back键的情况:在有back的地方,back,回到原来页面,再back,重复多次,看会否出错.15.search检查:在有search功能的地方输入系统存在和不存在的内容,看search结果是否正确.如果可以输入多个search条件,可以同时添加合理和不合理的条件,看系统处理是否正确.16.输入信息位置:注意在光标停留的地方输入信息时,光标和所输入的信息会否跳到别的地方.17.上传下载文件检查:上传下载文件的功能是否实现,上传文件是否能打开。对上传文件的格式有何规定,系统是否有解释信息,并检查系统是否能够做到。18.必填项检查:应该填写的项没有填写时系统是否都做了处理,对必填项是否有提示信息,如在必填项前加*19.快捷键检查:是否支持常用快捷键,如Ctrl+CCtrl+VBackspace等,对一些不允许输入信息的字段,如选人,选日期对快捷方式是否也做了限制。20.回车键检查:在输入结束后直接按回车键,看系统处理如何,会否报错。什么是黑盒测试和白盒测试?

任何工程产品(注意是任何工程产品)都可以使用以下两种方法之一进行测试。

黑盒测试:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。

白盒测试:已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否以经过检查。

软件的黑盒测试意味着测试要在软件的接口处进行。这种方法是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。因此黑盒测试又叫功能测试或数据驱动测试。黑盒测试主要是为了发现以下几类错误:

1、是否有不正确或遗漏的功能?

2、在接口上,输入是否能正确的接受?能否输出正确的结果?

3、是否有数据结构错误或外部信息(例如数据文件)访问错误?

4、性能上是否能够满足要求?

5、是否有初始化或终止性错误?

软件的白盒测试是对软件的过程性细节做细致的检查。这种方法是把测试对象看做一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序状态,确定实际状态是否与预期的状态一致。因此白盒测试又称为结构测试或逻辑驱动测试。白盒测试主要是想对程序模块进行如下检查:

1、对程序模块的所有独立的执行路径至少测试一遍。

2、对所有的逻辑判定,取“真”与取“假”的两种情况都能至少测一遍。

3、在循环的边界和运行的界限内执行循环体。

4、测试内部数据结构的有效性,等等。

以上事实说明,软件测试有一个致命的缺陷,即测试的不完全、不彻底性。由于任何程序只能进行少量(相对于穷举的巨大数量而言)的有限的测试,在未发现错误时,不能说明程序中没有错误。因果图法从用自然语言书写的程序规格说明的描述中找出因(输入条件)和果(输出或程序状态的改变),可以通过因果图转换为判定表。因果图法即因果分析图,又叫特性要因图、石川图或鱼翅图,它是由日本东京大学教授石川馨提出的一种通过带箭头的线,将质量问题与原因之间的关系表示出来,是分析影响产品质量的诸因素之间关系的一种工具。因果图法是一种适合于描述对于多种输入条件组合的测试方法,根据输入条件的组合、约束关系和输出条件的因果关系,分析输入条件的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件涉及的各种组合情况。因果图法一般和判定表结合使用,通过映射同时发生相互影响的多个输入来确定判定条件。因果图法最终生成的就是判定表,它适合于检查程序输入条件的各种组合情况。采用因果图法能帮助我们按照一定的步骤选择一组高效的测试用例,同时,还能指出程序规范中存在什么问题,鉴别和制作因果图。因果图法着重分析输入条件的各种组合,每种组合条件就是“因”,它必然有一个输出的结果,这就是“果”。利用因果图导出测试用例一般要经过以下几个步骤:1)分析软件规格说明的描述中哪些是原因,哪些是结果。原因是输入或输入条件的等价类,结果是输出条件。给每个原因和结果并赋予一个标识符,根据这些关系,画出因果图。2)因果图上用一些记号表明约束条件或限制条件。3)对需求加以分析并把它们表示为因果图之间的关系图。4)把因果图转换成判定表。5)将判定表的每一列作为依据,设计测试用例。例题有一个处理单价为1元5角钱的盒装饮料的自动售货机软件。若投入1元5角硬币,按下“可乐”、“雪碧”、“红茶”按钮,相应的饮料就送出来。若投入的是两元硬币,在送出饮料的同时退还5角硬币。分析原因:①投入1元5角硬币;②投入2元硬币;③按“可乐”按钮;④按“雪碧”按钮;⑤按“红茶”按钮。中间状态:①已投币;②已按钮。结果:①退还5角硬币;②送出“可乐”饮料③送出“雪碧”饮料;④送出“红茶”饮料。出判定表等价类划分等价类划分就是解决如何选择适当的数据子集来代表整个数据集的问题,通过降低测试的数目去实现“合理的”覆盖,覆盖了更多的可能数据,以发现更多的软件缺陷。等价类划分法是一种典型的、重要的黑盒测试方法,它将程序所有可能的输入数据(有效的和无效的)划分成若干个等价类。然后从每个部分中选取具有代表性的数据当做测试用例进行合理的分类,测试用例由有效等价类和无效等价类的代表组成,从而保证测试用例具有完整性和代表性。利用这一方法设计测试用例可以不考虑程序的内部结构,以需求规格说明书为依据,选择适当的典型子集,认真分析和推敲说明书的各项需求,特别是功能需求,尽可能多地发现错误。等价类划分法是一种系统性的确定要输入的测试条件的方法。由于等价类是在需求规格说明书的基础上进行划分的,并且等价类划分不仅可以用来确定测试用例中的数据的输入输出的精确取值范围,也可以用来准备中间值、状态和与时间相关的数据以及接口参数等,所以等价类可以用在系统测试、集成测试和组件测试中,在有明确的条件和限制的情况下,利用等价类划分技术可以设计出完备的测试用例。这种方法可以减少设计一些不必要的测试用例,因为这种测试用例一般使用相同的等价类数据,从而使测试对象得到同样的反映行为。对于等价类我们从以下几个方面讨论它的划分方法。等价类划分的方法分为两个主要的步骤,划分等价类型和设计测试用例。有效等价类划分有效等价类指对于程序规格说明来说,是合理的、有意义的输入数据构成的集合。利用有效等价类可以检验程序是否实现了规格说明预先规定的功能和性能。有效等价类可以是一个,也可以是多个,根据系统的输入域划分若干部分,然后从每个部分中选取少数有代表性数据当做数据测试的测试用例,等价类是输入域的集合。以下是对有效等价类数据集的一些例子。终端用户输入的命令与最终用户交互的系统提示接受相关的用户文件的名称提供初始化值和边界等提供格式化输出数据的命令在图形模式(比如鼠标点击时)提供的数据失败时显示的回应消息无效等价类划分无效等价类和有效等价类相反,无效等价类是指对于软件规格说明而言,没有意义的、不合理的输入数据集合。利用无效等价类,可以找出程序异常说明情况,检查程序的功能和性能的实现是否有不符合规格说明要求的地方。以下是无效等价类数据集的一些例子。在一个不正确的地方提供适当的值。验证边界值验证外部边界的值用户输入的命令最终用户与系统交互的提示验证与边界和外部边界值的数值数据等价类划分的方法\o"编辑本段"编辑按区间划分。按数值划分。按数值集合划分。按限制条件或规划划分。按处理方式划分。等价类划分的原则如下:在输入条件规定的取值范围或值的个数的情况下,可以确定一个有效等价类和两个无效等价类。在规定了输入数据的一组值中(假定有n个值),并且程序要对每个输入值分别处理的情况下,可以确定n个有效等价类和一个无效等价类。在规定输入数据必须遵守的规则的情况下,可以确定一个有效等价类和若干个无效等价类。在输入条件规定了输入值的集合或规定了“必须如何”的条件下,可以确定一个有效等价类和一个无效等价类。在确定已划分的等价类中各元素在程序处理中的方式不同的情况下,则应将该等价类进一步地划分为更小的等价类。等价类表的建立等价类表的建立如表3-1所示。表3-1是等价类表的基础,可依据表3-1确定测试用例。测试用例可按下列步骤来确定:表3-1等价类表1)在分析需求规格说明的基础上划分等价类,列出等价类表,为每一个等价类规定一个唯一的编号。2)将程序可能的输入数据分成若干个子集,从每个子集中选取一个有代表性的数据作为测试用例。等价类是某个输入域的子集,在该子集中的每个输入数据的作用都是等效的。3)设计新的测试用例,使其尽可能多地覆盖未覆盖的有效等价类,按照这一步骤重复进行,直到所有的有效等价类都被覆盖为止。4)设计新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,按照这一步骤重复进行,直到所有的无效等价类都被覆盖为止。等价类表与测试用例的关系等价类表与测试用例的关系如表3-2所示。表3-2等价类表与测试用例的关系表例子有一个报表系统,要求用户输入需要处理的报表胡日期,假定日期范围为2000年1月到2020年12月。如果用户输入的日期不在这个范围内,则显示错误码信息,并且此系统规定日期由年月六位数字组成,前四位数代表年,后二位数代表月。

1)请列出等价类表(包括有效等价类和无效等价类)

2)根据1)中的等价类表,设计出能覆盖所有等价类的测试用例。

要求:包括输入数据和预期输出,并指出各个测试用例所能付给的等价类编号。答:有效等价类:1.20<age<392.出生日期在1960年7月到1979年6月

无效等价类:3、age<20或age>394。出生日期早于1960年7月或出生日期晚于1979年6月

条件预期结果等价类覆盖

1、20<age<39,出生日期在1960年7月到1979年6月接收1.2

2、20<age<39,出生日期早于1960年7月拒绝1.4

3、20<age<39,出生日期晚于1979年6月拒绝1.4

。。。。。。。。。。。。。

基本方法就是这样了,没写太全。在你设计等价类的时候你可以把条件再细分一下,这样用例的覆盖率会加大的。边界值分析法边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。与等价划分的区别1)边界值分析不是从某等价类中随便挑一个作为代表,而是使这个等价类的每个边界都要作为测试条件。2)边界值分析不仅考虑输入条件,还要考虑输出空间产生的测试情况。边界值分析方法的考虑:长期的测试工作经验告诉我们,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部。因此针对各种边界情况设计测试用例,可以查出更多的错误。使用边界值分析方法设计测试用例,首先应确定边界情况。通常输入和输出等价类的边界,就是应着重测试的边界情况。应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据1)对16-bit的整数而言32767和-32768是边界2)屏幕上光标在最左上、最右下位置3)报表的第一行和最后一行4)数组元素的第一个和最后一个5)循环的第0次、第1次和倒数第2次、最后一次5.边界值分析1)边界值分析使用与等价类划分法相同的划分,只是边界值分析假定错误更多地存在于划分的边界上,因此在等价类的边界上以及两侧的情况设计测试用例。例:测试计算平方根的函数--输入:实数--输出:实数--规格说明:当输入一个0或比0大的数的时候,返回其正平方根;当输入一个小于0的数时,显示错误信息"平方根非法-输入值小于0"并返回0;库函数Print-Line可以用来输出错误信息。2)等价类划分:I.可以考虑作出如下划分:a、输入(i)<0和(ii)>=0b、输出(a)>=0和(b)ErrorII.测试用例有两个:a、输入4,输出2。对应于(ii)和(a)。b、输入-10,输出0和错误提示。对应于(i)和(b)。3)边界值分析:划分(ii)的边界为0和最大正实数;划分(i)的边界为最小负实数和0。由此得到以下测试用例:a、输入{最小负实数}b、输入{大于最小负实数,且趋近于最小值}c、输入0d、输入{小于最大正实数,且趋近于最大值}e、输入{最大正实数}4)通常情况下,软件测试所包含的边界检验有几种类型:数字、字符、位置、重量、大小、速度、方位、尺寸、空间等。5)相应地,以上类型的边界值应该在:最大/最小、首位/末位、上/下、最快/最慢、最高/最低、最短/最长、空/满等情况下。边界值分析的基本思想是使用在最小值、略高于最小值、正常值、略低于最大值和最大值处取输入变量值,记为:min、min+、nom、max-、max考虑到健壮性测试,还可以加一个略大于最大值max+,以及一个略小于最小值min-的值。6)利用边界值作为测试数据例子在软件测试中,假定X为整数,10≤X≤100,用边界值分析法,那么X在测试

中应该取()边界值。

A.X=9,X=10,X=100,X=101B.X=10,X=100

C.X=9,X=11,X=99,X=101D.X=9,X=10,X=50,X=100

怎么是A??9不是小于10吗1010不是大于100吗??答案选择A

边界值的选择:

(1)首先确定边界情况。通常输入或输出等价类的边界就是应该着重测试的边界情况。

(2)选取正好等于、刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值。

所以为10、100、9、101边界是指相对于输入等价类和输出等价类而言,稍高于其边界值及稍低于其边界值的一些特定情况。基于边界的方法是根据定义域来实现的,最终演变成边界值分析、健壮性测试、最坏情况测试和健壮最坏情况测试四种技术。边界值分析也是一种黑盒测试方法,是对等价类分析方法的一种补充,由长期的测试工作经验得知,大量的错误是发生在输入或输出的边界上。因此针对各种边界情况设计测试用例,可以查出更多的错误。边界值分析关注的是输入空间边界,用以标识测试用例,基本思想是在最小值(min)、略高于最小值(min+)、正常值(nom)、略低于最大值(max-)和最大值(max)等处取值。边界值分析手段主要有两种方式:通过变量数量和通过值域的种类进行。如一个n变量函数f(x1,x2,……xn)按以上方式每次确定一个测试对象(基于“单缺陷假设”理论),会产生4n+1个测试用例。健壮性测试是扩展边界值分析的测试,即增加一个略大于最大值(max+)和略小于最小值(min-)的取值,则用例数将变为6n+1。当边界值变量不是独立变量时,则以上测试用例就显的不充分。对于逻辑变量而言这种用例也没有什么用处。\o"查看图片"

边界值法示意图最坏情况测试拒绝“单缺陷假设”理论的情况下,对所有变量的边界值集合进行5元素笛卡儿积计算,用以生成测试用例,对于n变量函数的最坏测试基于边界值分析会产生5n个测试用例,基于健壮性分析则产生7n个测试用例。相比而言最坏情况测试代价较高,因此其最佳运用是物理变量具有大量交互作用,或者函数失效的代价极高的情况下。①“在最小值、和最大值处”是指的一般边界值分析。②“略小于最小值、最小值、略高于最小值、正常值、略低于最大值、最大值、略大于最大值”其实是健壮性边界值分析,也就是考虑了非法的意外值。③可靠性理论“单缺陷假设”:失效极少是由两个(或多个)缺陷的同时发生引起的。一、如果输入条件规定了值的范围,则应该取刚达到这个范围的边界值,以及刚刚超过这个范围边界的值作为测试输入数据;\o"查看图片"

边界值法二、如果输入条件规定了值的个数,则用最大个数、最小个数、比最大个数多1格、比最小个数少1个的数做为测试数据;三、根据规格说明的每一个输出条件,使用规则一;四、根据规格说明的每一个输出条件,使用规则二;五、如果程序的规格说明给出的输入域或输出域是有序集合(如有序表、顺序文件等),则应选取集合的第一个和最后一个元素作为测试用例;六、如果程序用了一个内部结构,应该选取这个内部数据结构的边界值作为测试用例;七、分析规格说明,找出其他可能的边界条件。找零钱最佳组合假设商店货品价格(R)皆不大於100元(且为整数),若顾客付款在100元内(P),求找给顾客之最少货币个(张)数?(货币面值50元(N50),10元(N10),5元(N5),1元(N1)四种)一、分析输入的情形。R>1000<R<=100R<=0\o"查看图片"

边界值法P>100R<=P<=100P<R二、分析输出情形。N50=1N50=05>N10>=1N10=0N5=1N5=05>N1>=1N1=0三、分析规格中每一决策点之情形,以RR1,RR2,RR3表示计算要找50,10,5元货币数时之剩余金额。R>100R<=0P>100P<RRR1>=50RR2>=10RR3>=5四、由上述之输入/输出条件组合出可能的情形。R>100R<=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论