免费智能真题库 > 历年试卷 > 信息系统管理工程师 > 2012年上半年 信息系统管理工程师 上午试卷 综合知识
  第16题      
  知识点:   单元测试   开发过程   软件测试
  关键词:   软件测试   软件开发过程   测试   开发   开发过程   软件开发        章/节:   系统实施基础知识       

 
软件测试是软件开发过程中不可缺少的一项任务,通常在代码编写阶段需要进行(16),而检查软件的功能是否与用户要求一致是(17)的任务。
 
 
  A.  验收测试
 
  B.  系统测试
 
  C.  单元测试
 
  D.  集成测试
 
 
 

 
  第21题    2013年上半年  
   32%
为验证程序模块A是否实现了系统设计说明书的要求,需要进行(21);该模块能否与其他模块按照规定方式正确工作,还需要进行(22)..
  第30题    2009年下半年  
   46%
不属于系统测试的是(30)。
  第52题    2016年上半年  
   27%
完整的软件测试需要经过(52)。
   知识点讲解    
   · 单元测试    · 开发过程    · 软件测试
 
       单元测试
        单元测试也被称为被模块测试。在模块编写完成且无编译错误后就可以进行。可以选用人工测试或机器测试,当用机器测试时,一般采用白盒测试法,多个模块可以同时进行。
        (1)单元测试的内容。
        在单元测试中,主要从模块的5个特征进行检查:模块接口、局部数据结构、重要的执行路径、出错处理和边界条件。
        ①模块接口,如果所测模块的数据流不能正确地输入、输出,则根本就无法进行其他的测试。所以在单元测试中要考察模块的接口。Myers提出了接口测试要点如下。
        .调用被测模块的输入参数和形式参数在个数、属性、单位上是否一致
        .调用其他模块时所给的实际参数和被调模块的形式参数在个数、属性、单位上是否一致
        .调用标准函数时所用的参数在属性、数目和顺序上是否正确
        .全局变量在各模块中的定义和用法是否一致
        .输入是否仅改变了形式参数
        如果模块完成了外部的输入或输出,还应该再检查以下要点:
        .开/关的语句是否正确
        .规定的I/0格式是否与输入输出语句一致
        .在使用文件之前是否已经打开文件或使用文件完毕后是否已关闭文件
        .输入输出的错误是否被检查并处理
        .输出的提示信息是否有误
        ②局部数据结构,在单元测试中,局部数据结构出错是比较常见的错误,在测试时应重点考虑以下因素。
        .变量的说明是否合适
        .是否使用了尚未赋值或尚未初始化的变量
        .变量的初始值或默认值是否正确
        .变量名是否有错,例如拼写错误
        .是否出现上溢。下溢或地址异常的错误
        如果有可能,还应确定全局变量对模块的影响。
        ③重要的执行路径,在单元测试中,对路径的测试是最基本的任务。由于不能进行穷举测试,需要精心设计测试用例来发现是否有计算、比较或控制流等方面的错误。
        计算方面的错误主要有:算术运算的优先次序不正确或理解错误;精度不够;运算对象的类型彼此不匹配;算法不正确;表达式的符号表示不正确等。
        比较和控制流是紧密结合的,一般是通过比较来决定控制流的改变。关于这方面的错误主要有:本应相等的量由于精度问题造成不相等;不同类型进行比较;逻辑运算符不正确或优先次序错误;循环终止不正确(如多循环一次或少循环一次)、死循环;不恰当地修改循环变量;当遇到分支循环时,发生出口错误等。
        ④出错处理,好的设计应该能预测到出错的条件并且有对出错处理的路径。虽然计算机可以显示出错信息的内容,但仍需要程序员对出错进行处理,保证其逻辑的正确性,便于用户维护。对出错的测试应该着重考虑这些常见错误:错误的描述难于理解;错误提示与实际错误不相符;出错的提示信息不足以确定错误或确定造成错误的原因;在对错误进行处理之前,系统已经对错误条件进行了干预等。
        ⑤边界条件,边界条件的测试是单元测试的最后工作,也是非常重要的工作。软件容易在边界出现错误,如一个n维数组,在处理数组第n个下标时常常发生错误。要仔细选择测试用例,重点考察数据流、控制流在刚好等于、大于或小于最大值或最小值的情况。
        模块测试通常由程序员本人来完成。但项目负责人应该注意测试结果,将这些些测试资料妥善保存,为后续的测试工作打下良好的基础。
        (2)单元测试的方法。
        由于模块不是独立运行的程序,各模块之间存在联系,即存在调用与被调用的关系,在对每个模块进行测试时,需要开发两种模块:
        ①驱动模块(driver),相当于一个主程序,用于接收测试用例的数据,将这些数据送到被测模块,输出测试结果。
        ②桩模块(stub),也被称为存根模块,桩模块用来代替被测模块中所调用的子模块,其内可进行少量的数据处理,目的是为了检验入口,输出调用和返回信息。
        驱动模块和桩模块是测试用的软件,不是要交给用户的软件组成部分,但需要占用一定的开发费用。为了降低成本,对于一些不能用简单的测试软件进行充分测试的模块,可以用下节介绍的增量式测试方法,在组装测试的同时完成对模块的详细测试。
        提高模块的内聚度可以简化单元测试。如果每个模块只完成一种功能,对于具体模块来讲,所需的测试方案数目就会显著减少,而且更容易发现和预测模块中的错误。
 
       开发过程
        嵌入式系统软件的开发过程可以分为项目计划、可行性分析、需求分析、概要设计、详细设计、程序建立、下载、调试、固化、测试及运行等几个阶段。
        项目计划、可行性分析、需求分析、概要设计及详细设计等几个阶段,与通用软件的开发过程基本一致,都可按照软件工程方法进行,如采用原型化方法、结构化方法等。
        :由于嵌入式软件的运行和开发环境不同,开发工作是交叉进行的,所以每一步都要考虑到这一点。
        程序建立阶段的工作是根据详细设计阶段产生的文档进行的,主要是源代码编写、编译链接等子过程,这些工作都在宿主机上进行,不需要用到目标机。产生应用程序的可执行文件后,就要用到交叉开发环境进行调试,根据实际情况可以选用3.6.3节中提到的调试方法或其有效组合来进行。由于嵌入式系统对安全性和可靠性的要求比通用计算机系统要高,所以,在对嵌入式系统进行白盒测试时,要求有更高的代码覆盖率。
        最后,要将经调试后正确无误的可执行程序固化到目标机上。根据嵌入式系统硬件配置的不同,可以固化在EPROM(Erasable Programmable ROM,可擦除可编程ROM)和Flash等存储器中,也可固化在DOC(DiskOnChip)等电子盘中,通常还要借助一些专用编程器进行。
 
       软件测试
        测试是为评价和改进产品质量、识别产品的缺陷和问题而进行的活动。
        软件测试是针对一个程序的行为,在有限测试用例集合上动态验证软件是否达到预期的行为。
        软件测试过程如下:
        (1)拟定测试计划。
        (2)编制测试大纲。
        (3)设计和生成测试用例。
        (4)实施测试。
        (5)生成测试报告。
        软件测试方法:
        .人工测试:采用人工方式进行测试,目的是通过对程序静态结构的检查,找出编译时不能发现的错误。人工测试包括个人复查、抽查和会审等。
        .机器测试:把设计好的测试用例作用于被测程序,比较测试结果和预期结果是否一致。机器测试包括黑盒测试(功能测试)和白盒测试(结构测试)。
        软件测试伴随软件开发和维护过程,通常可以在概念上划分为以下三个阶段:
        .单元测试:也称为模块测试,在模块编写完成且无编译错误后就可以进行。
        .集成测试:也称为组装测试,就是把模块按系统设计说明书的要求组合起来进行测试。
        .系统测试:是将已经确认的软件、计算机硬件、外设和网络等其他因素结合在一起,进行信息系统的各种组装和确认测试。其目的是通过与系统需求相比较,发现所开发的系统与用户需求不符合的地方。
   题号导航      2012年上半年 信息系统管理工程师 上午试卷 综合知识   本试卷我的完整做题情况  
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 /
 
第16题    在手机中做本题