SE1201-lecture14 黑盒测试方法_第1页
SE1201-lecture14 黑盒测试方法_第2页
SE1201-lecture14 黑盒测试方法_第3页
SE1201-lecture14 黑盒测试方法_第4页
SE1201-lecture14 黑盒测试方法_第5页
已阅读5页,还剩65页未读 继续免费阅读

下载本文档

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

文档简介

1、软件工程,刘竹松,欢迎各位同学光临本科生课程,黑盒测试方法,一、软件测试技术的分类 二、等价类的划分 三、边界值分析法 四、因果图法 五、判定表 六、域测试模型,一、软件测试技术的分类,静态黑盒测试 动态黑盒测试 静态白盒测试 动态白盒测试,3,静态与动态,静态只是检查和审阅 动态运行和使用软件,4,黑盒与白盒,黑盒:软件测试人员只需知道软件要做什么即可,无法看到盒子中是如何运行的。 白盒:软件测试人员可以访问程序员的代码,并通过检查代码来测试,可以看到盒子里面。,5,静态黑盒测试,对产品说明书进行高级审查 设身处地为用户着想 研究现有的标准和规范 审查和测试同类软件,6,静态黑盒测试,测试标

2、准: 1、公司惯用语和约定 2、行业要求 3、国家标准 4、硬件和网络标准 5、图形用户界面(GUI)。,7,黑盒测试的测试用例设计,等价类划分 边界值分析 因果图 判定表,8,二、等价类划分,等价类划分是一种典型的黑盒测试方法,使用这一方法时,完全不考虑程序的内部结构,只依据程序的规格说明来设计测试用例。 等价类划分方法把所有可能的输入数据,即程序的输入域划分成若干部分,然后从每一部分中选取少数有代表性的数据做为测试用例。,9,使用这一方法设计测试用例要经历划分等价类(列出等价类表)和选取测试用例两步。 划分等价类等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都

3、是等效的。测试某等价类的代表值就等价于对这一类其它值的测试。,10,等价类的划分有两种不同的情况: 有效等价类:是指对于程序的规格说明来说,是合理的,有意义的输入数据构成的集合。 无效等价类:是指对于程序的规格说明来说,是不合理的,无意义的输入数据构成的集合。 在设计测试用例时,要同时考虑有效等价类和无效等价类的设计。,11,划分等价类等价类的原则。(1) 如果输入条件规定了取值范围,或值的个数,则可以确立一个有效等价类和两个无效等价类。,12,例:在程序的规格说明中,对输入条件有一句话: “ 项数可以从1到999 ” 则有效等价类是“1项数999” 两个无效等价类是“项数1”和“项 数999

4、”。在数轴上表示成:,13,例:程序规格说明中提到: “学生允许选修2至4门课” 则有效等价类是“选课2至4门” 两个无效等价类是“只选一门或未选课”和“选课超过4门”。,14,(2) 如果输入条件规定了输入值的集合,或者是规定了“必须如何”的条件,这时可确立一个有效等价类和一个无效等价类。,15,例:在Pascal语言中对变量标识符规定为“以字母打头的串”。那么所有以字母打头的构成有效等价类,而不在此集合内(不以字母打头)的归于无效等价类。,16,例:某程序的规格说明中提到的输入条件包括: “统计全国各省、市、自治区的人口 ” 则有效等价类是“国内省、市、自治区”, 无效等价类是“非国内省、

5、市、自治区”。,17,(3) 如果输入条件是一个布尔量,则可以确定一个有效等价类和一个无效等价类。(4) 如果规定了输入数据的一组值,而且程序要对每个输入值分别进行处理。这时可为 每一个输入值确立一个有效等价类,此外针对这组值确立一个无效等价类,它是所有不允许的输入值的集合。,18,例5:在教师上岗方案中规定对教授、副教授、讲师和助教分别计算分数,做相应的处理。因此可以确定4个有效等价类为教授、副教授、讲师和助教,一个无效等价类,它是所有不符合以上身分的人员的输入值的集合。,19,(5) 如果规定了输入数据必须遵守的规则,则可以确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规

6、则)。,20,例6,Pascal语言规定 “一个语句必须以分号;结束”。这时,可以确定一个有效等价类 “以;结束”,若干个无效等价类 “以:结束”、“以,结束”、“以 结束”、“以LF结束”等。,21,确立测试用例在确立了等价类之后,建立等价类表,列出所有划分出的等价类。,22,再从划分出的等价类中按以下原则选择测试用例:(1) 为每一个等价类规定一个唯一编号;(2) 设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖的有效等价类,重复这一步,直到所有的有效等价类都被覆盖为止;(3)设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步,直到所有的无效等价类都被覆盖为止。,23

7、,用等价类划分法设计测试用例的实例 例: 在某一PASCAL语言版本中规定:“标识符是由字母开头,后跟字母或数字的任意组合构成。有效字符数为8个,最大字符数为80个。” 并且规定:“标识符必须先说明,再使用。” “在同一说明语句中,标识符至少必须有一个。”,24,用等价类划分的方法,建立输入等价类表:,25,在某一PASCAL语言版本中规定:“标识符是由字母开头,后跟字母或数字的任意组合构成。有效字符数为8个,最大字符数为80个。” 并且规定:“标识符必须先说明,再使用。” “在同一说明语句中,标识符至少必须有一个。”,下面选取了9个测试用例,它们覆盖了所有的等价类。 VAR x,T123a5

8、c7:REAL; BEGIN x := 3.414; T123a5c7 := 2.732; . (1), (2), (3), (4), (5), (6) VAR 2T:REAL; (7) VAR T$:CHAR; (8),26,VAR GOTO:INTEGER; (9) VAR :REAL; (10) VAR T12345678:REAL; (11) VAR T12345.:REAL; (12) 多于80个字符 VAR PAR:REAL; (13) BEGIN . PAP := SIN (3.14 * 0.8) / 6; VAR x,:REAL; (14),27,举例,根据下面给出的规格说明,

9、利用等价类划分的方法,给出足够的测试用例。 “一个程序读入3个整数,把这三个数值看作一个三角形的3条边的长度值。这个程序要打印出信息,说明这个三角形是不等边的、是等腰的、还是等边的。”,28,29,30,31,32,举例,我们可以设三角形的3条边分别为A,B,C。如果它们能够构成三角形的3条边,必须满足: A0,B0,C0,且A+BC,B+CA,A+CB。 如果是等腰的,还要判断A=B,或B=C,或A=C。 如果是等边的,则需判断是否A=B,且B=C,且A=C。,33,举例,34,举例,35,举例,36,某城市电话号码由三部分组成。它们的名称和内容分别是: 地区码:空白或三位数字; 前 缀:非

10、0或1的三位数字; 后 缀:4位数字。 假定被测程序能接受一切符合上述规定的电话号码,拒绝所有不符合规定的电话号码。根据该程序的规格说明,作等价类的划分,并设计测试方案。,37,划分等价类,38,设计测试用例,39,作业1:有三个无符号整型数a 、b 、c ,由键盘输入,输出其中最大数。试分别用等价类划分和边界值分析的方法设计测试用例。,40,三、边界值分析,边界值分析也是一种黑盒测试方法,是对等价类划分方法的补充。 人们从长期的测试工作经验得知,大量的错误是发生在输入或输出范围的边界上,而不是在输入范围的内部。因此针对各种边界情况设计测试用例,可以查出更多的错误。,41,比如,在做三角形计算

11、时,要输入三角形的三个边长:A、B和C。 我们应注意到这三个数值应当满足 A0、B0、C0、 ABC、ACB、BCA,才能构成三角形。但如果把六个不等式中的任何一个大于号“”错写成大于等于号“”,那就不能构成三角形。问题恰出现在容易被疏忽的边界附近。,42,这里所说的边界是指,相当于输入等价类和输出等价类而言,稍高于其边界值及稍低于其边界值的一些特定情况。 使用边界值分析方法设计测试用例,首先应确定边界情况。应当选取正好等于,刚刚大于,或刚刚小于边界的值做为测试数据,而不是选取等价类中的典型值或任意值做为测试数据。实践证明为检验边界附近的处理专门设计测试用例,常常取得良好的测试效果。,43,边

12、界值设计原则,对边界值设计测试用例,应遵循以下几条原则: 如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据。 例:程序规格说明中规定: “重量在10公斤至50公斤范围内的邮件,其邮费计算公式为” 则作为测试用例,我们应选取10、50、10.01、49.99、9.99及50.01。,44,2.如果输入条件规定了值的个数,则用最大个数、最小个数、比最小个数少一、比最大个数多一的数作为测试数据。 例:程序规格说明中规定: “某输入文件可包含1至255个记录” 则作为测试用例,我们应选取1、255、0及256。,45,根据规格说明的每个输出条件,

13、使用前面的原则1。 根据规格说明的每个输出条件,应用前面的原则2。 如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例。 如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试用例。 分析规格说明,找出其他可能的边界条件。,46,其他一些边界条件,另一种看起来很明显的软件缺陷来源是当软件要求输入时(比如在文本框中),不是没有输入正确的信息,而是根本没有输入任何内容,单单按了Enter键。这种情况在产品说明书中常常忽视,程序员也可能经常遗忘,但是在实际使用中却时有发生。程序员总会习惯性的认为用户要么输入信息,不管是看起来

14、合法的或非法的信息,要不就会选择Cancel键放弃输入,如果没有对空值进行好的处理的话,恐怕程序员自己都不知道程序会引向何方。 正确的软件通常应该将输入内容默认为合法边界内的最小值或者合法区间内某个合理值,否则返回错误提示信息。 因为这些值通常在软件中进行特殊处理,所以不要把它们与合法情况和非法情况混在一起,而要建立单独的等价区间。,47,边界值法举例,找零钱最佳组合假设商店货品价格(R)皆不大於100元(且为整数),若顾客付款在100元内(P),求找给顾客之最少货币个(张)数?(货币面值50元(N50),10元(N10),5元(N5),1元(N1)四种),48,一、分析输入的情形价格: R1

15、00 0100 R=P=100 PR 二、分析输出情形N50=1N50=01=N10=4N10=0N5=1N5=01=N1=4N1=0,49,三、分析规格中每一决策点之情形,以RR1,RR2,RR3表示计算要找50,10,5元货币数时之剩余金额。 R100 R100 P=50 RR2=10 RR3=5,50,四、由上述之输入输出条件组合出可能的情形R100R100 0R=100,PR 0R=100,R=P=100,RR=50 0R=100,R=P=100,RR=49 0R=100,R=P=100,RR=10 0R=100,R=P=100,RR=9 0R=100,R=P=100,RR=5 0R=

16、100,R=P=100,RR=4 0R=100,R=P=100,RR=1 0R=100,R=P=100,RR=0,51,五、为满足以上之各种情形,测试资料设计如下:1.货品价格=1012.货品价格=03.货品价格=-14.货品价格=100,付款金额=1015.货品价格=100,付款金额=996.货品价格=50,付款金额=1007.货品价格=51,付款金额=1008.货品价格=90,付款金额=1009.货品价格=91,付款金额=10010.货品价格=95,付款金额=10011.货品价格=96,付款金额=10012.货品价格=99,付款金额=10013.货品价格=100,付款金额=100,52,四

17、、因果图,因果图的适用范围如果在测试时必须考虑输入条件的各种组合,可使用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来设计测试用例,这就需要利用因果图。因果图方法最终生成的就是判定表。它适合于检查程序输入条件的各种组合情况。,53,用因果图生成测试用例的基本步骤(1) 分析软件规格说明描述中,哪些是原因 (即输入条件或输入条件的等价类),哪些是结果 (即输出条件),并给每个原因和结果赋予一个标识符。(2) 分析软件规格说明描述中的语义,找出原因与结果之间,原因与原因之间对应的是什么关系? 根据这些关系,画出因果图。,54,(3) 由于语法或环境限制,有些原因与原因之间,原因与结果之

18、间的组合情况不可能出现。为表明这些特殊情况,在因果图上用一些记号标明约束或限制条件。(4) 把因果图转换成判定表。(5) 把判定表的每一列拿出来作为依据,设计测试用例。,55,在因果图中出现的基本符号通常在因果图中用Ci表示原因,用Ei表示结果,各结点表示状态,可取值“0”或“1”。“0”表示某状态不出现,“1”表示某状态出现。 主要的原因和结果之间的关系有:,56,表示约束条件的符号为了表示原因与原因之间,结果与结果之间可能存在的约束条件,在因果图中可以附加一些表示约束条件的符号。,57,a、b不能同时为1,a、b、c不能同时为0,a、b有且只有一个为1,a为1,则b必须为1,a为1,则b必须为0,例,某个软件的规格说明中包含这样的要求: “第一列字符必须是A或B,第二列字符必须是一个数字,在此情况下进行文件的修改。但如果第一列字符不正确,则给出信息L;如果第二列字符不是数字,则给出信息M。”,58,原因: 1第一列字符是A; 2第一列字符是B; 3第二列字符是数字。 结果: 21修改文件; 22给出信息L; 23给出信息M。,59,“第一列字符必须是A或B,第二列字符必须是一个数字,在此情况下进行文件的修

温馨提示

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

评论

0/150

提交评论