免费智能真题库 > 历年试卷 > 信息系统项目管理师 > 2012年下半年 信息系统项目管理师 下午试卷 案例
  第3题      
  知识点:   编码   测试过程   测试阶段   开发人员   项目进度计划   质量管理

 
小赵被任命为某软件开发项目的专职质量管理人员,他此前只有过三个月的软件开发经历。项目经理李工要求他按照项目进度计划中的工作安排,按时做好检查,发现问题随时汇报。
项目启动后,由于进度紧张,项目组经常加班,小赵在质量检查中,总会遇到这样那样的问题,例如,计划时间点已到,工作却没有按时完成,因此,无法开展检查;相关人员工作太忙,无法配合检查等。不久,项目组成员对小赵的工作颇有怨言,说他不懂技术,还得浪费时间跟他解释,有的还说进度已经这么紧张了,他不帮忙却来添乱。小赵很无奈,将这些情况汇报给项目经理李工,李工也觉得比较棘手,要求小赵尽量在不打扰大家工作的情况下执行检查。
项目组在超负荷运转中完成了编码任务,虽然天天加班,但进度还是延误了20%,此时已经不能按原计划开展测试工作,项目经理李工决定调整计划,不划分测试阶段,将所有模块一次集成后统一开始测试。软件模块集成后,头一轮测试刚开始就出现了致命错误,导致测试无法继续,李工只好让开发人员先修复软件,之后再提交测试,随后的测试过程更加混乱,由于模块由不同人员开发,需要不同的人来修改,常常是已修复的BUG,在修复其他的BUG之后又再次出现,开发人员不停修改,项目交付时间临近,程序中还有大量BUG没有修复。
 
问题:3.1   请结合本题案例分析该项目质量管理中出现的问题。
 
问题:3.2   请结合本题案例简要阐述在项目中应如何进行质量管理。
 
问题:3.3   对于本题案例中的软件项目,请指出其测试过程至少应分为哪几个阶段?
 
 
 

   知识点讲解    
   · 编码    · 测试过程    · 测试阶段    · 开发人员    · 项目进度计划    · 质量管理
 
       编码
               编码过程
               在给定了软件设计规格说明书后,下一步的工作就是编写代码。一般来说,编码工作可以分为四个步骤:
               (1)确定源程序的标准格式,制订编程规范。
               (2)准备编程环境,包括软硬件平台的选择,包括操作系统、编程语言、集成开发环境等。
               (3)编写代码。
               (4)进行代码审查,以提高编码质量。为提高审查的效率,在代码审查前需要准备一份检查清单,并设定此次审查须找到的bug数量。在审查时,要检查软件规格说明书与编码内容是否一致;代码对硬件和操作系统资源的访问是否正确;中断控制模块是否正确等。
               编码准则
               在嵌入式系统中,由于资源有限,且实时性和可靠性要求较高,因此,在开发嵌入式软件时,要注意对执行时间、存储空间和开发/维护时间这三种资源的使用进行优化。也就是说,代码的执行速度要越快越好,系统占用的存储空间要越小越好,软件开发和维护的时间要越少越好。
               具体来说,在编写代码时,需要做到以下几点:
               .保持函数短小精悍。一个函数应该只实现一个功能,如果函数的代码过于复杂,将多个功能混杂在一起,就很难具备可靠性和可维护性。另外,要限制函数的长度,一般来说,一个函数的长度最好不要超过100行。
               .封装代码。将数据以及对其进行操作的代码封装在一个实体中,其他代码不能直接访问这些数据。例如,全局变量必须在使用该变量的函数或模块内定义。对代码进行封装的结果就是消除了代码之间的依赖性,提高了对象的内聚性,使封装后的代码对其他行为的依赖性较小。
               .消除冗余代码。例如,将一个变量赋给它自己,初始化或设置一个变量后却从不使用它,等等。研究表明,即使是无害的冗余也往往和程序的缺陷高度关联。
               .减少实时代码。实时代码不但容易出错、编写成本较高,而且调试成本可能更高。如果可能,最好将对执行时间要求严格的代码转移到一个单独的任务或者程序段中。
               .编写优雅流畅的代码。
               .遵守代码编写标准并借助检查工具。用自动检验工具寻找缺陷比人工调试便宜,而且能捕捉到通过传统测试检查不到的各种问题。
               编码技术
                      编程规范
                      在嵌入式软件开发过程中,遵守编程规范,养成良好的编程习惯,这是非常重要的,将直接影响到所编写代码的质量。
                      编程规范主要涉及的三方面内容:
                      .命名规则。从编译器的角度,一个合法的变量名由字母、数字和下画线三种字符组成,且第一个字符必须为字母或下画线。但是从程序员的角度,一个好的名字不仅要合法,还要载有足够的信息,做到“见名知意”,并且在语意清晰、不含歧义的前提下,尽可能地简短。
                      .编码格式。在程序布局时,要使用缩进规则,例如变量的定义和可执行语句要缩进一级,当函数的参数过长时,也要缩进。另外,括弧的使用要整齐配对,要善于使用空格和空行来美化代码。例如,在二元运算符与其运算对象之间,要留有空格;在变量定义和代码之间要留有空行;在不同功能的代码段之间也要用空行隔开。
                      .注释的书写。注释的典型内容包括:函数的功能描述;设计过程中的决策,如数据结构和算法的选择;错误的处理方式;复杂代码的设计思想等。在书写注释时要注意,注释的内容应该与相应的代码保持一致,同时要避免不必要的注释,过犹不及。
                      性能优化
                      由于嵌入式系统对实时性的要求较高,因此一般要求对代码的性能进行优化,使代码的执行速度越快越好。以算术运算为例,在编写代码时,需要仔细地选择和使用算术运算符。一般来说,整数的算术运算最快,其次是带有硬件支持的浮点运算,而用软件来实现的浮点运算是非常慢的。因此,在编码时要遵守以下准则:
                      .尽量使用整数(char、short、int和long)的加法和减法。
                      .如果没有硬件支持,尽量避免使用乘法。
                      .尽量避免使用除法。
                      .如果没有硬件支持,尽量避免使用浮点数。
                      下图是一个例子,其中两段代码的功能完全一样,都是对一个结构体数组的各个元素进行初始化,但采用两种不同的方法来实现。下图(a)采用数组下标的方法,在定位第i个数组元素时,需要将i乘以结构体元素的大小,再加上数组的起始地址。下图(b)采用的是指针访问的方法,先把指针fp初始化为数组的起始地址,然后每访问完一个数组元素,就把fp加1,指向下一个元素。在一个奔腾4的PC上,将这两段代码分别重复10 700次,右边这段代码需要1ms,而左边这段代码需要2.13ms。
                      
                      算术运算性能优化的例子
 
       测试过程
        软件测试过程一般包括:测试需求分析、测试策划、测试设计和实现、测试执行、测试总结(包括评价过程和总结),如下图所示。
        
        软件测试过程
               测试需求分析
               根据被测软件的需求规格说明或设计文档,进行测试需求分析,包括:
               (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)审查测试结果的真实性和正确性。
 
       测试阶段
        . 可靠性测试(含于集成测试、系统测试);
        . 排错;
        . 可靠性建模;
        . 可靠性评价;
        . 调整可靠性活动计划;
        . 收集可靠性数据;
        . 明确后续阶段的可靠性活动的详细计划;
        . 编制可靠性文档。
 
       开发人员
        ①多媒体软件:项目负责人、学科教学专家、教学设计专家、软件工程师、多媒体素材制作专家和多媒体课件制作专家。
        ②多媒体电子出版物:策划编导、文字编辑、美术编辑、音乐编辑和多媒体编辑。
 
       项目进度计划
        项目进度计划是进度模型的输出,展示活动之间的相互关联,以及计划日期、持续时间、里程碑和所需资源。项目进度计划中至少要包括每个活动的计划开始日期与计划结束日期。即使在早期阶段就进行了资源规划,在未确认资源分配和计划开始与结束日期之前,项目进度计划都只是初步的,一般要在项目管理计划编制完成之前进行这些确认。项目进度计划可以是概括(有时称为主进度计划或里程碑进度计划)或详细的。项目进度计划可以采用以下一种或多种图形来呈现。
        .横道图:也称为甘特图,是展示进度信息的一种图表方式。在横道图中,进度活动列于纵轴,日期排于横轴,活动持续时间则表示为按开始和结束日期定位的水平条形。横道图相对易读,常用于向管理层汇报情况。为了便于控制以及与管理层进行沟通,可在里程碑之间或横跨多个相关联的工作包,列出内容更广、更综合的概括性活动(也叫汇总活动)。下图中的“开发和交付新产品Z”为概况性活动。
        
        横道图(甘特图)示例
        .里程碑图:与横道图类似,但仅标示出主要可交付成果和关键外部接口的计划开始或完成日期,如下图所示。
        
        里程碑进度计划示例
        .项目进度网络图:通常用节点法绘制,没有时间刻度,纯粹显示活动及其相互关系,有时也称为“纯逻辑图”,如本章第1张图所示。项目进度网络图也可以是包含时间刻度的进度网络图,有时称为“逻辑横道图”,如下1图所示。项目进度网络图的另一种呈现形式是“时标逻辑图”,也叫“时标网络图”,其中包含时间刻度和表示活动持续时间的横条,以及活动之间的逻辑关系,它用于优化展现活动之间的关系,许多活动都可以按顺序出现在图的同一行中,如下2图所示。
        
        逻辑横道图示例
        
        时标逻辑图示例
 
       质量管理
        ISO将质量定义为:“质量是反映实体满足明确和隐含需要的能力的特性总和”。我国国家标准GB/T1900—2000将质量定义为:“质量是一组固有特性满足要求的程度”。这些定义表明质量是通过实体来体现的,质量的实体可以是产品,也可以是某项活动或过程的工作质量,还可以是质量管理体系运行的质量。
        ISO将质量管理定义为:“在质量方面指挥和控制组织的协调活动”。我国国家标准GB/T1900-2000对质量管理的定义是:“在质量方面指挥和控制组织的协调的活动”。在质量方面的指挥和控制活动,通常包括制定质量方针和质量目标以及质量策划、质量控制、质量保证和质量改进。
        我国国家标准GB/T1900—2000对质量保证的定义是:“质量保证是质量管理的一部分,致力于增强满足质量要求的能力”。也就是,质量保证是为了提供足够的信任表明实体能够满足质量要求,而在质量体系中实施并根据需要进行全部有计划和有系统的活动。
        我国国家标准GB/T 1900—2000对质量控制的定义是:“质量管理的一部分,致力于满足质量要求”。质量控制的目标就是确保产品的质量能满足顾客、法律法规等方面所提出的质量要求,如适用性、可靠性和安全性。质量控制的范围涉及产品质量形成全过程的各个环节,如设计过程、采购过程、生产过程和安装过程。
        项目质量管理是为了保证项目最终能够达到预期的质量目标而进行的一系列的管理过程。项目的质量管理可以分解为质量计划编制、质量保证与质量控制三个过程。
        (1)质量计划编制。是指确定与项目相关的质量标准,并决定如何达到这些质量标准。
        (2)质量保证。是定期评估总体项目绩效的活动之一,以树立项目能满足相关质量标准的信心。
        (3)质量控制。是指监控具体的项目结果以判断其是否符合相关的质量标准,并确定方法来消除绩效低下的原因。
        质量管理与项目管理是相辅相成的,例如质量管理和项目管理这两门学科都认识到以下几方面的重要性:
        (1)顾客的满意程度。强调对顾客的需求深刻理解、认真评估、准确定义和严格管理,以便与顾客的期望相符。这就要求既符合要求(项目交付的产品要与它宣布将交付的产品相符)又适于使用(交付的产品或服务要满足实际需求)。
        (2)预防胜于检查。强调预防比检查更重要。防患于未然的代价总是小于检查所发现错误的纠正代价。
        (3)管理层的责任。成功需要项目团队全体成员的参与,然而提供取得成功所需的资源却仍然是管理层的职责。
        (4)持续改进。计划、执行、检查和改进循环是质量改进的基础。执行组织采取的质量改进措施,不仅会改善项目管理的质量,而且也会改进项目产品的质量。
   题号导航      2012年下半年 信息系统项目管理师 下午试卷 案例   本试卷我的完整做题情况  
1 /
2 /
3 /
 
第3题    在手机中做本题