毕业论文(软件开发项目中的质量管理研究)论文

上传人:1666****666 文档编号:36366230 上传时间:2021-10-30 格式:DOC 页数:40 大小:1.04MB
返回 下载 相关 举报
毕业论文(软件开发项目中的质量管理研究)论文_第1页
第1页 / 共40页
毕业论文(软件开发项目中的质量管理研究)论文_第2页
第2页 / 共40页
毕业论文(软件开发项目中的质量管理研究)论文_第3页
第3页 / 共40页
点击查看更多>>
资源描述
III引 言摘 要随着知识经济时代的到来,企业能否合理有效地管理自己的知识已成为企业在激烈的市场竞争中能否获取竞争优势的关键。知识经济的时代同时也是信息化的时代,整个社会的高效运作对计算机软件产品的依赖程度越来越高。软件质量以及软件质量管理日益成为人们关注的焦点。软件质量特性,反映了软件的本质。对软件的开发过程进行质量管理是解决软件质量问题的重要方法。目前国 际上流行的ISO9001标准和CMM模型等都是为了指导企业如何建立符合质量管理要求的开发过程而提出的。但软件产品是一种特殊的逻辑产品,它的“制造”过程基本等同于“设计”过程,显然不能生搬硬套硬件产品质量管理方法来管理软件产品的质量,因此,需要建立专门针对软件产品的质量管理方法。本文详细阐述了软件项目质量管理的认识,并结合实际经历就软件项目中的质量管理做了一些探讨。文章详细介绍了质量和软件质量的概念、软件质量工程体系的思想和内容、软件质量控制和管理的方法和技术,包括软件质量标准、配置管理、软件质量保证和软件测试等;针对实际的软件质量工作,深入探讨了需求分析、软件设计、编程和测试、软件发布和维护等各个阶段的软件质量活动。关键词:质量 软件质量 质量控制 质量保证 质量管理 过程管理软件测试 软件项目管理 31AbstractWith the advent of the era of knowledge economy, whether an enterprise can reasonably and effectively manage its own knowledge has become a crucial factor that can impact its access to success sufficiently. The erain the mean timeis the era of information too.The efficiency of its business in the whole society is depending heavily on the computer software. The quality of software is more of vital concernment. Software quality characteristics reflect the essence of software. Quality management of software development process is an important approach to solve the problem of software quality. There are already a lot of standards of software quality management, such as ISO9001 and CMM, which can help organizations to establish the system of quality management. Different from traditional industrial products, the process of software development is at the same time as the process of producing. Thus traditional methods of quality control of hardware obviously could not reasonably be adapted to quality management of software. This thesis describes a software project quality management knowledge combined with practical experience of the software project quality management to do some research. Paper introduces the concept of quality and software quality, software quality engineering system of ideas and content, software quality control and management methods and technologies, including software quality standards, configuration management, software quality assurance and software testing, etc.; For the actual software quality and in-depth study of the needs analysis, software design, programming and testing, software release and maintenance activities in various stages of software quality.Keywords: Quality Software Quality Quality Control Quality Assurance Quality Management Process Management Software Testing Software Project Management 目 录第一章 引言1第二章 质量32.1 质量32.2 质量概念的发展32.3质量管理大师42.3.1戴明理论42.3.2朱兰理论52.3.3 Crosby理论52.3.4 6理论5第三章 软件工程基础73.1 软件工程基本原理73.2 质量管理体系ISO900183.3 项目管理知识体系PMBOK83.4软件能力成熟度模型集成CMMI9第四章 软件项目质量管理论述114.1 质量计划编制124.2 按照质量计划实施有效的质量控制134.3 对软件质量保证的认识144.3.1有关的SQA理论144.3.2 SQA的工作内容和工作方法154.4对软件配置管理的认识164.4.1配置管理是职责分工164.4.2配置管理工作的内容174.5 对软件测试的认识204.5.1软件缺陷204.5.2软件测试的内容214.5.3自动化测试及工具224.6软件质量分析工具234.6.1因果图234.6.2帕累托图234.6.3控制图24第五章 质量管理在实际项目中的应用255.1 定义合适的项目过程255.2质量管理责任分配255.2.1配置管理小组职责255.2.2测试小组职责265.2.3质量保证小组职责265.3质量管理实施275.3.1项目进度的质量保证275.3.2项目开发的各阶段质量保证275.3.3过程文档管理30结 束 语32致 谢33参考文献342第一章 引言第一章 引言质量,通常指产品的质量,广义的还包括工作的质量。它反映了与产品质量直接有关的工作对产品质量的保证程度。正如著名的质量管理专家朱兰(J.M.Juran)1994年在美国质量管理学会年会上所说,20世纪将以“生产率的世纪”载入史册,未来的21世纪将是“质量的世纪”。许多IT项目开发的系统应用在生死攸关的场合,例如,1981年,由计算机程序改变而导致的1/67的时间偏差,使航天飞机上的5台计算机不能同步运行,这个错误导致了航天飞机发射失败。1986年,1台Therac25机器泄露致命剂量的辐射,致使两名医院病人死亡。造成惨剧的原因是一个软件出现了问题,导致这台机器忽略了数据校验。软件是一个纯智力的特殊产品,描述软件质量的定义则比描述实际物品质量定义面临着更多的潜在因素。所以,在软件开发项目中认真抓好质量管理,并加强有关软件项目质量管理的研究是摆在我们面前的重要课题。国际化标准组织ISO在ISOPIEC9126中将软件质量定义为:“反映软件产品满足规定需求和潜在需求能力的特征和特征的总和”。Error! Reference source not found.而M. J . Fisher 将软件质量定义为:“所有描述计算机软件优秀程度的特性的组合”。 软件项目质量管理包括:质量计划编制、质量保证和质量控制三个过程域。质量计划是质量管理的第一过程域,它主要结合各个公司的质量方针,产品描述以及质量标准和规则通过收益、成本分析和流程设计等工具制定出来实施方略,其内容全面反应用户的要求,为质量小组成员有效工作提供了指南,为项目小组成员以及项目相关人员了解在项目进行中如何实施质量保证和控制提供依据,为确保项目质量得到保障提供坚实的基础。质量保证则是贯穿整个项目全生命周期的有计划和有系统的活动,经常性地针对整个项目质量计划的执行情况进行评估、检查与改进等工作,向管理者、顾客或其他方提供信任,确保项目质量与计划保持一致。质量控制是对阶段性的成果进行检测、验证,为质量保证提供参考依据,它是一个PDCA循环过程。回顾我国企业质量管理的发展,再分析现状,会发现很多问题,其中主要的一类问题就是企业质量管理发展不协调。由于我国质量管理的发展不是随着生产力的发展逐步形成并不断进步的自然历史过程,而是同所有发展中国家一样,是通过向发达国家学习、引进,形成的现有质量管理的框架。过去我们不少企业在管理方法上盲目追求“先进”,没有根据自身的水平踏踏实实地落实基础工作,结果企业质量管理领域用着不少时髦的新名词、新概念,但企业连最基本的过程控制乃至检验都还没有健全。进入二十一世纪了,面对这些现象,我国企业在及时把握世界质量管理发展的最新动态的同时,如何保持清醒的认识,找准自己的位置,避免犯过去同样的错误,保证我国企业质量管理能够健康协调的发展就显得非常重要。我们应该学习国外企业的成功经验,但不能脱离了政治、经济、历史、文化因素孤立地去学。要用发展的眼光看问题,尤其要注重从各国质量管理发展的历史中认识质量管理的客观规律,要考虑一些管理的概念和论点的提出环境和前提,企业对于全面质量管理也应同样持这种态度。然而我国中小型软件企业首先面对的是生存问题,因此在软件质量的投入方面有限,企业决策层普遍不重视质量管理工作,对质量、功能、进度和成本之间的相互制约关系缺乏正确的认识,往往将经济效益放在突出的地位,当经济效益与软件产品质量发生冲突时,往往是牺牲质量。另外,企业的管理水平比较低,开发过程也不够规范。在我国政府的大力推动下,软件企业纷纷建立起与自身发展相适应的质量体系。若要有效地使用ISO 9000或CMM管理体系,软件企业必须首先建立重视质量的组织结构,组织结构的各个层次必须始终关注产品质量,并有效发挥各自在质量管理上的功能,这是中小型软件企业提高质量的一个关键点。企业领导在质量管理工作中应发挥积极的引导作用,软件企业的组织结构各个层次对产品质量的关注程度影响着最终产品的质量。6第二章 质量第二章 质量2.1 质量质量是客户满意度的体现。ISO质量体系中,质量是一组固有特性满足明示的、通常隐含的或必须履行的需求或期望的程度。质量的内涵是由一组满足客户及其他相关方所要求的固有特性组成,包括内在特性和外在特性:1) 质量的客户属性,质量是相对客户而存在,也是质量相对性的一种体现。 2) 质量的成本属性,也可以称为质量的经济性,质量越好的产品,带给社会的损失就越小 。3) 社会属性,质量很多时候体现的是一种理念,是哲学而不仅仅是方法,它与社会的价值观有直接的关系。 4) 可测性。产品的质量好坏将取决对相应特征的衡量,质量的可测性决定了质量的可控特性。5) 质量的可预见性:可以预测质量在不同过程中的结果。2.2 质量概念的发展质量管理大致经历了质量检验阶段、统计质量控制阶段、全面质量管理阶段和标准质量管理阶段这四个过程Error! Reference source not found.1) 质量检验阶段:它所使用的手段是各种各样的检验设备和仪表,检验方法是以对零件与产品进行全数检查和筛选为主,它的基本方式是整个生产过程实行层层把关,防止不合格品流入下一道工序或出厂。2) 统计质量控制阶段:随着现代应用数学的发展,数理统计原理、概率论被应用到质量管理中,在有条件的地方广泛推行抽样检验,利用控制图对生产的工序进行动态控制,有效地防止了废品的产生,减少了不合格品,降低了成本。3) 全面质量管理阶段:在企业中以质量为中心,建立全员参与基础上的管理,有对全面质量的管理、对全过程的管理和由全体人员参与的管理“三全”组成的对生产的全面控制。标准质量管理阶段:由于各国都制订了各自不尽相同的“质量保证要求”,造成重复检查、认证,形成了事实上的非关税贸易壁垒。为了消除非关税贸易壁垒,减少重复检查,国际标准化组织(ISO)成立了第176技术委员会(TC176),以“要让全世界都接受和使用ISO 9000族标准,为提高组织的运作能力提供有效地方法;增进国际贸易,促进全球的繁荣和发展;使任何机构和个人,可以有信心从世界各地得到任何期望的产品,以及将自己的产品顺利的销售到世界各地”为目标,其负责制定了所有的ISO 9000族标准。这个标准在全球范围内得到了广泛的应用,对推动质量管理工作和促进国际贸易的发展发挥了重要作用。同时质量体系认证的国际互认制度也在全球范围内得以建立和实施。2.3质量管理大师2.3.1戴明理论戴明的重要成就之一就是“PDCA戴明环”理论,如图1-1所示。它将管理过程分为4个阶段,并且形成封闭的环路,以达到持续改进的效果。(1) Plan(计划):制订提高质量的改进计划。(2) Do(执行):执行计划。(3) Check(检查):通过检查来判断是否达到期望的结果。(4) Action(纠正):实施纠正行动。2.3.2朱兰理论朱兰认为至少80%的质量问题应该由管理负责,20%的质量问题才是技术问题。他的重要成就就是被世人称颂的“朱兰三步曲”:(5) 质量计划为建立有能力满足质量标准的工作程序,质量计划是必须的。(6) 质量控制为了掌握何时应该采取措施纠正质量问题就必须开展质量控制。(7) 质量改进质量改进有利于发现更好的管理工作方式。2.3.3 Crosby理论零缺陷管理之父菲利浦克劳士比认为质量就是符合要求,而不是最好的;质理系统是用来预防的,而不是用来检验的;质量的标准就是零缺陷,而不是差不多就好。质量管理四项基本原则:基本原则一:质量的定义,质量的定义就是符合要求,而不是好。“好、卓越、美丽、独特”等述语都是主观的和含糊的。一旦质量被定义为符合要求,则其主观随之消散。任何产品、服务或过程只要符合要求就是有质量的产品、服务或过程。如果不能符合要求,就会产生不符合要求的结果。基本原则二:质量系统,产生质量的系统是预防,不是检验。检验是在过程结束后把坏的从好的里面挑选出来,而不是促进改进。预防发生在过程的设计阶段。包括沟通、计划、验证以及逐步消除出现不符合的时机。通过预防产生质量,要求资源的配置能保证工作正确地完成,而不是把资源浪费在问题的查找和补救上面。基本原则三:工作标准,工作标准必须是零缺陷(Zero Defects),而不是“差不多就好”(Close enough is good enough)。“差不多就好”是说,我们将仅仅在某些时候满足要求。而零缺陷的工作标准则意味着我们每一次和任何时候都要满足工作过程的全部要求。它是一种认真的符合我们所同意的要求的个承诺(A Personal Commitment)。基本原则四:质量的衡量,质量是用不符合要求的代价(Price of Nonconformance, PONC)来衡量的,而不是用指数。指数是一咱把符合项相关的坏消息进行软处理的方法。不管怎样,如果我们软化了坏消息,那么管理者将永远不会采取行动。而通过展示不符合项的货币价值,我们就能够增加对问题的认识。通过浪费的钱财、浪费的时间、努力、材料来衡量质量,能产生用来努力引导改进并衡量改进成果的金钱数字。2.3.4 6理论20世纪70年代,摩托罗拉在统计学原理上建立了6理论,该理念经是以追求完美无暇为最终目标的管理理论,在非常多的大型企业中得到运用。西格马“”是一个希腊字母,代表“标准差”,在商业活动中,它代表流程与完美的差距。6的值是99.99966%,也就是说百万个产品中有三四个是次品。通过各位质量大师对质量不同角度的分析,那么在软件行业中应该由哪些人来从事质量工作呢?10第三章 软件工程基础第三章 软件工程基础3.1 软件工程基本原理为了改进软件企业的管理,为了“更快、更好、更便宜”地开发软件产品,既要有技术措施(方法和工具),又要有必要的组织管理措施。从学科发展角度出发,人们很自然地想到了软件工程。因为软件工程正是从管理和技术两方面研究如何采用工程的概念、原理和技术方法并加以综合,指导开发人员更好地开发和维护计算机软件的一门新的学科。自从1986年在联邦德国召开的一次国际会议上正式提出并采用“软件工程”Error! Reference source not found.这个术语以来,研究软件工程的专家学者们陆续提出了100多条关于软件工程的准则或“信条”。著名的软件工程学家波汉姆(Boehm)综合这些学者们的意见,并总结了多年开发软件的经验,于1983年在一篇论文中提出了软件工程的7条基本原理。他认为这7条原理是确保软件产品质量和开发效率的原理最小集合。人们虽然不能用数学方法严格证明它们是一个完备的集合,但是,事实证明在此之前已经提出的100多条软件工程原理都可以由这7条原理的适当组合所蕴涵或派生得到。7条原本原理的内容如下:1) 按照软件生命周期的阶段划分制订计划,严格依据计划进行管理;2) 坚持进行阶段评审;3) 实行严格的产品控制;4) 采用现代程序设计技术;5) 结果应能清楚地审查;6) 开发小组的人员应该少而精;7) 承认不断改进软件工程实践的必要性。以上7条只是基本原理,对每一个软件企业而言,如何根据这几条原理管理和改进软件产品的开发和维护过程,问题还是不少,主要是可操作性差,缺少评价标准,以及缺少相互之间的可比性。于是,人们又只好求助于其他产品质量管理、项目管理相关的标准体系,或者是新出现的并已证明有效的专门关于软件过程改进和管理的评价模型。3.2 质量管理体系ISO9001ISO9001规定了企业质量管理体系的基本要求,它是通用的,适用于所有行业或经济领域,不论其提供何种类别的产品。ISO9001本身并不规定产品质量的要求。为促进质量目标的实现,ISO9001标准明确规定了以下8项质量管理原则:1) 以顾客为关注中心;2) 高层管理者的推动;3) 全员参与;4) 采用过程方法;5) 管理的系统方法;6) 持续改进;7) 基于事实的决策;8) 供方互利的关系。过程方法,任何“得到输入并将其转化为输出”的序列活动均可视为过程。为了使组织有效运行、必须识别和管理许多内部相互关联的过程。通常,一个过程的输出将直接形成下一过程的输入。系统识别和管理组织内所使用的过程,特别是这些过程之间的相互作用,称为“过程方法”。ISO9001标准鼓励采用过程方法建立和实施质量管理体系。3.3 项目管理知识体系PMBOK项目Error! Reference source not found.,是在限定时间内、利用有限的资源、为完成有一定质量要求的目标而进行的一系列有序活动的一次组合。充分认识项目属性,有利于做好项目管理。项目基本属性8条,包括:1) 整体性,是一系列活动的有序集合;2) 唯一性,每个项目均是具体的、特殊的,没有两个完全相同的项目;3) 一次性,目标一旦完成,项目即告结束;4) 目标性,一个项目有确定的成果性目标;5) 多约束性,在多种约束条件下完成项目的成果性目标,约束包括时间、资源、质量及其他非技术性约束;6) 依赖性,项目活动的进行涉及多个方面的因素,有对内部各级各部门的依赖,有对用户条件的依赖,有对标准的依赖和对各类变更的依赖,等等;7) 冲突性,项目内部会有多种冲突,需要沟通、协调和培训;8) 周期性,项目不同,但都有其基本的生命周期属性,都会经历大体相同的阶段。用于刻画一个项目的主要参数有:范围、进度、资源、成本和质量。项目生命周期划分成4个阶段:定义、策划、实施、收尾。项目基本管理过程共五个:启动过程、策划过程、执行过程、控制过程和结束过程。项目管理的基本职能有9个,分别为:项目整体管理、项目范围管理、项目时间管理、项目成本管理、项目质量管理、项目人力资源管理、项目沟通管理、项目风险管理、项目采购管理。3.4软件能力成熟度模型集成CMMI软件能力成熟度模型集成的英文全名是Capability Maturity Model Integration,缩写为CMMIError! Reference source not found.。在美国国防部的资助下,由卡内基梅隆大学软件工程研究所(SEI)建立,用于评价软件开发组织软件过程能力成熟度的模型。后来此模型被用于软件开发组织内部的软件过程改进。为什么需要CMMI,第一为了软件过程评估(SPA),即指出该企业所面对的与软件过程有关的、最急需解决的问题,以便改进;第二为了软件过程改进(SPI),即帮助企业对其软件过程向更好的方向改变;第三为了软件能力评价(SCE),即鉴别软件承包者的能力资格;或检查/监督正用于软件制作的软件过程的状况。CMMI阶梯式表示法,即组织成熟度方法如图3-1所示:1级初始级2级管理级配置管理过程和产品质量保证供应合同管理项目监控和控制项目计划需求管理测量和分析3级定义级产品集成集成项目管理组织培训组织过程定义组织过程重点需求开发验证确认风险管理决策分析和解决组织环境的集成集成供应商管理4级定量管理级定量项目管理组织过程性能5级优化级组织革新和实施原因分析和解决5 优化级4 定量管理级3 定义级2 管理级1 初始级图3-1 CMMI阶梯24第四章 软件项目质量管理概述第四章 软件项目质量管理论述作为国内软件企业,要想在同行业树立自己的品牌,在国际软件外包业务中取得更多的市场份额,仅靠以往的人力资源优势已经不太现实,提高软件质量才是软件企业的唯一出路。随着时代的发展,各企业的信息化程度越来越高,一旦软件使用过程中出现问题,对客户的影响将无法估计。因此,越来越多的客户在软件无法正常使用的情况下,会向软件企业提出质疑,表示不满,甚至提出索赔。大浪淘沙,很多企业就这样悄然退出了历史的舞台。如今软件企业已不能一味追求利润,而需要将更多的资源和精力倾注在软件质量上。为什么现在中国有那么多的软件企业每年投入大量资源和精力在CMMI认证上,因为CMMI可以给企业带来规范化的管理和过程,有了好的过程,才能产生好的结果。那什么是软件的质量呢?它就是使企业开发出来的产品具备满足或隐含需求能力的所有特性的总和,也就是说要满足“需求规格说明书”上提出的或者隐含的所示需求,使项目相关人员对其认可。软件项目的质量管理指的是保证项目满足其目标要求所需要的过程,它包括编制质量计划、质量控制、软件质量保证、软件配置管理、软件测试及软件过程改进所形成的质量保证系统。如图4-1:4.1 质量计划编制现代质量管理的基本宗旨是:“质量出自计划,而非出自检查”。只有做出精准的质量计划,才能指导项目的实施、做好质量控制。 质量管理计划就是为了实现质量目标的计划。而质量目标则是由商业目标决定的。质量管理计划是全面质量管理的行动纲领。 编制项目的质量计划,首先必须确定项目的范围、中间产品和最终产品,然后明确关于中间产品和最终产品的有关规定、标准,确定可能影响产品质量的技术要点,并找出能够确保高效满足相关规定、标准的过程方法。编制质量计划通常采用流程图、因果分析图等方法对项目进行分析,确定需要监控的关键元素,设置合理的见证点(W点)、停工待检点(H点),并制定质量标准: 1) 流程图: 显示系统的各种成分是如何相互关系的,帮助我们预测在何处可能发生何种质量问题,并由此帮助开发处理他们的办法。2) 因果分析图(也称鱼刺图): 对于复杂的项目,编制质量计划时可以采用因果分析图,描述相关的各种原因和子原因如何产生潜在问题或影响,将影响质量问题的“人员、设备、参考资料、方法、环境”等各方面的原因进行细致的分解,方便地在质量计划中制定相应的预防措施。其次,质量计划中还必须确定有效的质量管理体系,明确质量监理人员对项目质量负责和各级质量管理人员的权限。戴明环(又名PDCA循环法)作为有效的管理工具在质量管理中得到广泛的应用,它采用计划执行检查措施的质量环,质量计划中必须将质量环上各环节明确落实到各责任单位,才能保证质量计划的有效实施。4.2 按照质量计划实施有效的质量控制质量计划确定后,按照其建立的质量管理体系,各责任单位就必须按照PDCA质量环的要求,实施有效的质量控制。质量控制应贯穿于项目的整个过程,它可分为监测和控制两个阶段:监测的目的就是收集、记录和汇报有关项目质量的数据信息;控制就是使用质量监测提供的数据,进行控制,确保项目质量与计划保持一致。 在质量监测过程中,对于质量计划中设置的见证点、停工待检点,质量监测人员要按照作业程序及时进行测量检查(其中对于停工待检点必须由监理人员签字认可后才能进入下一道工序),以确定项目成果(或阶段成果)是否符合相关的质量标准。对于见证点或停工待检点要防止跳过检查,因为避免错误的成本总是大大低于补救错误的成本。对质量监测的结果应采用相应的统计方法进行分析,如帕累托图法(按发生频率排序的直方图,它显示了可识别原因的种类和所造成的结果的数量)等。通过统计分析对人员、设备、参考资料、方法、环境等影响项目质量的因素进行监控,确定项目实施过程是否在控制之中,同时进行趋势分析,对一些偏向于不合格的趋势及早进行控制。质量控制阶段应根据验收数据做出验收决定,确定是否进入下一步工序。对于质量监测中发现的不合格,应及时利用“因果分析图”等方法分析原因,并进行适宜的处置,保证不合格得到识别和有效的控制。不合格处置包括返工、返修、降级、让步放行、报废等形式。 质量监测分析时,对于已发现的不合格或潜在不合格,应制定相应的纠正措施或预防措施,以消除不合格或潜在不合格的原因,防止不合格的发生。纠正措施或预防措施制定后,应对质量计划进行相应的调整,保证项目的顺利实施。 项目收尾包括项目评估和项目终止两个阶段。项目收尾阶段的质量控制是一个非常重要而又容易忽视的内容。项目质量评估不仅仅是在项目完成后进行,还包括对项目实施过程中的各个关键点的质量评估。项目质量评估看起来属于事后控制,但它的目的不是为了改变那些已经发生的事情,而是试图抓住项目质量合格或不合格的精髓,以使将来的项目质量管理能从中获益。 项目终止阶段,是在决策项目终止后,检查项目文件资料完备,包括项目施工质量验评表、竣工报告等,同时进行项目总结。项目总结是一个把实际运行情况与项目计划不断比较以提炼经验教训的过程。通过项目质量计划和总结,项目过程中的经验和教训将得到完整的记录和升华,成为“组织财富”。4.3 对软件质量保证的认识软件质量保证(Software Quality Assure SQA)Error! Reference source not found.是为了确保软件开发的流程按照事先定义的规范开展,从而使软件质量得到提高。通常是以软件质量控制的结果作为其工作的重要输入,SQA要保证在质量体系中实施全部的计划和活动,以保证质量得到提高。它是以非技术为手段,从源头防止缺陷的产生,并贯穿项的始终,属于管理职能。SQA人员在开发过程中往往起到监督和管理工作的作用。SQA人员一般需要有丰富的技术和管理经验,不同能力的SQA可以在质量管理过程扮演不同角色。有的可以扮演警察,只负责按照规范进行检查,及时地发现问题;有的可以扮演医生,发现问题解决问题;有的还可以扮演教练,发现问题解决问题,并且指导他人如何避免问题的再次发生。4.3.1有关的SQA理论 我们都知道一个项目的主要内容是:成本、进度、质量;良好的项目管理就是综合三方面的因素,平衡三方面的目标,最终依照目标完成任务。项目的这三个方面是相互制约和影响的,有时对这三方面的平衡策略甚至成为一个企业级的要求,决定了企业的行为,我们知道IBM的软件是以质量为最重要目标的,而微软的“足够好的软件”策略更是耳熟能详,这些质量目标其实立足于企业的战略目标。所以用于进行质量保证的SQA工作也应当立足于企业的战略目标,从这个角度思考SQA,形成对SQA的理论认识。 软件界已经达成共识的:影响软件项目进度、成本、质量的因素主要是“人、过程、技术”。首先要明确的是这三个因素中,人是第一位的。 现在许多实施CMM的人员沉溺于CMM的理论过于强调“过程”,这是很危险的倾向。这个思想倾向在国外受到了猛烈抨击,从某种意义上各种敏捷过程方法的提出就是对强调过程的一种反思。“XP”中的一个思想“人比过程更重要”是值得我们思考的。我个人的意见在进行过程改进中坚持“以人为本”,强调过程和人的和谐。 根据现代软件工程对众多失败项目的调查,发现管理是项目失败的主要原因。这个事实的重要性在于说明了“要保证项目不失败,我们应当更加关注管理”,注意这个事实没有说明另外一个问题“良好的管理可以保证项目的成功”。现在很多人基于一种粗糙的逻辑,从一个事实反推到的这个结论,在逻辑上是错误的,这种错误形成了更加错误的做法,这点在SQA的理解上是体现较深。 如果我们考证一下历史的沿革,应当更加容易理解CMM的本质。CMM首先是作为一个“评估标准”出现的,主要评估的是美国国防部供应商保证质量的能力。CMM关注的软件生产有如下特点:质量重、规模较大。这是CMM产生的原因。它引入了“全面质量管理”的思想,尤其侧重了“全面质量管理”中的“过程方法”,并且引入了“统计过程控制”的方法。可以说这两个思想是CMM背后的基础。 上面这些内容形成了我们对软件过程地位、价值的基本理解;在这个基础上我们可以引申讨论SQA。 4.3.2 SQA的工作内容和工作方法4.3.2.1计划针对具体项目制定SQA计划,确保项目组正确执行过程。制定SQA计划应当注意如下几点: l 有重点:依据企业目标以及项目情况确定审计的重点。l 明确审计内容:明确审计哪些活动,那些产品。 l 明确审计方式:确定怎样进行审计。 l 明确审计结果报告的规则:审计的结果报告给谁。4.3.2.2审计/证实依据SQA计划进行SQA审计工作,按照规则发布审计结果报告。注意审计一定要有项目组人员陪同,不能搞突然袭击。双方要开诚布公,坦诚相对。审计的内容:是否按照过程要求执行了相应活动,是否按照过程要求产生了相应产品。对审计中发现的问题,要求项目组改进,并跟进直到解决。4.3.2.3SQA的素质过程为中心:应当站在过程的角度来考虑问题,保证了过程,QA就尽到了责任;服务精神:为项目组服务,帮助项目组确保正确执行过程;了解过程:深刻了解企业的工程,并具有一定的过程管理理论知识;了解开发:对开发工作的基本情况了解,能够理解项目的活动;沟通技巧:善于沟通,能够营造良好的气氛,避免审计活动成为一种找茬活动。4.4对软件配置管理的认识 软件配置管理(Software Configuration Management ,SCM)Error! Reference source not found.是软件工程的一个基础活动,它始终贯穿软件的整个生命周期。在项目管理理念中变化是永恒的,不变是短暂的,特别是在软件开发项目中需求的变更是最常见的。变更不只局限需求方面,但需求的变更可能意味着项目的范围发生了变化,那么设计、开发和测试工作都会受到影响。在一些管理不规范的项目中,经常会出现一些被修复的缺陷又再次发生,一些新开发的功能又不见了,之前测试通过的项目又出现问题等情况,这些情况都有可能因为开发人员把代码互相覆盖造成的,也就是说软件产品版本出现混乱。因此 在软件开发过程中引入软件配置管理是必要的,其目的就是为了对软件产品的可回溯性和完整性提供保障,简单来讲就是要将软件开发过程中的各种工作成果管理并控制起来。4.4.1配置管理是职责分工高层经要为软件配置管理工作提供必要的资源和支持,并在里程碑处参与对软件配置管理的评审工作。配置管理员SCME通常要协助组织和项目组制订相关的配置管理计划,并且按照配置计划对配置项进行识别、标识及管理,保证配置库中的内容是可加回溯的、完整的。SEPG(软件工程过程)要负责开发和维护级配置管理工作的相关流程及模版,并负责对配置管理员进行培训和过程指导,参与审计软件配置管理的过程,并协助相关人员制订软件配置管理的过程改进方案。变更控制委员会CCB(Change Control Board)负责审批基线的变更,并确保每个基线的变更都经过所有项目相关人员的认可,通过正式的评审活动对变更进行分析、评估风险工作量,并对是否变更做出结论。项目经理要协助配置管理员SCME制订配置管理计划并协助执行该计划,负责对受控状态下配置项变更的审批工作,负责基线变更发布和变更的申请有,一般还要在里程碑处对配置管理工作进行评审。4.4.2配置管理工作的内容软件的配置管理的工作主要集中在配置管理计划、配置标识、配置库、配置审计等几个部分。其目标是为了使软件配置管理工作是有计划可循的,在开发过程中所产生的工作产品是经过标识的并受到控制的,而且是要具有可用性的,其标识的工作产品所发生的变更是受控的,使得项目相关人员可以及时了解软件基线版本的内容和状态。4.4.2.1配置管理计划配置管理计划主要负责人是配置管理员,项目经理和软件质量保证人员要提供必要的协助,SEPG要负责提供相应的指导,该计划也可以作为项目计划的一个组成部分。配置管理员在制订配置管理计划时要对项目的配置管理工作进行相应的评估,将所识别出来的配置项生成列表,规划配置库的结构及相应权限,定义项目构建的策略和流程,描述基线的计划,制订项目备份的策略和容错方案。4.4.2.2配置标识首先要对配置项进行标识,要将工作产品作为配置项,并为每个配置项指定责任人和纳入管理的时间计划,还要为配置项制定命名规范和版本标识规范。基线同样需要进行标识,通常软件项目都会建立不同类型的基线,例如:需求基线、设计基线等。 配置标识是软件配置管理的基石,要给每个配置项提供唯一的标识。例如去餐厅就餐时,每张餐桌都有一个唯一的号码,餐牌上的每道菜都有一个唯一的菜名,每个服务员都有自己唯一的编号。这样无论顾客多少,餐厅的服务都不会出现混乱,这就是标识的重要性。4.4.2.3配置库在软件配置管理中要实现有效地进行变更控制就需要通过配置库来完成,配置库分为以下三种:开发库是指给开发和测试人员日常使用的,需要频繁对其内容进行修改的,或者说开发库中存放的是正在开发而未完成的工作产品,开发库也会有权限控制的功能,但比较宽松。受控库通常是阶段性的工作成果,要必须对其进行管理的,它必须经过审批后方可进入受控库。产品库是指软件产品通过测试后,储存每次发布给客户的各个版本.4.4.2.4基线变更控制为有效控制变更对项目带来的影响,保证工作产品在整个软件生命周期内的可追溯性和一致性,配置管理员、项目经理、软件质量保证工程师,以及项目团队成员都将参与基线变更控制的过程。其流程如图所示,其变更控制活动如图4-2:4.4.2.5基线发布基线的发布是指建立基线后并将其通知给项目相关人员,其发布的流程和活动如图4-3所示。4.4.2.6配置审计配置审计主要是对基线和配置库的完整性、正确性和基线间的一致性进行审计。审时的时机有2个:阶段性里程碑处和基线变更之后。 软件质量保证人员SQA对配置库进行不定期审计,以验证配置管理员SCME是否按照计划及规范执行相关工作。4.5 对软件测试的认识软件质量很重要,当前大家都对此有了一定的认识。软件测试对保证软件质量是十分必要的。软件测试Error! Reference source not found.有自己一套完整的、严格的理论与实践体系。使用人工或自动的手段来运行或测定某个软件系统的过程,其目的在于检验它是否满足规定需求或弄清预期结果与实际结果之间的差别。是帮助识别开发完成(中间或最终的版本)的计算机软件的正确度、完全度和质量的软件过程。简单的来说,软件测试是为了发现程序中的错误而执行的过程。4.5.1软件缺陷我们可以把所有的软件问题统称为软件缺陷,但为了能更严格地定义软件缺陷,避免开发组内产生不同的认只,可以从以下5点来定义软件缺陷Error! Reference source not found.:(1) 软件未达到产品说明书标明的功能; (2) 软件产品出现了产品说明书指明不会出现的错误;(3) 软件功能超出产品说明书范围;(4) 软件未达到产品说明虽未指出但应达到的目标,此条的目的是抓住产品说明书上的遗漏之处;(5) 软件测试员认为软件难以理解、不易使用、运行速度缓慢,或者最终用户认为不好。说明 :可以把这里的产品说明书理解为包含用户需求说明书、软件需求规格说明书等在内的各类资料。只是项目组共同评审或协定通过,对开发的产品进行定义和描述的文档、资料、口头约定(不建议养成口头约定的习惯)等均可称为产品说明书。4.5.2软件测试的内容4.5.2.1软件测试分类按软件测试特性可以把软件测试分为白盒测试、灰盒测试和黑盒测试三种,其特征及包含的内容如下。l 白盒测试:测试人员直接在软件的源程序上进行测试、修改、复测。要求测试工程师对软件的内部结构及逻辑有深入的了解,并掌握写成该源程序的语言。分为:语句测试;分支测试;路径测试;目测。l 灰盒测试:介于白、黑两者之间,是两者的结合。测试工程师对软件工程结构有一定了解,但了解的程度又不需要达到白盒测试的深度。l 黑盒测试:测试人员不必深入了解软件的内部设计,只是从一个终端用户的角度,根据产品说明书的指标,从外部测试软件的各项功能及性能。黑盒测试主要是功能测试。按软件开发过程可以把软件测试分为单元测试、集成测试、系统测试、用户验收测试及回归测试。回归测试一般是在缺陷修改之后执行,保证原缺陷不在重现,并且缺陷的修改不影响其他功能。4.5.2.2测试计划的制订在软件测试工作中,测试计划作为整为整个项目计划的一部分,根据开发所处的阶段不同编写不同的测试计划。测试计划作为开展软件测试的纲领性文档,如同项目开发计划对一个软件开发一样重要,其内容一般包括如下:l 测试计划书的文件名及版本号;l 基本情况介绍(测试目的、背景、测试范围及参考文献等);l 测试的具体目标(要测的是软件的哪些部分);l 具体执行的测试类型;l 测试通过的判断准则;l 测试用例;l 测试准备工作及测试结果的处理;l 测试工作中涉及的相关事项(测试工具、硬件,第三方软件等);l 部门责任分工;l 测试人力资源分配;l 缺陷管理流程。4.5.2.3设计测试用例测试用例(Test Case)是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求。比较通常的说法是:指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等,并形成文档。测试人员根据测试计划不同阶段和指定的模版,设计不同阶段的测试用例并进行同行评审。该测试用例通过技术评审后,进入一步工作,根据测试用例执行测试。4.5.2.4执行测试测试人员依据测试计划与测试用例执行测试工作,并对测试过程中发现的缺陷进行跟踪,及时解决验证。将测试结果记录在测试报告中,用缺陷管理列表或专门的缺陷管理工具来记录所发现的缺陷,并及时通报给开发人员。4.5.3自动化测试及工具一般认为就是使用(自动化测试)工具来进行的测试叫自动化测试,一般不需要人干预。自动化测试有如下优点Error! Reference source not found.:(1) 一旦积累了一套自动化测试程序,日后自动化测试节省大量的时间和资源;(2) 没有时间限制一般安排在下班后;(3) 可以反复执行;(4) 保证测试执行过程的一致性及准确性;(5) 有较高的功能测试覆盖率;(6) 有模拟操作,进行压力测试,这是手测很难实现的。自动化测试并不能完全取代手测,与任何事物一样,自动化测试也有它的不完美之处。常见的测试工具如下:(1) 窗口/网络软件用户界面测试:WinRunner、QuickTest Professional、SilkTest、VisualTest。(2) 性能测试:LoadRunner、SilkPerformer、Rational Performance Tester、QALoad。(3) 软件测试管理工具:TestDirector、SilkCentral Test Manager、Rational TestManager/ClearQuest。(4) 自开发的测试软件,适用于特定领域。4.6软件质量分析工具4.6.1因果图因果图又称鱼骨图或石川图Error! Reference source not found.,它侧重表示潜在问题之间的各种相关因素。通过因果图可以刺激思维和讨论,以便对问题进行深入讨论,寻找潜在的根源。主要步骤:(1) 确定讨论问题。(2) 挑选人员进行讨论。(3) 确定主要原因,画出问题框和主干箭线。(4) 确定下一级主要原因。(5) 确定各缺陷原因。(6) 画出整个因果图。(7) 分析原因及纠正行动。(8) 确定纠正行动。4.6.2帕累托图帕累托图是一种柱状图,如图1-3所示。帕累托图对问题发生的频率或影响按照从大到小的方式进行排列,从而确定解决问题的先后顺序。帕累托图是根据帕累托法则得来的。帕累托法则也称为80/20法则,它是一种统计规律。例如:社会上的80%财富掌握在20%的人手中,大约80%的问题目是因为20%的原因造成的。通过帕累托图,管理人员可以很快找到那20%的主要原因并进行解决,使系统的质量得到迅度提升。4.6.3控制图控制图可以对开发过程中的质量参数进行采样,科学地分析其是随机波动还是异常波动,从而对开发过程中的异常趋势提出预警人,以便项目管理人员及时采取行劝,消除异常,从而达到提高和控制质量的目的。对于开发环节中的某一特性,例如,对缺陷严重程度进行跟踪时,允许其出现级别较高的缺陷。只要在控制界限内的过程结果都是可以接受的,如果过程结果超出了控制界限,那通常称为失控。31第五章 质量管理在实际项目中的应用第五章 质量管理在实际项目中的应用5.1 定义合适的项目过程软件过程是指开发和维护软件产品的活动、技术和实践的集合。在以计算机网络为基础的现代社会信息化背景下,过程管理作为现代企业管理的先进思想和有效工具,随着外部环境与组织模式的变化而变化。因此,作为一个好的软件项目过程,必须针对企业和项目的实际情况,确定软件项目运作流程,定义软件功能及相关性能,明确各阶段的进入条件和退出条件,进行有效的过程控制与管理,在提高软件开发的效率和项目的成功率的基础上保证所开发软件的质量Error! Reference source not found.。5.2质量管理责任分配本人一直在公司任软件质量管理工作。公司在开发项目上按照规范化软件的生产方式进行生产,在生产流程上采用ISO9000的标准进行。每个项目除配备了项目开发所需角色外,还专门配备了配置管理小组、测试小组和质量保证小组确保质量管理的实施,下面针对这三种角色进行说明。5.2.1配置管理小组职责配置管理小组是保证项目开发完毕的同时,内部文档和外部文档都同时完成。内部文档的及时产生和规范,是保证项目开发各小组能够更好的接口和沟通的重要前提,从另一个方面讲,也是保证工程不被某个关键路径所阻塞而延滞的前提。如上所述,配置管理小组还是保证质量保证小组得以发挥作用的基础。配置管理小组的主要职责包括:完善各个部门发送需要存档和进行版本控制的代码、文档(包括外来文件)和阶段性成果;对代码、文档等进行单向出入的控制;对所有存档的文档进行版本控制;提供文档规范,并传达到开发组中。 5.2
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 其他分类


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!