免费智能真题库 > 历年试卷 > 软件评测师 > 2021年下半年 软件评测师 上午试卷 综合知识
  第62题      
  知识点:   最少测试用例数计算   sizeof
  关键词:   IO   表达式   测试用例   测试   用例        章/节:   测试技术的分类       

 
对于逻辑表达式(version==Z_NULL‖version[0]!=ZLIB_VERSION[0]stream_size!=(int)(sizeof(z_stream))),需要()个测试用例才能完成分支条件组合测试。
 
 
  A.  2
 
  B.  4
 
  C.  8
 
  D.  16
 
 
 

   知识点讲解    
   · 最少测试用例数计算    · sizeof
 
       最少测试用例数计算
        为实现测试的逻辑覆盖,必须设计足够多的测试用例,并使用这些测试用例执行被测程序,实施测试。我们关心的是,对某个具体程序来说,至少要设计多少测试用例。这里提供一种估算最少测试用例数的方法。
        我们知道,结构化程序是由3种基本控制结构组成的。这3种基本控制结构就是:
        . 顺序型——构成串行操作;
        . 选择型——构成分支操作;
        . 重复型——构成循环操作。
        为了把问题化简,避免出现测试用例极多的组合爆炸,把构成循环操作的重复型结构用选择结构代替。也就是说,并不指望测试循环体所有的重复执行,而是只对循环体检验一次。这样,任一循环便改造成进入循环体或不进入循环体的分支操作了。
        如下图所示给出了类似于流程图的N-S图表示的基本控制结构(图中A、B、C、D、S均表示要执行的操作,P是可取真假值的谓词,Y表真值,N表假值)。其中下图(c)和下图(d)两种重复型结构代表了两种循环。在作了如上简化循环的假设以后,对于一般的程序控制流,我们只考虑选择型结构。事实上它已经能体现顺序型和重复型结构了。
        
        N-S图表示的基本控制结构
        例如,如下图所示表达了两个顺序执行的分支结构。两个分支谓词P1和P2取不同值时,将分别执行a或b及c或d操作。显然,要测试这个小程序,需要至少提供4个测试用例才能做到逻辑覆盖。使得ac、ad、bc及bd操作均得到检验。其实,这里的4是图中第1个分支谓词引出的两个操作,及第2个分支谓词引出的两个操作组合起来而得到的,即2×2=4。并且,这里的2是由于两个并列的操作,1+1=2而得到的。
        
        两个串行的分支结构的N-S图
        对于一般的、更为复杂的问题,估算最少测试用例数的原则也是同样的。现以下图所示的程序为例。该程序中共有9个分支谓词,尽管这些分支结构交错起来似乎十分复杂,很难一眼看出应至少需要多少个测试用例,但如果仍用上面的方法,也是很容易解决的。我们注意到该图可分上下两层:分支谓词1的操作域是上层,分支谓词8的操作域是下层。这两层正像前面简单例中的P1和P2的关系一样。只要分别得到两层的测试用例个数,再将其相乘,即得总的测试用例数。这里需要首先考虑较为复杂的上层结构。谓词1不满足时要做的操作又可进一步分解为两层,这就是如下图所示中的图(a)和(b)。它们所需测试用例个数分别为1+1+1+1+1=5和1+1+1=3。因而两层组合,得到5×3=15。于是整个程序结构上层所需测试用例数为1+15=16,而下层十分显然为3。故最后得到整个程序所需测试用例数至少为16×3=48。
        
        计算最少测试用例数实例
        
        最少测试用例数计算
 
       sizeof
        sizeof用于计算表达式或数据类型的字节数,其运算结果与系统相关。例如,对于下面的数组定义,可用“sizeof(a)/sizeof(int)”计算出数组a的元素个数为7。
        
   题号导航      2021年下半年 软件评测师 上午试卷 综合知识   本试卷我的完整做题情况  
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 /
 
第62题    在手机中做本题