免费智能真题库 > 历年试卷 > 系统架构设计师 > 2011年下半年 系统架构设计师 上午试卷 综合知识
  第41题      
  知识点:   测试的类型   文本   异常
  关键词:   静态分析        章/节:   测试与评审       

 
静态分析通过解析程序文本从而识别出程序语句中可能存在的缺陷和异常之处;静态分析所包含的阶段中,(41)的主要工作是找出输入变量和输出变量之间的依赖关系。
 
 
  A.  控制流分析
 
  B.  数据使用分析
 
  C.  接口分析
 
  D.  信息流分析
 
 
 

 
  第42题    2020年下半年  
   36%
自动化测试工具主要使用脚本技术来生成测试用例,其中,(42)是录制手工测试的测试用例时得到的脚本;(43)是将测试输入存储在独立..
  第39题    2015年下半年  
   47%
(38)的目的是检查模块之间,以及模块和已集成的软件之间的接口关系,并验证已集成的软件是否符合设计要求。其测试的技术依据是..
  第43题    2017年下半年  
   38%
软件确认测试也称为有效性测试,主要验证(42)。确认测试计划通常是在需求分析阶段完成的。根据用户的参与程度不同,软件确认测..
   知识点讲解    
   · 测试的类型    · 文本    · 异常
 
       测试的类型
        软件测试方法一般分为两大类,分别为动态测试和静态测试。
               动态测试
               动态测试指通过运行程序发现错误,分为黑盒测试法、白盒测试法和灰盒测试法等。
               (1)黑盒法。把被测试对象看成一个黑盒子,测试人员完全不考虑程序的内部结构和处理过程,只在软件的接口处进行测试,依据需求规格说明书,检查程序是否满足功能要求。因此,黑盒测试又称为功能测试或数据驱动测试,使用这种方法,为了做到穷尽测试,至少必须对所有输入数据的各种可能值的排列组合都进行测试。黑盒测试使用所有有效和无效的输入数据来测试程序是不现实的,所以黑盒测试同样不能做到穷尽测试,只能选取少量最有代表性的输入数据,以期用较少的代价暴露出较多的程序错误。常用的黑盒测试用例的设计方法有等价类划分、边界值分析、错误推测和因果图等。
               等价类划分把程序的输入域划分成若干部分,然后从每个部分中选取少数有代表性的数据作为测试用例,每一类代表性数据在测试中的作用等价于这一类中的其他值。划分等价类时,首先把数目极多的输入分成若干个等价类。所谓等价类就是某个输入域的集合,对于一个等价类中的输入值来说,它们揭示程序中错误的作用是等效的。
               边界值分析是一种补充等价类划分的测试用例设计技术,它不选择等价类的任意元素,而选择等价类边界的测试用例。实践证明,为检验边界附近的处理而专门设计测试用例,常常可以取得良好的测试效果。
               错误推测法基于经验和直觉推测程序中所有可能存在的各种错误,有针对性地设计测试用例的方法。基本思想是列举出程序中所有可能的错误和容易发生错误的特殊情况,再根据它们选择测试用例。
               因果图法从自然语言书写的程序规格说明的描述中找出因(输入条件)和果(输出或程序状态的改变),通过因果图转换为判定表。
               (2)白盒法。把测试对象看做一个打开的盒子,测试人员须了解程序的内部结构和处理过程,以检查处理过程的细节为基础,对程序中尽可能多的逻辑路径进行测试,检验内部控制结构和数据结构是否有错,实际的运行状态与预期的状态是否一致。由于白盒测试是结构测试,所以被测对象基本上是源程序,以程序的内部逻辑为基础设计测试用例。常用的白盒测试用例设计方法有基本路径测试、循环覆盖测试及逻辑覆盖测试等。
               逻辑覆盖以程序内部逻辑为基础的测试技术,常用的有语句覆盖、判定覆盖、条件覆盖、条件判定覆盖、修正的条件判断覆盖、条件组合覆盖、点覆盖、边覆盖和路径覆盖等。
               循环覆盖是指覆盖程序中所有的循环,包括单循环及嵌套循环。
               基本路径法在程序控制流程图的基础上,通过分析控制结构的环路复杂性导出基本路径集合,然后设计测试用例,保证这些路径都至少通过一次。
               (3)灰盒法。灰盒测试是一种介于白盒测试与黑盒测试之间的测试,它关注输出对于输入的正确性,同时也关注内部表现,但这种关注不像白盒测试那样详细且完整,而只是通过一些表征性的现象、事件及标志来判断程序内部的运行状态。
               灰盒测试结合了白盒测试和黑盒测试的要素,考虑了用户端、特定的系统知识和操作环境,在系统组件的协同性环境中评价应用软件的设计。
               静态测试
               静态测试指被测试程序不在机器上运行,而采用人工检测和计算机辅助静态分析的手段对程序进行检测。静态分析中进行人工测试的主要方法有桌前检查(Desk Checking)、代码审查和代码走查。经验表明,使用这种方法能够有效地发现30%~70%的逻辑设计和编码错误。
               (1)桌前检查。由程序员自己检查自己编写的程序。程序员在程序通过编译之后,进行单元测试设计之前,对源程序代码进行分析、检验,并补充相关的文档,目的是发现程序中的错误。检查项目包括检查变量的交叉引用表;检查标号的交叉引用表;检查子程序、宏、函数;等值性检查;常量检查;标准检查;风格检查;比较控制流;选择、激活路径;对照程序的规格说明,详细阅读源代码;补充文档。
               由于程序员熟悉自己的程序和自身的程序设计风格,这种桌前检查可以节省很多的检查时间,但应避免主观片面性。
               (2)代码审查。代码审查是由若干程序员和测试员组成一个会审小组,通过阅读、讨论和争议,对程序进行静态分析的过程。代码审查分两步。
               第一步,小组负责人提前把设计规格说明书、控制流程图、程序文本及有关要求、规范等分发给小组成员,作为评审的依据。小组成员在充分阅读这些材料之后,进入审查的第二步。
               第二步,召开程序审查会。在会上,首先由程序员逐句讲解程序的逻辑。在此过程中,程序员或其他小组成员可以提出问题,展开讨论,审查错误是否存在。实践表明,程序员在讲解过程中能发现许多原来自己没有发现的错误,而讨论和争议则促进了问题的暴露。
               在会前,应当给会审小组每个成员准备一份常见错误的清单,把以往所有可能发生的常见错误罗列出来,供与会者对照检查,以提高会审的实效。这个常见错误清单也叫做检查表,它把程序中可能发生的各种错误进行分类,对每一类列举出尽可能多的典型错误,然后把它们制成表格,供在会审时使用。
               (3)代码走查。代码走查与代码审查基本相同,其过程也分为两步。
               第一步,把材料先发给走查小组每个成员,让他们认真研究程序,然后再开会。
               第二步,开会的程序与代码会审不同,不是简单地读程序和对照错误检查表进行检查,而是让与会者“充当”计算机。即首先由测试组成员为被测程序准备一批有代表性的测试用例,提交给走查小组。走查小组开会,集体扮演计算机角色,让测试用例沿程序的逻辑运行一遍,随时记录程序的踪迹,供分析和讨论使用。
               :使用静态测试的方法也可以实现白盒测试。例如,使用人工检查代码的方法来检查代码的逻辑问题,也属于白盒测试的范畴。
 
       文本
        文本指各种字符,包括数字、字母和文字等。文本可以先在Word文字处理软件中编辑制作,然后导入集成到多媒体系统中,也可以直接在图形/图像设计软件中编辑制作。
 
       异常
        异常是一种形式的异常控制流,它一部分是由硬件实现的,一部分是由操作系统实现的。因为它们有一部分是由硬件实现的,所以具体细节将随系统的不同而有所不同。然而,对于每个系统而言,基本的思想都是相同的。
        异常(exception)就是控制流中的突变,用来响应处理器状态中的某些变化。异常可以分为四类:中断(interrupt)、陷阱(trap)、故障(fault)和中止(abort)。下表对这些类别的属性做了小结。
        
        异常的类别
        (1)陷阱。陷阱是有意的异常,是执行一条指令的结果。就像中断处理程序一样,陷阱处理程序将控制返回到下一条指令。陷阱最重要的用途是在用户程序和内核之间提供一个像过程一样的接口,叫做系统调用。
        用户程序经常需要向内核请求服务,例如读一个文件、创建一个新的进程、加载一个新的程序或者中止当前进程。为了允许对这些内核服务的受控的访问,处理器提供了一条特殊的syscall指令,当用户程序想要请求服务n时,可以执行这条指令。执行syscall指令会导致一个到异常处理程序的陷阱,这个处理程序对参数解码,并调用适当的内核程序。
        (2)故障。故障由错误情况引起,它可能被故障处理程序修正。当一个故障发生时,处理器将控制转移给故障处理程序。如果处理程序能够修正这个错误情况,它就将控制返回到故障指令,从而重新执行它。否则,处理程序返回到内核中的abort例程,abort例程会中止引起故障的应用程序。
        (3)中止。中止是不可恢复的致命错误造成的结果,典型的是一些硬件错误,例如DRAM或者SRAM位被损坏时发生的奇偶错误。中止处理程序从不将控制返回给应用程序。处理程序将控制返回给一个abort例程,该例程会中止这个应用程序。
   题号导航      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 /
 
第41题    在手机中做本题