免费智能真题库 > 历年试卷 > 程序员 > 2009年上半年 程序员 上午试卷 综合知识
  第53题      
  知识点:   软件测试的目的及原则   测试过程   测试内容   规范化   开发过程   培训
  关键词:   测试过程   软件开发过程   测试   开发   开发过程   软件开发        章/节:   程序测试基础知识       

 
测试是软件开发过程中一个独立且非常重要的阶段。一个规范化测试过程通常包括多个基本的测试活动。确定测试内容、进度安排、测试所需的环境和条件、测试培训安排等工作属于(53)阶段的内容。
 
 
  A.  拟定测试计划
 
  B.  编制测试大纲
 
  C.  设计和生成测试用例
 
  D.  生成测试报告
 
 
 

 
  第57题    2011年上半年  
   62%
对应用软件产品所进行的β测试,是(57)进行的测试。
  第51题    2012年上半年  
   27%
软件测试的主要目的是(51)
  第51题    2014年下半年  
   55%
以下关于单元测试的叙述中,不正确的是(51).
   知识点讲解    
   · 软件测试的目的及原则    · 测试过程    · 测试内容    · 规范化    · 开发过程    · 培训
 
       软件测试的目的及原则
        软件测试是发现软件中错误和缺陷的主要手段。测试是一项很艰苦的工作,其工作量约占软件开发总工作量的40%以上,特别是对一些关系到人的生命安全的软件来说,其测试成本可能相当于其他开发阶段总成本的3~5倍。
               测试的目的和用例
               1)测试的目的
               软件测试的目的是尽可能多地发现软件产品(主要是指程序)中的错误和缺陷。
               2)测试用例
               要进行测试,除了要有测试数据(或称输入数据)外,还应同时给出该组测试数据应该得到怎样的输出结果,我们称它为预期结果。在测试时将实际的输出结果与预期结果比较,若不同则表示发现了错误。所以测试用例是由测试数据和预期结果构成的。
               软件测试的原则
               软件测试的原则如下。
               .应尽早并不断地进行测试。
               .程序员应避免测试自己的程序,程序设计机构不应测试自己的程序。
               .彻底检查每个测试结果。
               .对非法的和非预期的输入数据也要像合法的和预期的输入数据一样编写测试用例。
               .设计测试方案时,不仅要确定输入数据,而且要根据系统功能预期输出结果。
               .妥善保存测试计划和测试用例,将其作为软件文档的组成部分。
               .在规划测试时不要设想程序中不会查出错误。
               .程序模块经测试后,残存的错误数目往往与已发现的错误数目成比例。
               软件测试过程
               软件测试的过程如下。
               (1)拟订测试计划。
               (2)编制测试大纲。
               (3)根据测试大纲设计和生成测试用例。
               (4)实施测试。
               (5)生成测试报告。
 
       测试过程
        软件测试过程一般包括:测试需求分析、测试策划、测试设计和实现、测试执行、测试总结(包括评价过程和总结),如下图所示。
        
        软件测试过程
               测试需求分析
               根据被测软件的需求规格说明或设计文档,进行测试需求分析,包括:
               (1)确定需要的测试类型及其测试要求并进行标识(编号),标识应清晰、便于识别。测试类型包括功能测试、性能测试等类型;测试要求包括状态、接口、数据结构、设计约束等要求。确定的测试类型和测试要求均应与要求的测试级别(单元测试、部件测试、配置项测试、系统测试)、测试类型相匹配。
               (2)确定每个测试项的优先级。
               (3)确定每个测试项的测试充分性要求。
               (4)根据被测软件的重要性、测试目标和约束条件,确定每个测试项应覆盖的范围及范围所要求的覆盖程度。
               (5)确定每个测试项测试终止的要求,包括测试过程正常终止的条件(如测试充分性是否达到要求)和导致测试过程异常终止的可能情况。
               (6)确定测试项与软件需求规格说明或设计文档的追踪关系。
               将测试需求分析结果按所确定的文档要求,形成测试需求规格说明或写入测试计划。
               应对测试需求规格说明或测试需求分析结果进行评审,评审内容如下:
               (1)测试级别和测试对象所确定的测试类型及其测试要求是否恰当。
               (2)每个测试项是否进行了标识,并逐条覆盖了测试需求和潜在需求。
               (3)测试类型和测试项是否充分。
               (4)测试项是否包括了终止要求。
               (5)文档是否符合规定的要求。
               测试策划
               根据软件需求规格说明或设计文档等进行测试策划,策划一般包括:
               (1)确定测试策略,如部件或配置项测试策略。
               (2)确定测试需要的技术或方法,如测试数据生成与验证技术、测试数据输入技术、测试结果获取技术。
               (3)确定要受控制的测试工作产品,列出清单。
               (4)确定用于测试的资源要求,包括软硬件设备、环境条件、人员数量和技能等要求。
               (5)进行测试风险分析,如技术风险、人员风险、资源风险和进度风险等。
               (6)确定测试任务的结束条件。
               (7)确定被测软件的评价准则和方法。
               (8)确定测试活动的进度。应根据测试资源和测试项,确定进度。
               应将测试策划结果,按所确定的文档要求形成测试计划。
               测试设计和实现
               应根据测试需求规格说明和测试计划进行测试设计和实现,应完成如下工作:
               (1)按需要分解测试项。将需要测试的测试项进行层次化的分解并进行标识,若有接口测试,还应有高层次的接口图说明所有接口和要测试的接口。
               (2)说明最终分解后的测试项。说明测试用例设计方法的具体应用、测试数据的选择依据等。
               (3)设计测试用例。
               (4)确定测试用例的执行顺序。
               (5)准备和验证所有的测试用数据。针对测试输入要求,设计测试用的数据,如数据类型、输入方法等。
               (6)准备并获取测试资源,如测试环境所必须的软、硬件资源等。
               (7)必要时,编写测试执行需要的程序,如开发部件测试的驱动模块和桩模块以及测试支持软件等。
               (8)建立和校核测试环境,记录校核结果,说明测试环境的偏差。
               应将测试设计与实现的工作结果,按照所确定的文档要求编写测试说明,测试说明一般应包括:
               (1)测试名称和项目标识。
               (2)测试用例的追踪。说明测试所依据的内容来源,并跟踪到相应的测试项的标识(编号)。
               (3)测试用例说明。简要描述测试的对象、目的和所采用的测试方法。
               (4)测试用例的初始化要求,包括硬件配置、软件配置(包括测试的初始条件)、测试配置(如用于测试的模拟系统和测试工具)、参数设置(如测试开始前对断点、指针、控制参数和初始化数据的设置)等的初始化要求。
               (5)测试用例的输入。每个测试用例输入的描述中应包括的内容:
               ①每个测试输入的名称、用途和具体内容(如确定的数值、状态或信号等)及其性质(如有效值、无效值、边界值等)。
               ②测试输入的来源(如测试程序产生、磁盘文件、通过网络接收、人工键盘输入等),以及选择输入所使用的方法(如等价类划分、边界值分析、猜错法、因果图以及功能图等)。
               ③测试输入是真实的还是模拟的。
               ④测试输入的时间顺序或事件顺序。
               (6)测试用例的期望测试结果。期望测试结果应有具体内容(如确定的数值、状态或信号等),不应是不确切的概念或笼统的描述。必要时,应提供中间的期望结果。
               (7)测试用例的测试结果评估准则。评估准则用以判断测试用例执行中产生的中间或最后结果是否正确。评估准则应根据不同情况提供相关信息,如:
               ①实际测试结果所需的精确度。
               ②允许的实际测试结果与期望结果之间差异的上、下限。
               ③时间的最大或最小间隔。
               ④事件数目的最大或最小值。
               ⑤实际测试结果不确定时,重新测试的条件。
               ⑥与产生测试结果有关的出错处理。
               ⑦其他有关准则。
               (8)实施测试用例的执行步骤。编写按照执行顺序排列的一系列相对独立的步骤,执行步骤应包括:
               ①每一步所需的测试操作动作、测试程序输入或设备操作等。
               ②每一步期望的测试结果。
               ③每一步的评估准则。
               ④导致被测程序执行终止伴随的动作或指示信息。
               ⑤需要时,获取和分析中间结果的方法。
               (9)测试用例的前提和约束。在测试用例中还应说明实施测试用例的前提条件和约束条件,如特别限制、参数偏差或异常处理等,并要说明它们对测试用例的影响。
               (10)测试终止条件。说明测试用例的测试正常终止和异常终止的条件。
               (11)确定测试说明与测试计划或测试需求规格说明的追踪关系,给出清晰、明确的追踪表。
               (12)测试说明应经过评审,得到相关人员的认同,测试说明评审内容如下:
               ①测试说明是否完整、正确和规范。
               ②测试设计是否完整和合理。
               ③测试用例是否可行和充分。
               测试执行
               应按照测试计划和测试说明的内容和要求执行测试,主要完成下列工作:
               如实填写测试记录,当结果有量值要求时,应准确记录实际的量值。
               (1)测试记录应受到严格管理,并规范格式,至少包括测试用例标识、测试结果和发现的缺陷。
               (2)应根据每个测试用例的期望测试结果、实际测试结果和评估准则,判定测试用例是否通过。
               (3)当测试用例不通过时,应根据不同的缺陷类型,采取相应的措施:
               ①对测试工作中的缺陷,如测试说明的缺陷、测试数据的缺陷、执行测试步骤时的缺陷、测试环境中的缺陷等,记录到相应的表格中,并实施相应的变更。
               ②对被测软件的缺陷应记录到软件问题报告中。
               ③软件问题报告的格式应规范。
               (4)当所有的测试用例都执行完毕后,实验室应根据测试的充分性要求和有关记录,分析测试工作是否充分,是否需要进行补充测试:
               ①当测试过程正常终止时,如果发现测试工作不足,或测试未达到预期要求时,应进行补充测试。
               ②当测试过程异常终止时,应记录导致终止的条件、未完成的测试或未被修正的错误。
               测试总结
               应根据被测软件文档、测试需求规格说明、测试计划、测试说明、测试记录、测试问题及变更报告和软件问题报告等,对测试工作和被测软件进行分析和评价,主要完成下列工作:
               (1)对测试工作进行分析和评价,分析和评价内容应包括:
               ①总结测试需求规格说明、测试计划和测试说明的变化情况及其原因。
               ②在测试异常终止时,说明未能被测试活动充分覆盖的范围及其理由。
               ③确定无法解决的软件测试事件并说明不能解决的理由。
               (2)对被测软件进行分析和评价,分析和评价内容应包括:
               ①总结测试中所反映的被测软件与软件需求(或软件设计)之间的差异。
               ②可能时,根据差异评价被测软件的设计与实现,提出改进的建议。
               ③当进行配置项测试或系统测试时,当需要时,测试总结中应对配置项或系统的性能做出评估,指明偏差、缺陷和约束条件等对于配置项或系统运行的影响。
               (3)分析测评项目中的数据和文档,以供以后的测试使用。数据如:缺陷数据(包括缺陷描述、类型、严重性等)、用例数据、管理数据(如生产率、工作量、进度等);文档如:好的用例设计、好的需求规格说明等。
               (4)应根据被测软件文档、测试需求规格说明、测试计划、测试说明、测试记录和软件问题报告等有关文档,对测试结果和问题进行分类和总结,按所确定的文档要求编写测试报告。测试报告除了应包括对测试结果的分析,还应包括对被测软件的评价和建议。
               测试总结评审应在测试报告编制工作完成后进行,以确定是否达到测试目的,给出评审结论。评审的具体内容和要求包括:
               (1)审查测试文档与记录内容的完整性、正确性和规范性。
               (2)审查测试活动的独立性和有效性。
               (3)审查测试环境是否符合测试要求。
               (4)审查软件测试报告与软件测试原始记录和问题报告的一致性。
               (5)审查实际测试过程与测试计划和测试说明的一致性。
               (6)审查测试说明评审的有效性,如是否评审了测试项选择的完整性和合理性、测试用例的可行性和充分性。
               (7)审查测试结果的真实性和正确性。
 
       测试内容
        由于每种测试所花费的成本不同,如果测试步骤安排得不合理,将会造成为了寻找错误原因而浪费大量的时间以及重复测试的情况。因此,合理安排测试步骤对于提高测试效率和降低测试成本有很大的作用,信息系统测试分别按硬件系统、网络系统和软件系统进行测试,最后对整个系统进行总的综合测试。
        (1)硬件测试。
        在进行信息系统开发中,通常需要根据项目的情况选购硬件设备。在设备到货后,应在各个相关厂商配合下进行初验测试,初验通过后将硬件与软件、网络等一起进行系统测试。初验测试所做的工作主要如下。
        .配置检测,检测是否按合同提供了相应的配置,如系统软件、硬盘、内存、CPU等的配置情况。
        .硬件设备的外观检查,所有设备及配件开箱后,外观有无明显划痕和损伤。这些包括计算机主机、工作站、磁带库、磁盘机柜和存储设备等。
        .硬件测试,首先进行加电检测,观看运行状态是否正常,有无报警、屏幕有无乱码提示和死机现象,是否能进入正常提示状态。然后进行操作检测,用一些常用的命令来检测机器是否能执行命令,结果是否正常。例如,文件复制、显示文件内容、建立目录等。最后检查是否提供了相关的工具,如帮助系统、系统管理工具等。
        通过以上测试,要求形成相应的硬件测试报告,在测试报告中包含测试步骤、测试过程和测试的结论等。
        (2)网络测试。
        如果信息系统不是单机,需要在局域网或广域网运行,按合同会选购网络设备。在网络设备到货后,应在各个相关厂商配合下进行初验测试。初验通过后网络将与软件、硬件等一起进行系统测试。初验测试所做的工作主要如下。
        .网络设备的外观检查,所有设备及配件开箱后,外观有无明显划痕和损伤,这些包括交换机、路由器等。
        .硬件测试,进行加电检测,观看交换机、路由器等工作状态是否正常,有无错误和报警。
        .网络连通测试,检测网络是否连通,可以用ping、 telnet、 ftp等命令来检查。
        通过以上测试,要求形成相应的网络测试报告,在测试报告中包含测试步骤、测试过程和测试的结论等。
        (3)软件测试。
        软件测试实际上分成4步:单元测试、组装测试、确认测试和系统测试,它们将按顺序进行。首先是单元测试(Unit Testing),对源程序中的每一个程序单元进行测试,验证每个模块是否满足系统设计说明书的要求。组装测试(Integration Testing)是将已测试过的模块组合成子系统,重点测试各模块之间的接口和联系。确认测试(Validation Testing)是对整个软件进行验收,根据系统分析说明书来考察软件是否满足要求。系统测试(System Testing)是将软件、硬件、网络等系统的各个部分连接起来,对整个系统进行总的功能、性能等方面的测试。
        下面将分别对单元测试、组装测试、确认测试和系统测试的内容和要求加以说明。
 
       规范化
        关系数据库设计的方法之一就是设计满足适当范式的模式,通常可以通过判断分解后的模式达到几范式来评价模式规范化的程度。范式有:1NF、2NF、3NF、BCNF、4NF和5NF,其中1NF级别最低。这几种范式之间成立。
        通过分解,可以将一个低一级范式的关系模式转换成若干个高一级范式的关系模式,这种过程叫作规范化。下面将给出各个范式的定义。
               1NF(第一范式)
               【定义7.10】若关系模式R的每一个分量是不可再分的数据项,则关系模式R属于第一范式。记为R∈1NF。
               例如,供应者和它所提供的零件信息,关系模式FIRST和函数依赖集F如下:
               FIRST(Sno,Sname,Status,City,Pno,Qty)
               F={Sno→Sname,Sno→Status,Status→City,(Sno,Pno)→Qty}
               对具体的关系FIRST如下表所示。从下表中可以看出,每一个分量都是不可再分的数据项,所以是1NF的。但是,1NF存在4个问题:
               
               FIRST
               (1)冗余度大。例如每个供应者的Sno、Sname、Status、City要与其供应的零件的种类一样多。
               (2)引起修改操作的不一致性。例如供应者S1从“天津”搬到“上海”,若不注意,会使一些数据被修改,另一些数据未被修改,导致数据修改的不一致性。
               (3)插入异常。关系模式FRIST的主码为Sno、Pno,按照关系模式实体完整性规定主码不能取空值或部分取空值。这样,当某个供应者的某些信息未提供时(如Pno),则不能进行插入操作,这就是所谓的插入异常。
               (4)删除异常。若供应商S4的P2零件销售完了,并且以后不再销售P2零件,那么应删除该元组。这样,在基本关系FIRST找不到S4,可S4又是客观存在的。
               正因为上述4个原因,所以要对模式进行分解,并引入了2NF。
               2NF(第二范式)
               【定义7.11】若关系模式R∈1NF,且每一个非主属性完全依赖于码,则关系模式R∈2NF。
               换句话说,当1NF消除了非主属性对码的部分函数依赖,则称为2NF。
               例如,FIRST关系中的码是Sno、Pno,而Sno→Status,因此非主属性Status部分函数依赖于码,故非2NF的。
               若此时,将FIRST关系分解为:
               FIRST1(Sno,Sname,Status,City)∈ 2NF
               FIRST2(Sno,Pno,Qty)∈2NF
               因为分解后的关系模式FIRST1的码为Sno,非主属性Sname、Status、City完全依赖于码Sno,所以属于2NF;关系模式FIRST2的码为Sno、Pno,非主属性Qty完全依赖于码,所以也属于2NF。
               3NF(第三范式)
               【定义7.12】若关系模式R(U,F)中不存在这样的码X,属性组Y及非主属性使得X→Y,成立,则关系模式R∈3NF。
               即当2NF消除了非主属性对码的传递函数依赖,则称为3NF。
               例如,FIRST1?3NF,因为在分解后的关系模式FIRST1中有Sno→Status,Status→City,存在着非主属性City传递依赖于码Sno。若此时将FIRST1继续分解为:
               FIRST11(Sno,Sname,Status)∈ 3NF
               FIRST12(Status,City)∈3NF
               通过上述分解,数据库模式FIRST转换为FIRST11(Sno,Sname,Status)、FIRST12(Status,City)、FIRST2(Sno,Pno,Qty)三个子模式。由于这三个子模式都达到了3NF,因此称分解后的数据库模式达到了3NF。
               可以证明,3NF的模式必是2NF的模式。产生冗余和异常的两个重要原因是部分依赖和传递依赖。因为3NF模式中不存在非主属性对码的部分函数依赖和传递函数依赖,所以具有较好的性能。对于非3NF的1NF、2NF其性能弱,一般不宜作为数据库模式,通常要将它们变换成为3NF或更高级别的范式,这种变换过程称为“关系模式的规范化处理”。
               BCNF(Boyce Codd Normal Form,巴克斯范式)
               【定义7.13】关系模式R∈1NF,若X→Y且时,X必含有码,则关系模式R∈BCNF。
               也就是说,当3NF消除了主属性对码的部分函数依赖和传递函数依赖,则称为BCNF。
               结论:一个满足BCNF的关系模式,应有如下性质。
               (1)所有非主属性对每一个码都是完全函数依赖。
               (2)所有非主属性对每一个不包含它的码,也是完全函数依赖。
               (3)没有任何属性完全函数依赖于非码的任何一组属性。
               例如,设R(Pno,Pname,Mname)的属性分别表示零件号、零件名和厂商名,如果约定,每种零件号只有一个零件名,但不同的零件号可以有相同的零件名;每种零件可以有多个厂商生产,但每家厂商生产的零件应有不同的零件名。这样我们可以得到如下一组函数依赖:
               Pno→Pname,(Pname,Mname)→Pno
               由于该关系模式R中的候选码为(Pname,Mname)或(Pno,Mname),因而关系模式R的属性都是主属性,不存在非主属性对码的传递依赖,所以R是3NF的。但是,主属性Pname传递依赖于码(Pname,Mname),因此R不是BCNF的。当一种零件由多个生产厂家生产时,零件名与零件号间的联系将多次重复,带来冗余和操作异常现象。若将R分解成:
               R1(Pno,Pname)和R2(Pno,Mname)
               就可以解决上述问题,并且分解后的关系模式R1、R2都属于BCNF。
               4NF(第四范式)
               【定义7.14】关系模式R∈1NF,若对于R的每个非平凡多值依赖X→→Y且时,X必含有码,则关系模式R(U,F)∈4NF。
               4NF是限制关系模式的属性间不允许有非平凡且非函数依赖的多值依赖。
               注意:如果只考虑函数依赖,关系模式最高的规范化程度是BCNF;如果考虑多值依赖,关系模式最高的规范化程度是4NF。
               连接依赖5NF
               连接依赖:当关系模式无损分解为n个投影(n>2)会产生一些特殊的情况。下面考虑供应商数据库中SPJ关系的一个具体的值,如下图所示。
               
               关系SPJ是三个二元投影的连接
               第一次SP、PJ投影连接“”起来的结果比原始SPJ关系多了一个元组“S2,P1,J2”,即上图中带下画线的元组。第二次连接的结果去掉了多余的元组,从而恢复了原始的关系SPJ。在这种情况下,原始的SPJ关系是可3分解的。注意,无论我们选择哪两个投影作为第一次连接,结果都是一样的,尽管在每种情况下中间结果不同。
               SPJ的可3分解性是基本与时间无关的特性,是关系模式的所有合法值满足的特性,也就是说,这是关系模式满足一个特定的与时间无关的完整性约束。将这种约束简称为3D(3分解)约束。上述情况就是连接依赖要研究的问题。
               连接依赖:如果给定一个关系模式R,R1,R2,R3,…,Rn是R的分解,那么称R满足连接依赖JD*{R1,R2,R3,…,Rn},当且仅当R的任何可能出现的合法值都与它在R1,R2,R3,…,Rn上的投影等价。
               形式化地说,若R=R1∪R2∪…∪Rn,且,则称R满足连接依赖JD*{R1,R2,R3,…,Rn}。如果某个Ri,就是R本身,则连接依赖是平凡的。
               为了进一步理解连接依赖的概念,我们考虑银行数据库中的子模式:贷款(L-no,Bname,C-name,amount)。其中:
               .贷款号为L-no的贷款是由机构名为Bname贷出的。
               .贷款号为L-no的贷款是贷给客户名为C-name的客户。
               .贷款号为L-no的贷款的金额是amount。
               我们可以看到这是一个非常直观的逻辑蕴涵连接依赖:
               JD*((L-no,Bname),(L-no,C-name),(L-no,amount))
               这个例子说明了连接依赖很直观,符合数据库设计的原则。
               【定义7.15】一个关系模式R是第五范式(也称投影-连接范式PJNF),当且仅当R的每一个非平凡的连接依赖都被R的候选码所蕴涵,记作5NF。
               “被R的候选码所蕴涵”的含义可通过SPJ关系来理解。关系模式SPJ并不是5NF的,因为它满足一个特定连接依赖,即3D约束。这显然没有被其唯一的候选码(该候选码是所有属性的组合)所蕴涵。其区别是,关系模式SPJ并不是5NF,因为它是可被3分解的,可3分解并没有为其(Sno,Pno,Jno)候选码所蕴涵。但是将SPJ3分解后,由于3个投影SP、PJ、JS不包括任何(非平凡的)连接依赖,因此它们都是5NF的。
 
       开发过程
        嵌入式系统软件的开发过程可以分为项目计划、可行性分析、需求分析、概要设计、详细设计、程序建立、下载、调试、固化、测试及运行等几个阶段。
        项目计划、可行性分析、需求分析、概要设计及详细设计等几个阶段,与通用软件的开发过程基本一致,都可按照软件工程方法进行,如采用原型化方法、结构化方法等。
        :由于嵌入式软件的运行和开发环境不同,开发工作是交叉进行的,所以每一步都要考虑到这一点。
        程序建立阶段的工作是根据详细设计阶段产生的文档进行的,主要是源代码编写、编译链接等子过程,这些工作都在宿主机上进行,不需要用到目标机。产生应用程序的可执行文件后,就要用到交叉开发环境进行调试,根据实际情况可以选用3.6.3节中提到的调试方法或其有效组合来进行。由于嵌入式系统对安全性和可靠性的要求比通用计算机系统要高,所以,在对嵌入式系统进行白盒测试时,要求有更高的代码覆盖率。
        最后,要将经调试后正确无误的可执行程序固化到目标机上。根据嵌入式系统硬件配置的不同,可以固化在EPROM(Erasable Programmable ROM,可擦除可编程ROM)和Flash等存储器中,也可固化在DOC(DiskOnChip)等电子盘中,通常还要借助一些专用编程器进行。
 
       培训
        培训包括旨在提高项目团队成员能力的全部活动。
        培训可以是正式或非正式的。培训方式包括课堂培训、在线培训、计算机辅助培训、在岗培训(由其他项目团队成员提供)、辅导及训练。
        应按人力资源管理计划中的安排来实施预定的培训。也应根据管理项目团队过程中的观察、交谈和项目绩效评估的结果,来开展必要的计划外培训,培训成本通常应该包括在项目预算中,或者由执行组织承担(如果增加的技能有利于未来的项目)。培训可以由内部或外部培训师来执行。
   题号导航      2009年上半年 程序员 上午试卷 综合知识   本试卷我的完整做题情况  
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 /
 
第53题    在手机中做本题