免费智能真题库 > 历年试卷 > 信息系统项目管理师 > 2010年下半年 信息系统项目管理师 上午试卷 综合知识
  第8题      
  知识点:   软件设计、测试与维护   单元测试   基本原则   软件测试
  关键词:   单元测试   开发   模块   软件测试   测试        章/节:   信息系统及其技术和开发方法       

 
程序员在编程时将程序划分为若干个关联的模块。第一个模块在单元测试中没有发现缺陷,程序员接着开发第二个模块。第二个模块在单元测试中有若干个缺陷被确认。对第二个模块实施了缺陷修复后,(8)符合软件测试基本原则
 
 
  A.  用更多的测试用例测试模块一;模块二暂时不需再测,等到开发了更多模块后再测
 
  B.  用更多的测试用例测试模块二;模块一暂时不需再测,等到开发了更多模块后再测
 
  C.  再测试模块一和模块二,用更多的测试用例测试模块一
 
  D.  再测试模块一和模块二,用更多的测试用例测试模块二
 
 
 

 
  第7题    2018年上半年  
   39%
老于是某银行的系统架构师,他为银行投资管理系统设计的软件架构包括进程通信和事件驱动的系统,该软件架构风格属于()。
  第62题    2019年上半年  
   63%
( )属于系统测试执行过程中的工作效率指标。
  第64题    2012年下半年  
   43%
在软件配置管理中,版本控制的目的是按照一定的规则保存配置项的(64).
   知识点讲解    
   · 软件设计、测试与维护    · 单元测试    · 基本原则    · 软件测试
 
       软件设计、测试与维护
        软件设计
        软件设计是“定义一个系统或组件的架构、组件、接口和其他特征的过程”,并得到“这个过程的结果”。
        软件设计由两个处于软件需求和软件构造之间的活动组成:
        .软件架构设计(也叫概要设计):描述软件的结构和组织,标识各种不同的组件。
        .软件详细设计:详细地描述各个组件,使之能被构造。
        软件测试
        测试是为评价和改进产品质量、识别产品的缺陷和问题而进行的活动。
        软件测试是针对一个程序的行为,在有限测试用例集合上动态验证是否达到预期的行为。
        软件测试过程如下:
        (1)拟定测试计划。
        (2)编制测试大纲。
        (3)设计和生成测试用例。
        (4)实施测试。
        (5)生成测试报告。
        软件测试方法:
        .人工测试:采用人工方式进行测试,目的是通过对程序静态结构的检查,找出编译时不能发现的错误。包括个人复查、抽查、会审。
        .机器测试:把设计好的测试用例作用于被测程序,比较测试结果和预期结果是否一致。包括黑盒测试(功能测试)和白盒测试(结构测试)。
        软件测试的三个阶段:
        .单元测试:也称为模块测试,在模块编写完成且无编译错误后就可以进行。
        .集成测试:也称为组装测试,就是把模块按系统设计说明书的要求组合起来进行测试。
        .系统测试:是将已经确认的软件、计算机硬件、外设和网络等其他因素结合在一起,进行信息系统的各种组装和确认测试,其目的是通过与系统需求相比较,发现所开发的系统与用户需求不符合矛盾的地方。
        软件维护
        软件维护可定义为需要提供软件支持的全部活动。这些活动包括在交付前完成的活动以及交付后完成的活动。交付前完成的活动包括交付后的运行计划和维护计划等。交付后的活动包括软件修改、培训、帮助资料等。
        软件维护的类型有纠错性维护、适应性维护、完善性维护和预防性维护。
 
       单元测试
        单元测试是通过对每个最小的软件模块进行测试,对源代码的每一个程序单元实行测试,检查各个程序模块是否正确地实现了规定的功能,确保其能正常工作。
        单元测试由开发人员执行,一般由模块单元开发者设计测试用例并修改缺陷。单元测试具有如下三种行为:
        (1)单元测试是一种验证行为。验证程序中的每项功能的正确性为代码的重构提供了保障。
        (2)单元测试是一种设计行为。软件设计阶段考虑如何实现软件的功能、性能和用户界面等,而不考虑实现的代码。单元测试关注于软件的具体功能实现是否符合需求设计,而不仅仅定位于代码的实现。
        (3)单元测试是一种文档的行为。单元测试是函数或类等软件模块如何设计、实现和使用的最佳文档。
               单元测试的特性
               单元测试具有如下特性:
               (1)单入测试是覆盖代码区间的最小单元。
               (2)单元测试支持组包测试。
               (3)单元测试的执行率为100%。
               (4)单元测试确定变动后的代码对原代码的功能未做修改。
               (5)单元测试提升了软件系统整体的可信赖度。
               (6)单元测试包含对可能出现问题的代码进行排查。
               (7)单元测试支持开发人员先测试后编码的行为。
               (8)单元测试支持变化,任何变化导致的失败情况均会被反映出来。
               (9)单元测试准确地反映了代码设计,便于后期维护。
               单元测试的认识误区
               (1)单元测试是全部规范。单元测试本质上是种特定的测试方式,是系统的实现方法规范的补充,而不是整个规范。
               (2)单元测试浪费时间。单元测试不会浪费太多的时间,反而会节省项目时间。
               (3)单元测试只需使用测试工具就可完成。单元测试工具生成的测试用例往往无法对被测试的程序进行有效覆盖,必须进行人工检查。
               (4)单元测试是针对代码进行的测试。单元测试依据详细设计报告设计测试用例,不仅仅只是对代码的测试。
               单元测试的原则
               单元测试需要遵守如下原则。
               (1)单元测试遵循《软件单元测试计划》和《软件单元测试说明》文档,根据详细设计编写单元测试用例,而不能根据代码编写单元测试用例。
               (2)单元测试执行前先检查单元测试入口条件是否全部满足。
               (3)单元测试必须满足一定的覆盖率,重要的接口函数必须做单元测试。
               (4)单元测试在修改代码后修改测试用例,将全部单元测试用例进行回归测试。
               (5)单元测试必须满足预定的出口条件才能结束。
               (6)在单元测试完成后,记录《单元测试报告》,分析问题的种类和原因。
               (7)单元测试始终在配置管理控制下进行,软件问题的修改必须符合变动规程的要求。
               (8)单元测试文档、测试用例、测试记录和被测程序等齐全,符合规范。
               单元测试的主要任务
               单元测试主要针对程序模块进行测试,主要有5个任务:模块接口、局部数据结构、执行路径、出错处理和边界条件。
                      模块接口测试
                      通过对被测模块的数据流进行测试,检查进出模块的数据是否正确。因此,必须对模块接口,包括参数表、调用子模块的参数、全局变量、文件I/O操作进行测试。具体涉及以下内容:
                      .模块接受输入的实际参数个数与模块的形式参数个数是否一致。
                      .输入的实际参数与模块的形式参数的类型是否匹配。
                      .输入的实际参数与模块的形式参数所使用的单位是否一致。
                      .调用其他模块时,所传送的实际参数个数与被调用模块的形式参数的个数是否相同。
                      .调用其他模块时,所传送的实际参数与被调用模块的形式参数的类型是否匹配。
                      .调用其他模块时,所传送的实际参数与被调用模块的形式参数的单位是否一致。
                      .调用内部函数时,参数的个数、属性和次序是否正确。
                      .在模块有多个入口的情况下,是否引用有与当前入口无关的参数。
                      .是否修改了只读型参数。
                      .全局变量是否在所有引用它们的模块中都有相同的定义。
                      局部数据结构测试
                      测试用例检查局部数据结构的完整性,如数据类型说明、初始化、默认值等方面的问题,并测试全局数据对模块的影响。
                      在模块的工作过程中,必须测试模块内部的数据能否保持完整性,包括内部数据的内容、形式及相互关系不发生错误。
                      局部数据结构应注意以下几类错误:不正确或不一致的类型说明;错误的初始化或默认值;错误的变量名,如拼写错误或书写错误;下溢、上溢或者地址错误。
                      执行路径测试
                      测试用例对模块中重要的执行路径进行测试,其中对基本执行路径和循环进行测试往往可以发现大量的路径错误。测试用例必须能够发现由于计算错误、不正确的判定或不正常的控制流而产生的错误。
                      常见的错误有误解或不正确的算术优先级;混合模式的运算;错误的初始化;精确度不够精确;表达式的不正确符号表示。
                      针对判定和条件覆盖,测试用例能够发现的错误有:不同数据类型的比较;不正确的逻辑操作或优先级;应当相等的地方由于精确度的错误而不能相等;不正确的判定或不正确的变量;不正确的或不存在的循环终止;当遇到分支循环时不能退出;不适当地修改循环变量。
                      出错处理测试
                      测试出错处理的重点是模块在工作中发生了错误,其中的出错处理设施是否有效。
                      检验程序中的出错处理可能面对的情况有以下几种:
                      .对运行发生的错误描述难以理解。
                      .所报告的错误与实际遇到的错误不一致。
                      .出错后,在错误处理之前就引起系统的干预。
                      .例外条件的处理不正确。
                      .提供的错误信息不足,以致无法找到错误的原因。
                      边界条件测试
                      边界条件测试是单元测试的最后一步,必须采用边界值分析方法来设计测试用例。在为限制数据处理而设置的边界处,测试模块是否能够正常工作。
                      一些与边界有关的数据类型,如数值、字符、位置、数量、尺寸等,以及边界的第一个、最后一个、最大值、最小值、最长、最短、最高和最低等特征。
                      在边界条件测试中,应设计测试用例检查一下情况。
                      .在n次循环的第0次、第1次、第n次是否有错误。
                      .运算或判断中取最大值、最小值时是否有错误。
                      .数据流、控制流中刚好等于、大于、小于确定的比较值是否出现错误。
               单元测试的执行过程
               通常,单元测试在编码阶段进行,在源程序代码编制完成,经过评审和验证,确认没有语法错误之后,开始设计单元测试用例。
               由于模块并不是一个独立的程序,在考虑测试模块时,同时要考虑与其有关的外界联系,因此使用一些辅助模块去模拟与被测模块相关的其他模块。辅助模块分为以下两种:
               (1)驱动(Drive)模块。用于模拟被测试模块的上一级模块,相当于被测模块的主程序,用于接收测试数据,并把这些数据传送给被测模块,启动被测模块,最后输出实测结果。
               (2)桩(Stub)模块。用于模拟被测模块工作过程中所调用的模块。桩模块一般只进行很少的数据处理,不需要把子模块的所有功能都带进来,但不允许什么事情也不做。
               单元测试停止的条件
               单元测试停止的条件如下。
               (1)单元测试用例设计已经通过评审。
               (2)按照单元测试计划完成了所有规定单元的测试。
               (3)达到了测试计划中关于单元测试所规定的覆盖率的要求。
               (4)被测试的单元每千行代码必须发现至少3个错误。
               (5)软件单元功能与设计相一致。
               (6)在单元测试中发现的错误已经得到修改,各级缺陷修复率达到标准。
 
       基本原则
        首先,要明确BPR涉及的业务流程和它的覆盖范围。一般来说,业务流程可分为管理流程、操作流程和支持流程3类。操作流程直接与满足外部顾客的需求相关。支持流程指为保证操作流程的顺利执行,在资金、人力、设备管理和信息系统支撑方面的各种活动。管理流程指企业整体目标和经营战略产生的流程,这些流程指导了企业整体运作方向,确定了企业的价值取向,所以是一类比较重要的流程。应该说,BPR的流程覆盖了企业活动的各个方面和产品的全部生命周期,即设计流程、生产流程、管理流程、营销流程。
        海默(Hammer)曾经提出7条原则用以指导BPR项目:
        (1)组织机构设计要围绕企业的产出,而不是一项一项的任务。
        (2)要那些使用过程输出的人来执行过程操作。
        (3)将信息处理工作结合到该信息产生的实际过程中去。
        (4)把地理分散的资源当作是集中的来处理。
        (5)平行活动的连接要更紧密,而不是单单集成各自的活动结果。
        (6)将决策点下放到基层活动中,并建立对过程的控制。
        (7)尽量在信息产生的源头,一次获取信息,同时保持信息的一致性。
        BPR另外一个基本思想是在组织上建立跨功能的任务团队。一些BPR项目之所以失败也正是由于他们将BPR局限于孤立的单个功能领域。BPR这一特点也相应要求从上到下、全企业范围内的支持。要争取尽可能多的总经理的时间,投入到BPR项目中。有人说至少20%~50%,才能使BPR的项目得以成功。
        麦金赛(McKinsey)从BPR项目的具体实施角度出发,给出了一些建议:
        (1)要保证BPR项目在启动时就建立起有效的领导机制。
        (2)企业人员应参与到重组的具体工作中。
        (3)争取全体企业员工对BPR项目的理解和参与。
        (4)调研范围要广泛和全面,但研究和实施中则要突出具体领域,抓住主要矛盾,
        (5)进行成本和效益分析。
        (6)对无法衡量的部分,BPR实施中尽量不触及。
        (7)加强工作中的交流。
        (8)不要放过各种可能的重组流程,尽管其中一些流程输出不显著。
 
       软件测试
        测试是为评价和改进产品质量、识别产品的缺陷和问题而进行的活动。
        软件测试是针对一个程序的行为,在有限测试用例集合上动态验证软件是否达到预期的行为。
        软件测试过程如下:
        (1)拟定测试计划。
        (2)编制测试大纲。
        (3)设计和生成测试用例。
        (4)实施测试。
        (5)生成测试报告。
        软件测试方法:
        .人工测试:采用人工方式进行测试,目的是通过对程序静态结构的检查,找出编译时不能发现的错误。人工测试包括个人复查、抽查和会审等。
        .机器测试:把设计好的测试用例作用于被测程序,比较测试结果和预期结果是否一致。机器测试包括黑盒测试(功能测试)和白盒测试(结构测试)。
        软件测试伴随软件开发和维护过程,通常可以在概念上划分为以下三个阶段:
        .单元测试:也称为模块测试,在模块编写完成且无编译错误后就可以进行。
        .集成测试:也称为组装测试,就是把模块按系统设计说明书的要求组合起来进行测试。
        .系统测试:是将已经确认的软件、计算机硬件、外设和网络等其他因素结合在一起,进行信息系统的各种组装和确认测试。其目的是通过与系统需求相比较,发现所开发的系统与用户需求不符合的地方。
   题号导航      2010年下半年 信息系统项目管理师 上午试卷 综合知识   本试卷我的完整做题情况  
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 /
 
第8题    在手机中做本题