免费智能真题库 > 历年试卷 > 系统架构设计师 > 2009年下半年 系统架构设计师 上午试卷 综合知识
第44题      
知识点   软件测试   黑盒测试   黑盒测试法
关键词   测试用例   黑盒测试   软件测试   测试   黑盒   用例      分类   系统开发基础       

 
软件测试是为了发现错误而执行程序的过程。黑盒测试法主要根据(44)来设计测试用例。
 
 
  A.  程序内部逻辑
 
  B.  程序外部功能
 
  C.  程序数据结构
 
  D.  程序流程图
 
 
 

  相关试题     系统开发基础    更多>  
 
  第34题    2013年下半年  
   31%
基于RUP的软件过程是一个迭代过程。一个开发周期包括初始、细化、构建和移交四个阶段,每次通过这四个阶段就会产生一代软件,其中..
  第37题    2012年下半年  
   37%
以下关于软件测试工具的叙述,错误的是 (37)。
  第21题    2009年下半年  
   51%
用户文档主要描述所交付系统的功能和使用方法。下列文档中,(21)属于用户文档。
 


   知识点讲解    
   · 软件测试    · 黑盒测试    · 黑盒测试法
 
       软件测试
        测试是为评价和改进产品质量、识别产品的缺陷和问题而进行的活动。
        软件测试是针对一个程序的行为,在有限测试用例集合上动态验证软件是否达到预期的行为。
        软件测试过程如下:
        (1)拟定测试计划。
        (2)编制测试大纲。
        (3)设计和生成测试用例。
        (4)实施测试。
        (5)生成测试报告。
        软件测试方法:
        .人工测试:采用人工方式进行测试,目的是通过对程序静态结构的检查,找出编译时不能发现的错误。人工测试包括个人复查、抽查和会审等。
        .机器测试:把设计好的测试用例作用于被测程序,比较测试结果和预期结果是否一致。机器测试包括黑盒测试(功能测试)和白盒测试(结构测试)。
        软件测试伴随软件开发和维护过程,通常可以在概念上划分为以下三个阶段:
        .单元测试:也称为模块测试,在模块编写完成且无编译错误后就可以进行。
        .集成测试:也称为组装测试,就是把模块按系统设计说明书的要求组合起来进行测试。
        .系统测试:是将已经确认的软件、计算机硬件、外设和网络等其他因素结合在一起,进行信息系统的各种组装和确认测试。其目的是通过与系统需求相比较,发现所开发的系统与用户需求不符合的地方。
 
       黑盒测试
        黑盒测试又称为数据驱动测试、基于规格的测试、输入输出测试或者功能测试。黑盒测试基于产品功能规格说明书,从用户角度针对产品特定的功能和特性进行验证活动,确认每个功能是否得到完整实现,用户能否正常使用这些功能。
        黑盒测试在不知道系统或组件内部结构的情况下进行,不考虑内部逻辑结构,着眼于程序外部结构,在软件接口处进行测试。黑盒测试主要具有如下功能:
        (1)检查程序功能能否按需求规格说明书的规定正常使用,测试各个功能是否有遗漏,检测是否满足性能等特性要求。
        (2)检测人机交互是否错误,检测数据结构或外部数据库访问是否错误,程序是否能适当地接收输入数据而产生正确的输出结果,并保持外部信息(如数据库或文件等)的完整性。
        (3)检测程序初始化和终止方面的错误。
        黑盒测试方法主要有等价类划分、边界值分析、决策表、因果图、错误推测和功能图法等测试方法,本节主要介绍等价类划分、边界值分析、决策表和元素分析法与错误推测法。
               等价类划分
               等价类是指某个输入域的子集合。在该子集合中,测试某等价类的代表值就等于对这一类其他值的测试,对于揭露程序的错误是等效的。因此,将输入的全部数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据取得较好的测试结果。
               等价类划分有两种情况,即有效等价类和无效等价类。
               (1)有效等价类。对于程序的规格说明来说,它是由合理的、有意义的输入数据构成的集合,利用它可检验程序是否实现了规格说明中所规定的功能和性能。
               (2)无效等价类。与有效等价类相反,它是由对程序的规格说明无意义、不合理的输入数据构成的集合。
               测试用例的设计不仅接收合理的数据,也能经受意外的不合理数据的考验,这样才能确保软件具有较高的可靠性。
               分析可能的输入情况,按照如下几条规则对等价类进行划分。
               (1)在输入条件规定了取值范围或值的个数的情况下,确立一个有效等价类和两个无效等价类。
               例如,若输入条件规定了x的取值为1~100的整数,则等价类划分有效等价类1≤x≤100,两个无效等价类分别为x<1或x>100。
               (2)按照数值集合划分。在输入条件规定了输入值的集合或者规定了“必须如何”的条件下,确立一个有效等价类和一个无效等价类。
               例如,输入条件规定了x的取值为偶数,则有效等价类为x的值为偶数,无效等价类为x的值不为偶数的整数。
               (3)输入条件是一个布尔量的情况,确定一个有效等价类和一个无效等价类。
               (4)规定输入数据取一组值(假定n个),并且程序要在对每一个输入值分别处理的情况下,确立n个有效等价类和一个无效等价类。
               例如,分房方案中对教授、副教授、讲师、助教分别计分,则有效类为4个;无效类为1个。
               (5)按照限制条件或规则划分。在规定输入数据必须遵守的规则的情况下,确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。
               例如,C程序设计语言的语法规定.每个语句应以“;”结束,则其有效类有1个,而无效类有若干个(如以“,”结束、以“:”结束、以空格结束等)。
               (6)在确知已划分的等价类中各元素在程序处理方式不同的情况下,再将该等价类进一步划分为更小的等价类。
               等价类划分后,形成等价类表,见下表。
               
               等价类表样式
               根据等价类表,确定测试用例。首先,为每一个等价类规定唯一编号;其次,设计新的测试用例,使其尽可能多地覆盖尚未被覆盖的有效等价类,重复这一步,直到所有的有效等价类都被覆盖为止;最后,设计新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步,直到所有的无效等价类都被覆盖为止(通常,程序在执行一个错误后不继续检测其他错误,故每次只测一个无效类)。
               边界值分析
               软件测试实践中,大量的错误往往发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部。例如,数组下标、循环控制变量等边界附近往往出现大量错误。因此,作为等价类划分方法的补充,边界值分析方法不是选择等价类的任意元素,而主要是针对各种边界情况设计测试用例。
               常见的边界值一般具有如下情况:
               (1)对16位的整数而言,32767和-32768是边界。
               (2)屏幕上的光标在最左上、最右下位置是边界。
               (3)报表的第一行和最后一行是边界。
               (4)数组元素的第一个和最后一个是边界。
               (5)循环的第0次、第1次和倒数第2次、最后一次是边界。
               边界值分析法应着重测试的情况,一般选取等价类划分的输入和输出的边界正好等于或刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据。
               边界值分析方法具有如下原则。
               (1)如果输入条件规定了值的范围,则应选取刚达到范围的边界值,以及刚刚超越边界的值作为测试的输入数据。
               (2)如果输入条件规定了值的个数,则用略低于最小值、最小值、略高于最小值、正常值、略低于最大值、最大值和略高于最大值作为测试数据。
               (3)如果程序规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例。
               决策表
               决策表又称为判定表,用于分析多种逻辑条件下执行不同操作的技术。在程序设计发展的初期,决策表是程序编写的辅助工具。决策表可以把复杂的逻辑关系和多种条件的组合情况表达明确,与高级程序设计语言中的if-else、switch-case等分支结构语句类似,它将条件判断与执行的动作联系起来。但与程序语言中的控制语句不同的是,决策表能将多个独立的条件和多个动作联系清晰地表示出来。
               决策表的组成如下。
               (1)条件桩:列出了问题的所有条件。通常认为,列出的条件次序无关紧要。
               (2)动作桩:列出了问题规定可能采取的操作,这些操作的排列顺序没有约束。
               (3)条件项:列出了针对条件桩的取值在所有可能情况下的真假值。
               (4)动作项:列出了在条件项的各种取值的有机关联情况下应该采取的动作。
               规则即任何条件组合的特定取值及其相应要执行的操作。在决策表中,贯穿条件项和动作项的列就是规则。显然,决策表中列出多少个条件取值,也就有多少个规则,条件项和动作项就有多少列。
               所有条件都是逻辑结果的决策表称为有限条件决策表。如果条件有多个值,则对应的决策表就叫做扩展条目决策表。决策表用来设计测试用例,条件解释为输入,动作解释为输出。
               决策表适合以下特征的应用程序:
               (1)if-then-else分支逻辑输出。
               (2)输入变量之间存在逻辑关系。
               (3)涉及输入变量子集的计算。
               (4)输入和输出之间存在因果关系。
               (5)很高的圈复杂度。
               构造决策表的步骤:
               ①确定规则的个数。
               有n个条件的决策表有2n个规则(每个条件取真、假值)。
               ②列出所有的条件桩和动作桩。
               ③填入条件项。
               ④填入动作项,得到初始决策表。
               ⑤简化决策表,合并相似规则。
               元素分析法与错误推测法
               元素分析法主要是对测试对象中的各个元素的属性、范围、特点等进行分析,通过对元素的分析,寻找出测试空间和缺陷空间,设计测试用例的方法。
               元素分析法的基本过程如下:
               (1)找出测试对象中的各个元素。
               (2)分析每个元素的特点和属性,确定测试空间与缺陷空间。
               (3)分析元素的组合情况。
               错误推测法是基于经验和直觉的推测,列举出程序中所有可能错误和容易发生错误的特殊情况,有针对性地设计测试用例。
               经验表明,一段程序中已发现的错误数目和尚未发现的错误数目成正比。程序中容易出错的情况如下所示:当输入数据为零时,或者输入或输出的数目允许变化(例如,被检索的或生成的表的项数),或者输入或输出的数目为0和1的情况(例如,表为空或只有一项)等,都较容易发生错误。又如,在单元测试时曾列出许多在模块中常见的错误,以前产品测试中曾经发现的错误等,这些就是经验的总结。
               错误推测法是根据测试人员的经验来确定测试的范围和程度,主要采用如下技术:
               (1)有关软件的设计方法和实现技术。
               (2)有关前期测试阶段结果的知识。
               (3)根据测试类似或相关系统的经验,了解在以前的这些系统中曾在哪些地方出现过缺陷。
               (4)典型的产生错误的情况,如被零除错误等。
               (5)通用的测试经验规则。
 
       黑盒测试法
        黑盒测试也称为功能测试,在完全不考虑软件的内部结构和特性的情况下,测试软件的外部特性。进行黑盒测试主要是为了发现以下几类错误:
        (1)是否有错误的功能或遗漏的功能?
        (2)界面是否有误?输入是否正确接收?输出是否正确?
        (3)是否有数据结构或外部数据库访问错误?
        (4)性能是否能够接受?
        (5)是否有初始化或终止性错误?
        常用的黑盒测试技术有等价类划分、边界值分析、错误推测和因果图等。
               等价类划分
               等价类划分法将程序的输入域划分为若干等价类,然后从每个等价类中选取一个代表性数据作为测试用例。每一类的代表性数据在测试中的作用等价于这一类中的其他值。这样就可以用少量代表性的测试用例取得较好的测试效果。等价类划分有两种不同的情况:有效等价类和无效等价类。在设计测试用例时,要同时考虑这两种等价类。
               定义等价类的原则如下:
               (1)在输入条件规定了取值范围或值的个数的情况下,可以定义一个有效等价类和两个无效等价类。
               (2)在输入条件规定了输入值的集合或规定了“必须如何”的条件的情况下,可以定义一个有效等价类和一个无效等价类。
               (3)在输入条件是一个布尔量的情况下,可以定义一个有效等价类和一个无效等价类。
               (4)在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可以定义n个有效等价类和一个无效等价类。
               (5)在规定了输入数据必须遵守的规则的情况下,可定义一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。
               (6)在确知已划分的等价类中,各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步地划分为更小的等价类。
               定义好等价类之后,建立等价类表,并为每个等价类编号。在设计一个新的测试用例时,使其尽可能多地覆盖尚未覆盖的有效等价类,不断重复,最后使得所有有效等价类均被测试用例所覆盖。然后设计一个新的测试用例,使其只覆盖一个无效等价类。
               边界值分析
               输入的边界比中间更加容易发生错误,因此用边界值分析来补充等价类划分的测试用例设计技术。边界值分析选择等价类边界的测试用例,既注重于输入条件边界,又适用于输出域测试用例。
               对边界值设计测试用例应遵循的原则如下:
               (1)如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据。
               (2)如果输入条件规定了值的个数,则用最大个数、最小个数、比最小个数少1、比最大个数多1的数据作为测试数据。
               (3)根据规格说明的每个输出条件,使用上述两条原则。
               (4)如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例。
               (5)如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构边界上的值作为测试用例。
               (6)分析规格说明,找出其他可能的边界条件。
               错误推测
               错误推测是基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性地设计测试用例的方法。其基本思想是列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据它们选择测试用例。
               因果图
               因果图法是从自然语言描述的程序规格说明中找出因(输入条件)和果(输出或程序状态的改变),通过因果图转换为判定表。
               利用因果图导出测试用例需要经过以下几个步骤:
               (1)分析程序规格说明的描述中,哪些是原因,哪些是结果。原因常常是输入条件或是输入条件的等价类,而结果是输出条件。
               (2)分析程序规格说明的描述中语义的内容,并将其表示成连接各个原因与各个结果的“因果图”。
               (3)标明约束条件。由于语法或环境的限制,有些原因和结果的组合情况是不可能出现的。为表明这些特定的情况,在因果图上使用若干个标准的符号标明约束条件。
               (4)把因果图转换成判定表。
               (5)为判定表中每一列表示的情况设计测试用例。
               这样生成的测试用例(局部,组合关系下的)包括了所有输入数据的取“真”和取“假”的情况,构成的测试用例数据达到最少,且测试用例数据随输入数据数目的增加而增加。


 题号导航      2009年下半年 系统架构设计师 上午试卷 综合知识   本试卷我的完整做题情况 
1 /
2 /
3 /
4 /
5 /
6 /
7 /
8 /
9 /
10 /
11 /
12 /
13 /
14 /
15 /
 
16 /
17 /
18 /
19 /
20 /
21 /
22 /
23 /
24 /
25 /
26 /
27 /
28 /
29 /
30 /
 
31 /
32 /
33 /
34 /
35 /
36 /
37 /
38 /
39 /
40 /
41 /
42 /
43 /
44 /
45 /
 
46 /
47 /
48 /
49 /
50 /
51 /
52 /
53 /
54 /
55 /
56 /
57 /
58 /
59 /
60 /
 
61 /
62 /
63 /
64 /
65 /
66 /
67 /
68 /
69 /
70 /
71 /
72 /
73 /
74 /
75 /
 
↓第44题