免费智能真题库 > 历年试卷 > 嵌入式系统设计师 > 2014年下半年 嵌入式系统设计师 上午试卷 综合知识
  第44题      
  知识点:   白盒测试
  关键词:   测试用例   覆盖测试   测试   用例        章/节:   嵌入式系统的项目开发与维护知识       

 
为了对下图所示的程序段进行覆盖测试,必须适当地选择测试用例组。若x,y是两个变量,可选择的用例组共有I、II、UI、IV四组(如下表所示),则实现判定覆盖至少应采用的测试用例组是(44)。
 
 
  A.  I、II、III或I、II、IV
 
  B.  I、II、III或II、III、IV
 
  C.  I、III、IV或II、III、IV
 
  D.  I、III、IV或I、II、IV
 
 
 

 
  第63题    2012年下半年  
   44%
软件测试可分为静态测试和动态测试,下列不属于静态测试的是(63)。
  第60题    2019年下半年  
   71%
软件测试的目的是发现软件的错误。使用白盒测试方法时,确定测试数据应根据(60)和制定的覆盖标准。
  第64题    2013年下半年  
   49%
软件测试可分为静态测试和动态测试,(64)不属于静态测试。
   知识点讲解    
   · 白盒测试
 
       白盒测试
        白盒测试方法一般包括控制流测试(语句覆盖测试、分支覆盖测试、条件覆盖测试、修订的条件/判定覆盖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)根据路径可以获得测试输入数据和测试用例。
               动态数据流异常检查在程序运行时执行,获得的是对数据对象的真实操作序列,克服了静态分析检查的局限,但动态方式检查是沿与测试输入有关的一部分路径进行的,检查的全面性和程序结构覆盖有关。
               程序变异
               程序变异是一种错误驱动测试,是为了查出被测软件在做过其他测试后还剩余一些的小错误。本方法应用于测试工具。
               程序插装
               程序插装是向被测程序中插入操作以实现测试目的方法。程序插装不应该影响被测程序的运行过程和功能。
               有很多的工具有程序插装功能。由于数据记录量大,手工进行将是一件很烦琐的事。
               域测试
               域测试是要判别程序对输入空间的划分是否正确。该方法限制太多,使用不方便,供有特殊要求的测试使用。
               符号求值
               符号求值是允许数值变量取“符号值”以及数值。符号求值可以检查公式的执行结果是否达到程序预期的目的;也可以通过程序的符号执行,产生出程序的路径,用于产生测试数据。符号求值最好使用工具,在公式分支较少时手工推导也是可行的。
   题号导航      2014年下半年 嵌入式系统设计师 上午试卷 综合知识   本试卷我的完整做题情况  
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题    在手机中做本题