【文档说明】软件质量保证与测试课件第10章-黑盒测试-.ppt,共(35)页,1.682 MB,由小橙橙上传
转载请保留链接:https://www.ichengzhen.cn/view-45308.html
以下为本文档部分文字说明:
软件质量保证与测试1第10章黑盒测试2内容提要10.1黑盒测试的基本概念10.2等价类划分10.2.1划分等价类10.2.2划分等价类的方法10.2.3设计测试用例:10.3边界值分析法10.3.1边界条件10.3
.2次边界条件10.3.3其他一些边界条件10.3.4边界值的选择方法3内容提要10.4因果图法10.4.1因果图设计方法10.4.2因果图测试用例10.5功能图法10.5.1功能图设计方法10.5.
2功能图法生成测试用例10.6黑盒测试方法的比较与选择10.7黑盒测试工具介绍10.7.1WinRunner介绍10.7.2LoadRunner的使用10.7.3.QuickTestPro的使用10.9小结410.1黑盒测
试的基本概念黑盒测试试图发现以下类型的错误:功能错误或遗漏;界面错误;数据结构或外部数据库访问错误;性能错误;初始化和终止错误。510.2等价类划分等价类划分法是一种黒盒测试的技术,不考虑程序的内部结构,是把所有可能的输入数据,即程序的输入域划分成若干部分(子集)
,然后从每一个子集中选取少数具有代表性的数据作为测试用例。该方法是一种重要的,常用的黑盒测试用例设计方法。用例编号乘数1乘数2乘积1111212231334145…………610.2.1划分等价类等价类划分可有两种不同的
情况:有效等价类和无效等价类。有效等价类:是指对于程序的规格说明来说是合理的,有意义的输入数据构成的集合。利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。无效等价类:与有效等价类的定义恰巧相反,不符合需求规格说明书。710.2.2划分等价类的方法下
面给出六条确定等价类的原则。在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类。在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可确立一个有效等价类和一个无效等价类。在输入条件是一个布尔量的情况下,可确定一个有
效等价类和一个无效等价类。在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类。在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。在确知
已划分的等价类中各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步的划分为更小的等价类。8等价类表示例输入条件有效等价类无效等价类输入条件有效等价类无效等价类………………<11~100>1001.无效等效类2.有效等效类3.无效等效
类910.2.3设计测试用例先根据输入条件确定有效等价类和无效等价类,然后从划分出的等价类中按以下三个原则设计测试用例。每一个等价类规定一个唯一的编号。设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖地有效等
价类,重复这一步。直到所有的有效等价类都被覆盖为止。设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步,直到所有的无效等价类都被覆盖为止。用例编号所属等价类乘数1乘数2乘积123206021-102提示“请输入1~100之间的整数”332003提示“请输入1~100
之间的整数”10三角形(等价类划分)输入条件有效等价类无效等价类是否三角形的3条边(A>0),(1)(B>0),(2)(C>0),(3)(A+B>C),(4)(B+C>A),(5)(A+C>B)(6)(A
≤0),(7)(B≤0),(8)(C≤0),(9)(A+B≤C),(10)(B+C≤A),(11)(A+C≤B)(12)是否等腰三角形(A=B),(13)(B=C),(14)(C=A),(15)(A≠B)and(B≠C)and(C≠A),(16
)是否等边三角形(A=B)and(B=C)and(C=A),(17)(A≠B),(18)(B≠C),(19)(C≠A),(20)11三角形测试用例(等价类划分)用例编号【A,B,C】覆盖等价类输出1【3,4,5】(1),
(2),(3),(4),(5),(6)一般三角形2【0,1,2】(7)不能构成三角形3【1,0,2】(8)4【1,2,0】(9)5【1,2,3】(10)6【1,3,2】(11)7【3,1,2】(12)8【3,3,4】(1),(2),(3),(4),(5),(6),(13)
等腰三角形9【3,4,4】(1),(2),(3),(4),(5),(6),(14)10【3,4,3】(1),(2),(3),(4),(5),(6),(15)11【3,4,5】(1),(2),(3),(4),(5),(6),(16)非等腰三角形12【3,3,3】(1
),(2),(3),(4),(5),(6),(17)是等边三角形13【3,4,4】(1),(2),(3),(4),(5),(6),(14),(18)非等边三角形14【3,4,3】(1),(2),(3),(4),(5),(6),(15
),(19)15【3,3,4】(1),(2),(3),(4),(5),(6),(13),(20)1210.3边界值分析法10.3.1边界条件我们可以想象一下,如果在悬崖峭壁边可以自信地安全行走,平地就不在
话下了。如果软件在能力达到极限时能够运行,那么在正常情况下一般也就不会有什么问题。边界条件是特殊情况,因为编程从根本上说不怀疑边界有问题。奇怪的是,程序在处理大量中间数值时都是对的,但是可能在边界处出现
错误。1310.3.2次边界条件字符ASCII值字符ASCII值字符ASCII值字符ASCII值Null0B66250a97Space32Y89957b98/47Z90:58y121048[91@64z122149'96A65{1231410.3.3其他一些边界条件另
一种看起来很明显的软件缺陷来源是当软件要求输入时(比如在文本框中),不是没有输入正确的信息,而是根本没有输入任何内容,只按了Enter键。这种情况在产品说明书中常常被忽视,程序员也可能经常遗忘,但是在实际使用中却时有发生。程序员总
会习惯性地认为用户要么输入信息,不管是看起来合法的或非法的信息,要么就会选择Cancel键放弃输入,如果没有对空值进行好的处理的话,恐怕程序员自己都不知道程序会引向何方。正确的软件通常应该将输入内容默认为合法边
界内的最小值,或者合法区间内的某个合理值,否则,返回错误提示信息。因为这些值通常在软件中进行特殊处理,所以不要把它们与合法情况和非法情况混在一起,而要建立单独的等价区间。1510.3.4边界值的选择方法
对边界值设计测试用例,应遵循以下几条原则:如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据。如果输入条件规定了值的个数,则用最大个数、最小个数、比最小
个数少1、比最大个数多1的数作为测试数据。根据规格说明的每个输出条件,使用前面的原则①。根据规格说明的每个输出条件,应用前面的原则②。如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例。如果程序中使用了一个内部数据结构,则应当选择
这个内部数据结构边界上的值作为测试用例。分析规格说明,找出其他可能的边界条件。1610.4因果图法10.4.1因果图设计方法利用因果图导出测试用例需要经过以下几个步骤:分析程序规格说明的描述中,哪些是
原因,哪些是结果。原因常常是输入条件或是输入条件的等价类,而结果是输出条件。分析程序规格说明的描述中语义的内容,并将其表示成连接各个原因与各个结果的“因果图”。标明约束条件。由于语法或环境的限制,有些原因和结果的组合情况是不可能出现的。为表明这些特定的情
况,在因果图上使用若干个标准的符号标明约束条件。把因果图转换成判定表。为判定表中每一列表示的情况设计测试用例。17因果图的基本图形符号①恒等:若原因出现,则结果出现;若原因不出现,则结果也不出现。②非(~):若原因出现,则结果不出现;若原因不出现,则结果出现。
③或(∨):若几个原因中有1个出现,则结果出现;若几个原因都不出现,则结果不出现。④与(∧):若几个原因都出现,结果才出现。若其中有1个原因不出现,则结果不出现。18因果图的约束符号E(互斥):表示a、b两个原因不会同时成立,两个中最
多有一个可能成立。I(包含):表示a、b、c这3个原因中至少有一个必须成立。O(惟一):表示a和b当中必须有一个,且仅有一个成立。R(要求):表示当a出现时,b必须也出现。a出现时不可能b不出现。M(屏蔽):表示当a是1时,b必须是0。
而当a为0时,b的值不定。1910.4.2因果图测试用例原因c1:投入1元5角硬币;c2:投入2元硬币;c3:按“可乐”按钮;c4:按“雪碧”按钮;c5:按“红茶”按钮中间状态11:已投币12:已按钮结果a1:退还5角硬币;a2:送出“可乐”饮料;a3
:送出“雪碧”饮料;a4:送出“红茶”饮料20因果图VVVVC1C5C4C3C2E4E3E2E11211EEVV21决策表1234567891011输入投入1元5角硬币11110000000投入2元硬币00001111
000按“可乐”按钮10001000100按“雪碧”按钮01000100010按“红茶”按钮00100010001中间结点已投币11111111000已按钮11101110111输出退还5角硬币00001110000送出“可乐”饮料10001000000
送出“雪碧”饮料01000100000送出“红茶”饮料0010001000022乘法器测试用例(等价类划分)用例编号测试用例预期输出1投入1元5角,按“可乐”送出“可乐”饮料2投入1元5角,按“雪碧”送出“
雪碧”饮料3投入1元5角,按“红茶”送出“红茶”饮料4投入2元,按“可乐”找5角,送出“可乐”5投入2元,按“雪碧”找5角,送出“雪碧”6投入2元,按“红茶”找5角,送出“红茶”2310.5功能图法一个程序的功能说明通常由动态说明和静态说明组成。动态说明描述了输入数据的
次序或转移的次序。静态说明描述了输入条件与输出条件之间的对应关系。对于较复杂的程序,由于存在大量的组合情况,因此,仅用静态说明组成的规格说明对于测试来说往往是不够的,必须用动态说明来补充功能说明。
2410.5.1功能图设计方法功能图方法是用功能图形象地表示程序的功能说明,并机械地生成功能图的测试用例。功能图模型由状态迁移图和逻辑功能模型构成。状态迁移图用于表示输入数据序列以及相应的输出数据。在状态迁移图中,由
输入数据和当前状态决定输出数据和后续状态。逻辑功能模型用于表示在状态中输入条件和输出条件之间的对应关系。逻辑功能模型只适合于描述静态说明,输出数据仅由输入数据决定。测试用例则是由测试中经过的一系列状态和在每个状态中必须依靠输入/输出数据满足的一对条件组成。功能图方法实
际上是一种黑盒、白盒混合用例设计方法。25功能图26判定表输入口令=记录YNN错输入=3次NYN输出M2—M3—M4—消去卡—状态S1—S2—S3—2710.5.2功能图法生成测试用例从功能图生成测试用例的过程如下
。生成局部测试用例:在每个状态中,从因果图生成局部测试用例。局部测试库由原因值(输入数据)组合与对应的结果值(输出数据或状态)构成。测试路径生成:利用上面的规则生成从初始状态到最后状态的测试路径。测试用例合成:合成测试路径与功能图中每个状态的局部测试用例。结果是视
状态到最后状态的一个状态序列,以及每个状态中输入数据与对应输出数据组合。测试用例的合成算法:采用条件构造树。2810.6黑盒测试方法的比较与选择以下是各种测试方法选择的综合策略,可供读者在实际应用过
程中参考。首先进行等价类划分,包括输入条件和输出条件的等价划分,将无限测试变成有限测试,这是减少工作量和提高测试效率最有效的方法。在任何情况下都必须使用边界值分析方法。经验表明,用这种方法设计出的测试用例发现程序错误的能力最强。可以用错误推测法追加一些测试用例,这需要依靠测试工程师的智慧
和经验。对照程序逻辑,检查已设计出的测试用例的逻辑覆盖程度。如果没有达到要求的覆盖标准,应当再补充足够的测试用例。如果程序的功能说明中含有输入条件的组合情况,则一开始就可选用因果图法和判定表驱动法。对于参数配置类的软件
,要用正交试验法选择较少的组合方式达到最佳效果。功能图法也是很好的测试用例设计方法,我们可以通过不同时期条件的有效性设计不同的测试数据。对于业务流清晰的系统,可以利用场景法贯穿整个测试案例过程,在案例中综合使用各种测试方法。2910.7黑盒测试
工具介绍10.7.1WinRunner介绍30WinRunner使用3110.7.2LoadRunner的使用32LoadRunner使用简介33LoadRunner使用简介3410.7.3.Quic
kTestPro的使用3510.9小结本章主要讲解了等价类划分法,边界值分析法,因果图法,功能图分析法,综合的案例分析,同时对黒盒测试的几种方法进行的比较,最后介绍了常用的几种黒盒测试的工具。本章的实践性较强,希望举一反三,将这些测试技术和平时的软件开发和测试工作结合起来。