软件质量保证与测试课内实验指导书白盒测试黑盒测试

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

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

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

资源描述

软件质量保证与测试课内实验指导书第一章白盒测试1.1白盒测试背景知识结构性测试是知道产品内部工作过程,检测产品内部动作是否按照规格说明书的规定正常进行。结构性测试允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一致。1.1.2逻辑覆盖结构性测试力求提高测试覆盖率。逻辑覆盖是一系列测试过程的总称,它是在使用白盒测试法时,选用测试用例执行程序逻辑路径的方法。逻辑覆盖按覆盖程度由低到高大致分为以下几类:①.语句覆盖:设计若干测试用例,使程序中每一可执行语句至少执行一次;②.判断覆盖:设计用例,使程序中的每个逻辑判断的取真取假分支至少经历一次;③.条件覆盖:设计用例,使判断中的每个条件的可能取值至少满足一次;④.判断/条件覆盖:设计用例,使得判断中的每个条件的所有可能结果至少出现一次,而且判断本身所有可能结果也至少出现一次;⑤.条件组合覆盖:设计用例,使得每个判断表达式中条件的各种可能组合都至少出现一次;显然,满足⑤的测试用例也一定是满足②、③、④的测试用例。⑥.路径覆盖。设计足够的测试用例,使程序的每条可能路径都至少执行一次。如果把路径覆盖和条件组合覆盖结合起来,可以设计出检错能力更强的测试数据用例。1.1.2基本路径测试如果把覆盖的路径数压缩到一定限度内,例如,程序中的循环体只执行零次和一次,就成为基本路径测试。它是在程序控制流图的基础上,通过分析控制构造的环路复杂性,导出基本可执行路径集合,从而设计测试用例的方法。设计出的测试用例要保证在测试中,程序的每一个可执行语句至少要执行一次。①程序的控制流图控制流图是描述程序控制流的一种图示方法。符号○称为控制流图的一个结点,一组顺序处理框可以映射为一个单一的结点。控制流图中的箭头称为边,它表示了控制流的方向,在选择或多分支结构中分支的汇聚处,即使没有执行语句也应该有一个汇聚结点。边和结点圈定的区域叫做区域,当对区域计数时,图形外的区域也应记为一个区域。②计算程序环路复杂性进行程序的基本路径测试时,程序的环路复杂性给出了程序基本路径集合中的独立路径条数,这是确保程序中每个可执行语句至少执行一次所必需的测试用例数目的上界。所谓独立路径,是指包括一组以前没有处理的语句或条件的一条路径。只要设计出的测试用例能够确保这些基本路径的执行,就可以使得程序中的每个可执行语句至少执行一次,每个条件的取真分支和取假分支也能得到测试。基本路径集不是唯一的,对于给定的控制流图,可以得到不同的基本路径集。通常环路复杂性可用以下三种方法求得。*将环路复杂性定义为控制流图中的区域数。*设E为控制流图的边数,N为图的结点数,则定义环路复杂性为V(G)=E-N+2。*若设P为控制流图中的简单判定结点数,则有V(G)=P+1。③导出测试用例利用逻辑覆盖方法生成测试用例,确保基本路径集中每条路径的执行1.2测试题目1.2.1三角形问题1.2.1.1三角形问题的描述三角新问题接受三个整数a,b和c作为输入,用作三角形的边。程序的输入是由这三条边确定的三角形类型:等边三角形、等腰三角形、不等边三角形或非三角形。1.2.1.2三角形问题描述的细化三角形问题接受三个整数a,b和c作为输入,用作三角形的边。整数a,b,c必须满足以下条件:c1.1≤a≤200c2.1≤b≤200c3.1≤c≤200c4.ab+cc5.ba+cc6.ca+b程序的输出是有着三条边确定的三角形类型:等边三角形、等腰三角形、不等边三角形或非三角形。如果输入值没有满足这些条件中的任何一个,则程序会通过输出消息来进行通知。如果a,b和c的取值满足c1,c2和c3,则给出以下四种相互排斥输出中的一个:如果三条边相等,则程序的输出是等边三角形;如果恰好有两条边相等,则程序的输出是等腰三角形;如果没有两条边想相等,则程序输出的是不等边三角形。如果c4,c5和c6中有一个条件不满足,则程序输出的是非三角形。1.2.1.3主要代码见附件中Project1.2.1.4要求1.根据以上的C++代码画出该程序的流程图;2.根据流程图,用白盒测试的用例设计方法设计测试用例实现:语句覆盖、判定覆盖、条件覆盖、条件判定覆盖以及条件组合覆盖;3.根据代码画出程序的流图,根据流图计算图的复杂度,计算出基本路径的条数,并给出基本路径;4.根据基本路径覆盖法设计测试用例,覆盖3中得到的基本路径;1.2.2NextDate问题1.2.2.1NextDate问题的描述NextDate是一个有三个变量(月份、日期和年)的函数。函数返回输入日期后面的那个日期。变量月份、日期和年都具有整型值,则满足一下条件:c1.1月份12c2.1日期31c3.1812年2012可以使规格说明更具体,包括对日期、月份和年的无效输入值的响应定义。还可以对无效逻辑组合定义1.2.2.2NextDate问题的主要代码见附件中的project1.2.2.3要求1.根据以上的C++代码画出该程序的流程图;2.根据流程图,用白盒测试的用例设计方法设计测试用例实现:语句覆盖、判定覆盖、条件覆盖、条件判定覆盖以及条件组合覆盖;3.根据代码画出程序的流图,根据流图计算图的复杂度,计算出基本路径的条数,并给出基本路径;4.根据基本路径覆盖法设计测试用例,覆盖3中得到的基本路径;第二章黑盒测试2.1黑盒测试的背景知识黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。2.1.1等价类划分法等价类划分的办法是把程序的输入域划分成若干部分(子集),然后从每个部分中选取少数代表性数据作为测试用例。每一类的代表性数据在测试中的作用等价于这一类中的其他值。该方法是一种重要的,常用的黑盒测试用例设计方法。2.1.1.1划分等价类划分等价类:等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的,并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试.因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据.取得较好的测试结果。等价类划分可有两种不同的情况:有效等价类和无效等价类。有效等价类:是指对于程序的规格说明来说是合理的,有意义的输入数据构成的集合.利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。无效等价类:与有效等价类的定义恰巧相反。设计测试用例时,要同时考虑这两种等价类.因为,软件不仅要能接收合理的数据,也要能经受意外的考验。这样的测试才能确保软件具有更高的可靠性。2.1.1.2划分等价类准则划分等价类的方法:下面给出六条确定等价类的原则.①在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类.②在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可确立一个有效等价类和一个无效等价类.③在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类.④在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类.⑤在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则).⑥在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步的划分为更小的等价类.2.1.1.3设计测试用例的步骤在确立了等价类后,可建立等价类表,列出所有划分出的等价类:输入条件划分有效等价类与无效等价类。然后从划分出的等价类中按以下三个原则设计测试用例:①为每一个等价类规定一个唯一的编号;②设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖地有效等价类,重复这一步。直到所有的有效等价类都被覆盖为止;③设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步,直到所有的无效等价类都被覆盖为止。2.1.2边界值分析法边界值分析是通过选择等价类边界的测试用例。边界值分析法不仅重视输入条件边界,而且也必须考虑输出域边界。它是对等价类划分方法的补充。2.1.2.1边界值分析方法的考虑:长期的测试工作经验告诉我们,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部.因此针对各种边界情况设计测试用例,可以查出更多的错误.使用边界值分析方法设计测试用例,首先应确定边界情况.通常输入和输出等价类的边界,就是应着重测试的边界情况.应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据.2.1.2.2基于边界值分析方法选择测试用例的原则:①.如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据;②.如果输入条件规定了值的个数,则用最大个数,最小个数,比最小个数少一,比最大个数多一的数作为测试数据;③.根据规格说明的每个输出条件,使用前面的原则①;④.根据规格说明的每个输出条件,应用前面的原则②;⑤.如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例;⑥.如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试用例;⑦.分析规格说明,找出其它可能的边界条件。2.1.2.3边界值分析中的两种假设边界值分析中基于两种假设:1.根据缺陷的数量边界值分析分为两类:单缺陷假设和多缺陷假设;2.根据健壮性的考虑边界值分析分为两类:非健壮性分析和健壮性分析。2.2测试题目2.2.1三角形问题问题的描述如上一章中1.2.1节的描述2.2.2NextDate问题问题的描述如上一章中1.2.2节的描述2.2.3黑盒测试要求1.根据题目中给出的三角形问题和NextDate问题的需求说明书,按照等价类划分法,设计测试用例,覆盖所有的等价类;2.根据题目中给出的三角形问题和NextDate问题的需求说明书,按照边界值分析法,设计测试用例,进行功能性测试。边界值分析法需要包含:单缺陷假设非健壮性假设;多缺陷假设非健壮性假设;单缺陷假设假装性假设;最坏情况测试。第三章自动测试工具——Nunit的使用NUnit是一个单元测试框架,专门针对于.NET来写的。其实在前面有JUnit(Java),CPPUnit(C++),他们都是xUnit的一员。最初,它是从JUnit而来。现在的版本是2.5.2。接下来我所用的都是基于这个版本。NUnit最初是由JamesW.Newkirk,AlexeiA.Vorontsov和PhilipA.Craig,后来开发团队逐渐庞大起来。在开发过程中,KentBeck和ErichGamma2位牛人也提供了许多帮助。看来对于NUnit还真是下了一番力气了NUnit是xUnit家族种的第4个主打产品,完全由C#语言来编写,并且编写时充分利用了许多。NET的特性,比如反射,客户属性等等。最重要的一点是它适合于所有.NET语言。3.1NUnit介绍图3.1NUnit运行效果从中我们可以非常容易发现,右边是个状态条,图1是红色的,图2是绿色的.为什么会这样呢?因为如果所有测试案例运行成功,就为绿色,反之如果有一个不成功,则为红色,但也有黄色的.左面的工作域内则是我们写的每一个单元测试.通过上面的图片,我想你对NUnit有个总的了解了.接下来还是分为2个部分,一是NUnit的布局,另外一部分就是它的核心概念.首先熟悉一下NUnitGUI的布局.让我们更进一步看一下测试运行器窗口的布局。在右边面板的中间,可以看到测试进度条。进度条的颜色反映了测

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

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

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

×
保存成功