免费智能真题库 > 历年试卷 > 系统架构设计师 > 2022年下半年 系统架构设计师 上午试卷 综合知识
  第40题      
  知识点:   动态测试   白盒测试
  关键词:   白盒测试   白盒   测试        章/节:   测试与评审       

 
白盒测试中,测试强度最高的是()。
 
 
  A.  语句覆盖
 
  B.  分支覆盖
 
  C.  判定覆盖
 
  D.  路径覆盖
 
 
 

 
  第33题    2021年下半年  
   36%
软件测试是保障软件质量的重要手段。(33)是指被测试程序不在机器上运行,而采用人工监测和计算机辅助分析的手段对程序进行监测。..
  第38题    2013年下半年  
   43%
以下关于白盒测试方法的叙述中,错误的是(38)。
  第34题    2021年下半年  
   25%
软件测试是保障软件质量的重要手段。(33)是指被测试程序不在机器上运行,而采用人工监测和计算机辅助分析的手段对程序进行监测。..
   知识点讲解    
   · 动态测试    · 白盒测试
 
       动态测试
        动态测试指通过运行程序发现错误,分为黑盒测试法、白盒测试法和灰盒测试法等。
        (1)黑盒法。把被测试对象看成一个黑盒子,测试人员完全不考虑程序的内部结构和处理过程,只在软件的接口处进行测试,依据需求规格说明书,检查程序是否满足功能要求。因此,黑盒测试又称为功能测试或数据驱动测试,使用这种方法,为了做到穷尽测试,至少必须对所有输入数据的各种可能值的排列组合都进行测试。黑盒测试使用所有有效和无效的输入数据来测试程序是不现实的,所以黑盒测试同样不能做到穷尽测试,只能选取少量最有代表性的输入数据,以期用较少的代价暴露出较多的程序错误。常用的黑盒测试用例的设计方法有等价类划分、边界值分析、错误推测和因果图等。
        等价类划分把程序的输入域划分成若干部分,然后从每个部分中选取少数有代表性的数据作为测试用例,每一类代表性数据在测试中的作用等价于这一类中的其他值。划分等价类时,首先把数目极多的输入分成若干个等价类。所谓等价类就是某个输入域的集合,对于一个等价类中的输入值来说,它们揭示程序中错误的作用是等效的。
        边界值分析是一种补充等价类划分的测试用例设计技术,它不选择等价类的任意元素,而选择等价类边界的测试用例。实践证明,为检验边界附近的处理而专门设计测试用例,常常可以取得良好的测试效果。
        错误推测法基于经验和直觉推测程序中所有可能存在的各种错误,有针对性地设计测试用例的方法。基本思想是列举出程序中所有可能的错误和容易发生错误的特殊情况,再根据它们选择测试用例。
        因果图法从自然语言书写的程序规格说明的描述中找出因(输入条件)和果(输出或程序状态的改变),通过因果图转换为判定表。
        (2)白盒法。把测试对象看做一个打开的盒子,测试人员须了解程序的内部结构和处理过程,以检查处理过程的细节为基础,对程序中尽可能多的逻辑路径进行测试,检验内部控制结构和数据结构是否有错,实际的运行状态与预期的状态是否一致。由于白盒测试是结构测试,所以被测对象基本上是源程序,以程序的内部逻辑为基础设计测试用例。常用的白盒测试用例设计方法有基本路径测试、循环覆盖测试及逻辑覆盖测试等。
        逻辑覆盖以程序内部逻辑为基础的测试技术,常用的有语句覆盖、判定覆盖、条件覆盖、条件判定覆盖、修正的条件判断覆盖、条件组合覆盖、点覆盖、边覆盖和路径覆盖等。
        循环覆盖是指覆盖程序中所有的循环,包括单循环及嵌套循环。
        基本路径法在程序控制流程图的基础上,通过分析控制结构的环路复杂性导出基本路径集合,然后设计测试用例,保证这些路径都至少通过一次。
        (3)灰盒法。灰盒测试是一种介于白盒测试与黑盒测试之间的测试,它关注输出对于输入的正确性,同时也关注内部表现,但这种关注不像白盒测试那样详细且完整,而只是通过一些表征性的现象、事件及标志来判断程序内部的运行状态。
        灰盒测试结合了白盒测试和黑盒测试的要素,考虑了用户端、特定的系统知识和操作环境,在系统组件的协同性环境中评价应用软件的设计。
 
       白盒测试
        白盒测试方法一般包括控制流测试(语句覆盖测试、分支覆盖测试、条件覆盖测试、修订的条件/判定覆盖MC/DC、条件组合覆盖测试、路径覆盖测试)、数据流测试、程序变异、程序插桩、域测试和符号求值等。
               控制流测试
               控制流测试依据控制流程图产生测试用例,通过对不同控制结构成分的测试验证程序的控制结构。所谓验证某种控制结构即指使这种控制结构在程序运行中得到执行,也称这一过程为覆盖。以下介绍几种覆盖:
               (1)语句覆盖。语句覆盖要求设计适当数量的测试用例,运行被测程序,使得程序中每一条语句至少被遍历,语句覆盖在测试中主要发现错误语句。
               (2)分支覆盖。分支覆盖要求设计适当数量的测试用例,运行被测程序,使得程序中每个真值分支和假值分支至少执行一次,分支覆盖也称判定覆盖。
               (3)条件覆盖。条件覆盖要求设计适当数量的测试用例,运行被测程序,使得每个判断中的每个条件的可能取值至少满足一次。
               (4)修订的条件/判定覆盖(MC/DC——Modified Condition/Decision Coverage)。修订的条件/判定覆盖要求设计适当数量的测试用例,运行被测程序,使得每个判定中的每个条件都曾独立的影响判定的结果至少一次(独立影响意思是在其他的条件不变的情况下,只改变一个条件,就可影响整个判定的值)。
               对安全性要求比较高的软件,一般采用此覆盖要求。此覆盖要求在测试用例的效率和数量之间较为平衡。
               (5)条件组合覆盖。条件组合覆盖要求设计适当数量的测试用例,运行被测程序,使得每个判断中条件的各种组合至少出现一次,这种方法包含了“分支覆盖”和“条件覆盖”的各种要求。
               (6)路径覆盖。路径覆盖要求设计适当数量的测试用例,运行被测程序,使得程序沿所有可能的路径执行,较大程序的路径可能很多,所以在设计测试用例时,要简化循环次数。
               以上各种覆盖的控制流测试步骤如下:
               (1)将程序流程图转换成控制流图。
               (2)经过语法分析求得路径表达式。
               (3)生成路径树。
               (4)进行路径编码。
               (5)经过译码得到执行的路径。
               (6)通过路径枚举产生特定路径的测试用例。
               控制流图是描述程序控制流的一种图示方式,它由结点和定向边构成。控制流图的结点代表一个基本块,定向边代表控制流的方向。其中要特别注意的是,如果判断中的条件表达式是复合条件,即条件表达式是由一个或多个逻辑运算符连接的逻辑表达式,则需要改变复合条件的判断为一系列单个条件的嵌套的判断。控制流图的基本结构如下图所示。
               
               控制流图基本结构
               数据流测试
               数据流测试是用控制流程图对变量的定义和引用进行分析,查找出未定义的变量或定义了而未使用的变量,这些变量可能是拼错的变量、变量混淆或丢失了语句。数据流测试一般使用工具进行。
               数据流测试通过一定的覆盖准则,检查程序中每个数据对象的每次定义、使用和消除的情况。
               数据流测试步骤:
               (1)将程序流程图转换成控制流图。
               (2)在每个链路上标注对有关变量的数据操作的操作符号或符号序列。
               (3)选定数据流测试策略。
               (4)根据测试策略得到测试路径。
               (5)根据路径可以获得测试输入数据和测试用例。
               动态数据流异常检查在程序运行时执行,获得的是对数据对象的真实操作序列,克服了静态分析检查的局限,但动态方式检查是沿与测试输入有关的一部分路径进行的,检查的全面性和程序结构覆盖有关。
               程序变异
               程序变异是一种错误驱动测试,是为了查出被测软件在做过其他测试后还剩余一些的小错误。本方法应用于测试工具。
               程序插装
               程序插装是向被测程序中插入操作以实现测试目的方法。程序插装不应该影响被测程序的运行过程和功能。
               有很多的工具有程序插装功能。由于数据记录量大,手工进行将是一件很烦琐的事。
               域测试
               域测试是要判别程序对输入空间的划分是否正确。该方法限制太多,使用不方便,供有特殊要求的测试使用。
               符号求值
               符号求值是允许数值变量取“符号值”以及数值。符号求值可以检查公式的执行结果是否达到程序预期的目的;也可以通过程序的符号执行,产生出程序的路径,用于产生测试数据。符号求值最好使用工具,在公式分支较少时手工推导也是可行的。
   题号导航      2022年下半年 系统架构设计师 上午试卷 综合知识   本试卷我的完整做题情况  
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 /
 
第40题    在手机中做本题