软件测试第03章(2).ppt
《软件测试第03章(2).ppt》由会员分享,可在线阅读,更多相关《软件测试第03章(2).ppt(68页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、3.3 黑黑 盒盒 测测 试试 技技 术术 黑盒测试也称数据驱动测试,在测试时,黑盒测试也称数据驱动测试,在测试时,把程序看作一个不能打开的黑盒子,在完全不把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,测试考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试。者在程序接口进行测试。在黑盒测试过程中,只是通过在黑盒测试过程中,只是通过输入数据、输入数据、进行操作、观察输出结果进行操作、观察输出结果,来检查软件系统是,来检查软件系统是否按照需求规格说明书的规定正常使用,软件否按照需求规格说明书的规定正常使用,软件是否能适当地接收输入数据而产生正确的输出是否能适
2、当地接收输入数据而产生正确的输出信息,并保持外部信息的完整性。信息,并保持外部信息的完整性。13.3.1 功能测试功能测试 1.等价类划分法等价类划分法 等价类划分法是一种重要的、常用的等价类划分法是一种重要的、常用的黑盒测试方法,它将不能穷举的测试过程黑盒测试方法,它将不能穷举的测试过程进行合理分类,从而保证设计出来的测试进行合理分类,从而保证设计出来的测试用例具有用例具有完整性和代表性完整性和代表性。2举例:设计测试用例,来实现一个对所有实数进行举例:设计测试用例,来实现一个对所有实数进行举例:设计测试用例,来实现一个对所有实数进行举例:设计测试用例,来实现一个对所有实数进行开平方运算(开
3、平方运算(开平方运算(开平方运算(y=y=sqrt(xsqrt(x))的程序的测试。)的程序的测试。)的程序的测试。)的程序的测试。思考方向:思考方向:思考方向:思考方向:由于开平方运算只对非负实数有效,这时需要由于开平方运算只对非负实数有效,这时需要由于开平方运算只对非负实数有效,这时需要由于开平方运算只对非负实数有效,这时需要将所有的实数(输入域将所有的实数(输入域将所有的实数(输入域将所有的实数(输入域x x)进行划分,可以分成:正)进行划分,可以分成:正)进行划分,可以分成:正)进行划分,可以分成:正实数、实数、实数、实数、0 0 和和和和 负实数。假设我们选定负实数。假设我们选定负实
4、数。假设我们选定负实数。假设我们选定+1.4444+1.4444代表正实代表正实代表正实代表正实数,数,数,数,-2.345-2.345代表负实数,则为该程序设计的测试用例代表负实数,则为该程序设计的测试用例代表负实数,则为该程序设计的测试用例代表负实数,则为该程序设计的测试用例的输入为的输入为的输入为的输入为+1.4444+1.4444、0 0 和和和和 -2.345-2.345。3等价类划分法是把所有可能的输入数据,即程序等价类划分法是把所有可能的输入数据,即程序等价类划分法是把所有可能的输入数据,即程序等价类划分法是把所有可能的输入数据,即程序的的的的输入域划分输入域划分输入域划分输入域
5、划分为若干部分(子集),然后从每一个为若干部分(子集),然后从每一个为若干部分(子集),然后从每一个为若干部分(子集),然后从每一个子集中子集中子集中子集中选取少数具有代表性选取少数具有代表性选取少数具有代表性选取少数具有代表性的数据作为测试用例。的数据作为测试用例。的数据作为测试用例。的数据作为测试用例。所谓等价类是指某个输入域的子集合。在该子集所谓等价类是指某个输入域的子集合。在该子集所谓等价类是指某个输入域的子集合。在该子集所谓等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等合中,各个输入数据对于揭露程序中的错误都是等合中,各个输入数据对于揭露程序中的错
6、误都是等合中,各个输入数据对于揭露程序中的错误都是等效的,它们具有等价特性,即每一类的代表性数据效的,它们具有等价特性,即每一类的代表性数据效的,它们具有等价特性,即每一类的代表性数据效的,它们具有等价特性,即每一类的代表性数据在测试中的作用都等价于这一类中的其它数据。这在测试中的作用都等价于这一类中的其它数据。这在测试中的作用都等价于这一类中的其它数据。这在测试中的作用都等价于这一类中的其它数据。这样,对于表征该类的数据输入将能代表整个子集合样,对于表征该类的数据输入将能代表整个子集合样,对于表征该类的数据输入将能代表整个子集合样,对于表征该类的数据输入将能代表整个子集合的输入。因此,可以合
7、理的假定:的输入。因此,可以合理的假定:的输入。因此,可以合理的假定:的输入。因此,可以合理的假定:测试某等价类的代表值就是等效于对于这一测试某等价类的代表值就是等效于对于这一测试某等价类的代表值就是等效于对于这一测试某等价类的代表值就是等效于对于这一类其它值的测试类其它值的测试类其它值的测试类其它值的测试。4如何划分?如何划分?先从程序的规格说明书中找出各个输入先从程序的规格说明书中找出各个输入条件,再为每个输入条件划分两个或多个等条件,再为每个输入条件划分两个或多个等价类,形成若干的价类,形成若干的互不相交的子集互不相交的子集。采用等价类划分法设计测试用例通常分两步采用等价类划分法设计测试
8、用例通常分两步进行:进行:(1)确定等价类,列出等价类表。确定等价类,列出等价类表。(2)确定测试用例。)确定测试用例。5划分等价类可分为两种情况:划分等价类可分为两种情况:(1)有效等价类)有效等价类 是指对软件规格说明而言,是有意义的、合理是指对软件规格说明而言,是有意义的、合理的输入数据所组成的集合,能够检验程序的输入数据所组成的集合,能够检验程序是否实现是否实现了规格说明中预先规定的功能和性能。了规格说明中预先规定的功能和性能。(2)无效等价类)无效等价类 是指对软件规格说明而言,是无意义的、不合是指对软件规格说明而言,是无意义的、不合理的输入数据所构成的集合,可以鉴别程序异常处理的输
9、入数据所构成的集合,可以鉴别程序异常处理的情况,检查被测对象的功能和性能的实现理的情况,检查被测对象的功能和性能的实现是否是否有不符合有不符合规格说明要求的地方。规格说明要求的地方。6进行等价类划分的依据:进行等价类划分的依据:(1 1)按照区间划分)按照区间划分)按照区间划分)按照区间划分 在输入条件规定了取值范围或值的个数在输入条件规定了取值范围或值的个数在输入条件规定了取值范围或值的个数在输入条件规定了取值范围或值的个数的情况下,可以确定一个有效等价类和两个无效等价类。的情况下,可以确定一个有效等价类和两个无效等价类。的情况下,可以确定一个有效等价类和两个无效等价类。的情况下,可以确定一
10、个有效等价类和两个无效等价类。例:例:例:例:程序输入条件为小于程序输入条件为小于程序输入条件为小于程序输入条件为小于100100大于大于大于大于1010的整数的整数的整数的整数x x,则有效等价类,则有效等价类,则有效等价类,则有效等价类为为为为1010 x x100100,两个无效等价类为,两个无效等价类为,两个无效等价类为,两个无效等价类为x10 x10和和和和x100 x100。例:例:例:例:程序输入程序输入程序输入程序输入x x取值于一个固定的枚举类型取值于一个固定的枚举类型取值于一个固定的枚举类型取值于一个固定的枚举类型1,3,7,151,3,7,15,且程,且程,且程,且程序序
11、序序 中对这中对这中对这中对这4 4个数值分别进行了处理,则有效等价类为个数值分别进行了处理,则有效等价类为个数值分别进行了处理,则有效等价类为个数值分别进行了处理,则有效等价类为x=1x=1、x=3x=3、x=7x=7、x=15x=15,无效等价类为,无效等价类为,无效等价类为,无效等价类为x1,3,7,15x1,3,7,15的值的集合。的值的集合。的值的集合。的值的集合。(2 2)按照数值划分)按照数值划分)按照数值划分)按照数值划分 在规定了一组输入数据(假设包括在规定了一组输入数据(假设包括在规定了一组输入数据(假设包括在规定了一组输入数据(假设包括 n n个个个个 输入值),并且程序
12、要对每一个输入值分别进行处理的情况输入值),并且程序要对每一个输入值分别进行处理的情况输入值),并且程序要对每一个输入值分别进行处理的情况输入值),并且程序要对每一个输入值分别进行处理的情况下,可确定下,可确定下,可确定下,可确定 n n 个有效等价类(每个值确定一个有效等价类)个有效等价类(每个值确定一个有效等价类)个有效等价类(每个值确定一个有效等价类)个有效等价类(每个值确定一个有效等价类)和一个无效等价类(所有不允许的输入值的集合)。和一个无效等价类(所有不允许的输入值的集合)。和一个无效等价类(所有不允许的输入值的集合)。和一个无效等价类(所有不允许的输入值的集合)。7(3 3)按照
13、数值集合划分)按照数值集合划分)按照数值集合划分)按照数值集合划分 在输入条件规定了输入值的集合或在输入条件规定了输入值的集合或在输入条件规定了输入值的集合或在输入条件规定了输入值的集合或规定了规定了规定了规定了“必须如何必须如何必须如何必须如何”的条件下,可以确定一个有效等价类和的条件下,可以确定一个有效等价类和的条件下,可以确定一个有效等价类和的条件下,可以确定一个有效等价类和一个无效等价类(该集合有效值之外)。一个无效等价类(该集合有效值之外)。一个无效等价类(该集合有效值之外)。一个无效等价类(该集合有效值之外)。例:例:例:例:程序输入条件为取值为奇数的整数程序输入条件为取值为奇数的
14、整数程序输入条件为取值为奇数的整数程序输入条件为取值为奇数的整数x x,则有效等价类为,则有效等价类为,则有效等价类为,则有效等价类为x x的值为奇数的整数,无效等价类为的值为奇数的整数,无效等价类为的值为奇数的整数,无效等价类为的值为奇数的整数,无效等价类为x x的值不为奇数的整数。的值不为奇数的整数。的值不为奇数的整数。的值不为奇数的整数。例:例:例:例:程序输入条件为以字符程序输入条件为以字符程序输入条件为以字符程序输入条件为以字符 aa开头、长度为开头、长度为开头、长度为开头、长度为8 8的字符串,并的字符串,并的字符串,并的字符串,并且字符串不包含且字符串不包含且字符串不包含且字符串
15、不包含 a za z之外的其它字符,则有效等价类之外的其它字符,则有效等价类之外的其它字符,则有效等价类之外的其它字符,则有效等价类为满足了上述所有条件的字符串,无效等价类为不以为满足了上述所有条件的字符串,无效等价类为不以为满足了上述所有条件的字符串,无效等价类为不以为满足了上述所有条件的字符串,无效等价类为不以 aa开开开开头的字符串、长度不为头的字符串、长度不为头的字符串、长度不为头的字符串、长度不为8 8的字符串和包含了的字符串和包含了的字符串和包含了的字符串和包含了 a za z之外之外之外之外其它字符的字符串。其它字符的字符串。其它字符的字符串。其它字符的字符串。(5 5)细分等价
16、类)细分等价类)细分等价类)细分等价类 在确知已划分的等价类中各元素在程序中在确知已划分的等价类中各元素在程序中在确知已划分的等价类中各元素在程序中在确知已划分的等价类中各元素在程序中的处理方式不同的情况下,则应再将该等价类进一步划分为的处理方式不同的情况下,则应再将该等价类进一步划分为的处理方式不同的情况下,则应再将该等价类进一步划分为的处理方式不同的情况下,则应再将该等价类进一步划分为更小的等价类,并建立等价类表。更小的等价类,并建立等价类表。更小的等价类,并建立等价类表。更小的等价类,并建立等价类表。(4 4)按照限制条件或规则划分)按照限制条件或规则划分)按照限制条件或规则划分)按照限
17、制条件或规则划分 在规定了输入数据必须遵守在规定了输入数据必须遵守在规定了输入数据必须遵守在规定了输入数据必须遵守的规则或限制条件的情况下,可确定一个有效等价类(符合的规则或限制条件的情况下,可确定一个有效等价类(符合的规则或限制条件的情况下,可确定一个有效等价类(符合的规则或限制条件的情况下,可确定一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。规则)和若干个无效等价类(从不同角度违反规则)。规则)和若干个无效等价类(从不同角度违反规则)。规则)和若干个无效等价类(从不同角度违反规则)。8在设计测试用例时,应同时考虑有效等价类和无效在设计测试用例时,应同时考虑有效等价类和
18、无效在设计测试用例时,应同时考虑有效等价类和无效在设计测试用例时,应同时考虑有效等价类和无效等价类测试用例的设计。根据已列出的等价类表确等价类测试用例的设计。根据已列出的等价类表确等价类测试用例的设计。根据已列出的等价类表确等价类测试用例的设计。根据已列出的等价类表确定测试用例,具体过程如下:定测试用例,具体过程如下:定测试用例,具体过程如下:定测试用例,具体过程如下:(1 1)首先为等价类表中的每一个等价类分别规定一)首先为等价类表中的每一个等价类分别规定一)首先为等价类表中的每一个等价类分别规定一)首先为等价类表中的每一个等价类分别规定一个唯一的编号。个唯一的编号。个唯一的编号。个唯一的编
19、号。(2 2)设计一个新的测试用例,使它能够)设计一个新的测试用例,使它能够)设计一个新的测试用例,使它能够)设计一个新的测试用例,使它能够尽量覆盖尚尽量覆盖尚尽量覆盖尚尽量覆盖尚未覆盖的有效等价类未覆盖的有效等价类未覆盖的有效等价类未覆盖的有效等价类。重复这个步骤,直到所有的。重复这个步骤,直到所有的。重复这个步骤,直到所有的。重复这个步骤,直到所有的有效等价类均被测试用例所覆盖。有效等价类均被测试用例所覆盖。有效等价类均被测试用例所覆盖。有效等价类均被测试用例所覆盖。(3 3)设计一个新的测试用例,使它)设计一个新的测试用例,使它)设计一个新的测试用例,使它)设计一个新的测试用例,使它仅覆
20、盖一个尚未仅覆盖一个尚未仅覆盖一个尚未仅覆盖一个尚未覆盖的无效等价类覆盖的无效等价类覆盖的无效等价类覆盖的无效等价类。重复这一步骤,直到所有的无。重复这一步骤,直到所有的无。重复这一步骤,直到所有的无。重复这一步骤,直到所有的无效等价类均被测试用例所覆盖。效等价类均被测试用例所覆盖。效等价类均被测试用例所覆盖。效等价类均被测试用例所覆盖。93 3条边分别为条边分别为条边分别为条边分别为A A、B B、C C,满足:,满足:,满足:,满足:A0A0,B0B0,C0C0,且,且,且,且A+BCA+BC,B+CAB+CA,A+CBA+CB;等腰需满足等腰需满足等腰需满足等腰需满足A=BA=B,或,或
21、,或,或B=CB=C,或,或,或,或A=C A=C;等边需满足等边需满足等边需满足等边需满足A=BA=B,且,且,且,且B=CB=C,且,且,且,且A=C A=C;例:三角形问题例:三角形问题例:三角形问题例:三角形问题步骤步骤步骤步骤1 1 1 1:条件分析:条件分析:条件分析:条件分析10步骤步骤步骤步骤2 2 2 2:列出等价类列表:列出等价类列表:列出等价类列表:列出等价类列表11步骤步骤步骤步骤3 3 3 3:设计测试用例:设计测试用例:设计测试用例:设计测试用例122.边界值分析法边界值分析法 边界值分析法就是边界值分析法就是对输入或输出的边界对输入或输出的边界值进行测试值进行测试
22、的一种黑盒测试方法。通常边界的一种黑盒测试方法。通常边界值分析法是作为对等价类划分法的补充,这值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。种情况下,其测试用例来自等价类的边界。为什么使用边界值分析法?为什么使用边界值分析法?无数的测试实践表明,大量的故障往往无数的测试实践表明,大量的故障往往发生在输入定义域或输出值域的边界上,而发生在输入定义域或输出值域的边界上,而不是在其内部。因此,针对各种边界情况设不是在其内部。因此,针对各种边界情况设计测试用例,通常会取得很好的测试效果。计测试用例,通常会取得很好的测试效果。13怎样用边界值分析法设计测试用例?怎样用边界值
23、分析法设计测试用例?(1)首首先先确确定定边边界界情情况况:通通常常输输入入或或输输出出等价类的边界就是应该着重测试的边界情况。等价类的边界就是应该着重测试的边界情况。(2)选选取取正正好好等等于于、刚刚刚刚大大于于或或刚刚刚刚小小于于边边界界的的值值作作为为测测试试数数据据,而而不不是是选选取取等等价价类类中的典型值或任意值。中的典型值或任意值。14边界值分析使用与等价类划分法相同的划分,只是边界值分析使用与等价类划分法相同的划分,只是边界值分析使用与等价类划分法相同的划分,只是边界值分析使用与等价类划分法相同的划分,只是边界值分析假定错误更多地存在于划分的边界上,因边界值分析假定错误更多地
24、存在于划分的边界上,因边界值分析假定错误更多地存在于划分的边界上,因边界值分析假定错误更多地存在于划分的边界上,因此在等价类的边界上以及两侧的情况设计测试用例。此在等价类的边界上以及两侧的情况设计测试用例。此在等价类的边界上以及两侧的情况设计测试用例。此在等价类的边界上以及两侧的情况设计测试用例。例:测试计算平方根的函数例:测试计算平方根的函数例:测试计算平方根的函数例:测试计算平方根的函数 输入:实数输入:实数输入:实数输入:实数 输出:实数输出:实数输出:实数输出:实数 规格说明:当输入一个规格说明:当输入一个规格说明:当输入一个规格说明:当输入一个0 0或比或比或比或比0 0大的数的时候
25、,大的数的时候,大的数的时候,大的数的时候,返回其正平方根;当输入一个小于返回其正平方根;当输入一个小于返回其正平方根;当输入一个小于返回其正平方根;当输入一个小于0 0的数时,显示错的数时,显示错的数时,显示错的数时,显示错误信息误信息误信息误信息“平方根非法平方根非法平方根非法平方根非法-输入值小于输入值小于输入值小于输入值小于0”0”并返回并返回并返回并返回0 0;库函数;库函数;库函数;库函数Print-LinePrint-Line可以用来输出错误信息。可以用来输出错误信息。可以用来输出错误信息。可以用来输出错误信息。15n n等价类划分:等价类划分:等价类划分:等价类划分:可以考虑作
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 测试 03
限制150内