免费智能真题库 > 历年试卷 > 信息系统管理工程师 > 2011年上半年 信息系统管理工程师 上午试卷 综合知识
  第29题      
  知识点:   测试的方法   功能性   黑盒测试
  关键词:   黑盒测试   需求   测试   黑盒        章/节:   系统实施基础知识       

 
黑盒测试注重于被测试软件的功能性需求,主要用于软件的后期测试。(29)不能用黑盒测试检查出来。
 
 
  A.  功能不对或遗漏错误
 
  B.  界面错误
 
  C.  外部数据库访问错误
 
  D.  程序控制结构错误
 
 
 

 
  第52题    2016年上半年  
   27%
完整的软件测试需要经过(52)。
  第52题    2018年上半年  
   50%
以下选项中, ( )不属于系统测试的范畴。
  第52题    2020年下半年  
   34%
黑盒测试不能发现(52)。
   知识点讲解    
   · 测试的方法    · 功能性    · 黑盒测试
 
       测试的方法
        信息系统测试与工程产品的测试方法一样,常用的有两种方法。一种是不了解产品的内部结构,但对具体的功能有要求,可通过检测每一项功能是否能被正常使用来说明产品是否合格。另一种是知道产品的内部过程,通过检测产品的内部动作是否按照说明书的规定正常运行来考察产品是否合格。前一种方法被称为黑盒测试,后一种方法被称为白盒测试。
        对软件进行测试的主要方法如下图所示。
        
        软件测试的主要方法
        人工测试指的是采用人工方式进行测试。目的是通过对程序静态结构的检查,找出编译时不能发现的错误。经验表明,组织良好的人工测试可以发现程序中30%~70%的编码错误和逻辑设计错误。机器测试是把事先设计好的测试用例作用于被测程序,比较测试结果和预期结果是否一致,如果不一致,则说明被测程序可能存在错误。人工测试有一定的局限性,但机器测试只能发现错误的症状,不能对问题进行定位。人工测试一旦发现错误,就能确定问题的位置及是什么错误等,而且能一次发现多处错误。因此应根据实际情况来选择测试方法。
               人工测试
               人工测试又被称为代码复审。可通过阅读程序来查找错误。其内容包括:检查代码和设计是否一致;检查代码逻辑表达是否正确和完整;检查代码结构是否合理,等。主要有以下三种方法。
               (1)个人复查,指程序员本人对程序进行检查,发现程序中的错误。由于心理上的原因和思维上的习惯性,一般不太容易发现自己的错误,则更不可能纠正功能理解的错误。因此这种方法主要针对小规模程序,它的效率不高。
               (2)走查,通常由3~5人组成测试小组,测试人员也是没有参加该项目开发的有经验的程序设计员。在走查之前,应先阅读相关的软件资料和源程序,然后测试人员扮演计算机角色,将一批有代表性的测试数据沿程序的逻辑走一遍,监视程序的执行情况,随时记录程序的踪迹,发现程序中的错误。由于人工检查程序很慢,因此只能选择少量简单的用例来进行,通过“走”的进程来不断地发现程序中的错误。
               (3)会审,测试人员的构成与走查类似,要求测试人员在会审之前应充分阅读有关的资料(如系统分析、系统设计说明书、程序设计说明书、源程序等),根据经验列出尽可能多的典型错误,然后把它们制成表格。根据这些错误清单(也叫检查表),提出一些问题,供在会审时使用。在会审时,由编程人员逐句讲解程序,测试人员逐个审查、提问,讨论可能出现的错误。实践证明,编程人员在讲解、讨沦的过程中能发现自己以前没有发现的错误,使问题暴露出来。例如在讨论某个问题的修改方法时,可能会发现涉及到模块间接口等问题,从而提高了软件质量。会审后要将发现的错误登记、分析、归类,一份交给程序员,另一份由自己妥善保管,以便再次组织会审时使用。
               在代码复审时,需要注意两点:一是在代码审查时,必须要检查被测软件是否正确通过了编译,只有正确了之后才能进行代码审查;二是在代码复审期间一定要保证有足够的时间让测试小组对问题进行充分讨论,只有这样才能有效地提高测试效率,避免走弯路。
               机器测试
               机器测试指在计算机上直接用测试用例运行被测程序,从而发现程序错误。机器测试分为黑盒测试和白盒测试两种。
               (1)黑盒测试。
               黑盒测试也被称为功能测试,将软件看成黑盒子,在完全不考虑软件的内部结构和特性的情况下,测试软件的外部特性。根据系统分析说明书设计测试用例,通过输入和输出的特性检测是否满足指定的功能。所以测试只作用于程序的接口处,进行黑盒测试主要是为了发现以下几类错误:
               .是否有错误的功能或遗漏的功能。
               .界面是否有误,输入是否能够正确接受,输出是否正确。
               .是否有数据结构或外部数据库访问错误。
               .性能是否能够接受。
               .是否有初始化或终止性错误。
               (2)白盒测试。
               白盒测试也被称为结构测试。将软件看成透明的白盒,根据程序的内部结构和逻辑来设计测试用例,对程序的路径和过程进行测试,检查是否满足设计的需要。其原则是:
               .程序模块中的所有独立路径至少被执行一次。
               .在所有的逻辑判断中,取“真”和取“假”的两种情况至少都能被执行一次。
               .每个循环都应在边界条件和一般条件下各被执行一次。
               .测试程序内部数据结构的有效性等。
 
       功能性
        功能性是指当软件在指定条件下使用时,软件产品满足明确和隐含要求功能的能力。
               适合性
               适合性是指软件产品为指定的任务和用户目标提供一组合适的功能的能力。
               准确性
               准确性是指软件产品具有所需精确度的正确或相符的结果及效果的能力。
               互操作性
               互操作性是指软件产品与一个或更多的规定系统进行交互的能力。
               保密安全
               保密安全是指软件产品保护信息和数据的能力,以使未授权的人员或系统不能阅读或修改这些信息和数据,但不拒绝授权人员或系统对它们的访问。
               功能性依从性
               功能性依从性是指软件产品依附于同功能性相关的标准、约定或法规以及类似规定的能力。
 
       黑盒测试
        黑盒测试又称为数据驱动测试、基于规格的测试、输入输出测试或者功能测试。黑盒测试基于产品功能规格说明书,从用户角度针对产品特定的功能和特性进行验证活动,确认每个功能是否得到完整实现,用户能否正常使用这些功能。
        黑盒测试在不知道系统或组件内部结构的情况下进行,不考虑内部逻辑结构,着眼于程序外部结构,在软件接口处进行测试。黑盒测试主要具有如下功能:
        (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)通用的测试经验规则。
   题号导航      2011年上半年 信息系统管理工程师 上午试卷 综合知识   本试卷我的完整做题情况  
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 /
 
第29题    在手机中做本题