软件缺陷发现.ppt
《软件缺陷发现.ppt》由会员分享,可在线阅读,更多相关《软件缺陷发现.ppt(80页珍藏版)》请在三一办公上搜索。
1、软件缺陷发现,测试是一项重要的缺陷发现手段还有很多手段:检查需求规格说明书、设计说明书等工作产品编写代码编译代码运行代码专职质量保证人员的工作产品大规模测试最终用户使用,6种手段:同行评审 测试 管理评审 PPQA发现 项目组内部发现 客户反馈,2.1同行评审(Peer Review),工作产品开发过程中,为了识别缺陷,由软件产品生产者的同行遵循已定义的规程对产品进行的技术评审产品:在定义项目软件过程时被确定,并作为软件开发计划的一部分被按排了进度;是最终产品的组成部分;是在软件开发或维护过程中产生或需要的一个可交付的文档。如:需求文档、设计文档、软件代码、单元测试产品、计划文档等同行:不局限
2、于从事相同工作的人,而是与该工作相关的所有人员(CMMI)。如:凡是从事软件相关工作的人都可称为同行,包括软件设计人员、软件开发人员、软件测试人员、软件需求人员、项目管理人员等,同行评审的目的:及早和高效地识别并消除缺陷,使软件更易读和可维护,减少最终泄漏到产品发布时的缺陷提高质量:相对动态测试,较易实现较高的覆盖率提高有效性:有效测试的基本原则之一:及早测试可预测性:减轻动态测试的不可控性和不可预测性培训目的:有效的评审相当于一次培训缺陷预防:为将来的项目改进提供数据和经验,不断改进开发过程、测试过程、评审过程等,在将来的项目中达到缺陷预防的目的主要工作:发现工作产品中的具体错误通过对这些错
3、误的分类和统计,发现共同的错误类型和将来避免这类错误的方法,缺陷前移,同行评审的好处,中高层:可以及时掌握项目的进展项目组:可以利用组织中最有才干的人,即使他们没有参与项目组也能发挥作用令项目组成员有一种成就感、参与感、得到认可的感觉,从而保持团队的积极性团队成员可以发展他们的技能,指导那些缺乏经验的人员通过评审更加留意缺陷,从而帮助预防缺陷,同行评审有助于提高质量、提高生产率、降低成本使开发人员及时得到专家的帮助和指导,加深对工作成果的理解,更好地预防缺陷,从而提高开发生产率消除工作成果的缺陷,可以提高产品质量,提高客户满意度成本低:查找错误的头脑风暴无须特殊环境早期即可引入:越早消除缺陷越
4、能降低开发成本,随着开发进展,缺陷不断泄漏和放大;需不断评审,减少泄漏,效率高:有效的同行评审发现的问题数可达40%左右大的问题基本都是通过这种手段发现的能定位问题发生的运因,从根本上处理AT&T的贝尔实验室引入审查后:生产率提高了14%,质量提高了10倍某大型电力交换系统:发现错误的成本降低了10倍;审查发现错误的成效是测试的20倍TRW对一个大型软件进行了研究,发现2019个由用户发现的错误导致代码变更,其中:通过代码审查可以发现62.7%通过设计审查可以发现57.7%,2.1.1同行评审与测试,有些工作产品在早期就可进行同行评审,但不能测试测试不能发现某些特定类型的缺陷,如违反编程规范评
5、审(同行评审和管理评审)是静态测试技术的重要组成部分,应在动态测试前进行。可以发现产品中70%80%的缺陷,而动态测试发现的缺陷很难达到50%,评审的质量控制功能,进行同行评审会花费一些时间和工作量,但会在测试中节省更多,从而降低成本对于保存精确记录的大系统,一套完整的同行评审体系能使项目在每个测试阶段出现的错误减少90%,即使综合考虑同行评审活动的成本,同行评审也会使测试成本下降50%80%同行评审不能替代测试,反之亦然,2.1.2同行评审的种类,IBM的Fagan发明同行评审较著名的同行评审模型:IEEEE 1028评审微软的技术评审Gill Graham审查Van Emden审查Your
6、don结构化走查CMMI模型将同行评审分为三类正式评审技术审查走查,正式评审(Inspection),由经过同行评审培训的项目经理或PPQA主持,38人为宜一般在完成了一个工作产品后对其进行定位并清除工作产品中的缺陷以一种正式的形式进行,如:有正式的、事先定义好的有关职责的各种角色,并遵循组织规定的标准流程,技术审查(Technical Review),也称内部审查通常由技术负责人或项目经理召集,35人参加进行技术审查的一般时机:在工作产品的中期完成了某部分独立的工作产品时在书写草案遇到问题时就其中专门的一两项问题进行讨论和审查也可检查工作产品与规程、模板、计划、标准的符合性或变更是否被正确地
7、执行目的:通过对开发人员的工作产品的技术审查,提出改进意见,走查(Walkthrough),也称代码走查或代码走读审查范围:根据需求的优先级通常由管理人员来确定,主要是静态质量分析和编程规则检查。通常是小型讨论会,两三个人参加,作者主持一般在工作产品形成的早期进行,也可在编制工作产品的任何阶段进行评估和提高工作产品的质量或教育参加者,正式评审是正式的。技术审查和走查是常用的非正式同行评审方法,2.1.3同行评审的对象,所有软件开发的中间和最终工作产品:产品需求规格说明书用户界面规范及设计架构设计、概要设计、详细设计、模型源代码测试计划、设计、用例及步骤项目计划,包括开发计划、配置管理计划、质量
8、保证计划等以上所有评审涉及内容,应在编制的项目计划或小的开发计划中体现,不应也不能是临时的安排,2.1.4同行评审过程,根据同行评审的重要程度,正式评审、技术审查、走查三种形式的流程和成果物的使用力度不尽相同,但主要步骤和内容大体一致,正式评审流程,预备:为保证评审质量,可先进行一个预备会议。作者向评审组概要介绍评审材料允许并鼓励评审组成员动手查看工作产品或开发过程中用到的检查单等预备会结束时,把文档分发给与会者,包括:要审查的工作产品参考文档工作产品评审检查表工作产品审阅情况记录表这些材料应控制在2小时内审核完成为宜。主持人负责确定什么时间召开真正的评审会议,审查:在预备会和正式评审会之间,
9、评审小组成员对工作产品进行彻底检查,并依据相关标准和准则评审工作产品,记录发现的缺陷、问题种类与严重程度、所用的时间等评审:在预定的正式评审时间内(会议时间控制在2小时内),评审小组成员以会议形式聚在一起,依次对产品进行检查。每个评审员花一定时间(一般十几分钟)指出问题,并和作者确定问题和定义问题的严重程度。注意:评审过程中是发现错误,不是现场改正。会议中,记录员详细记录每个已达成共识的缺陷,包括缺陷的位置、简短描述缺陷、缺陷类别、该缺陷的发现者等。未达成共识的缺陷也将记录下来,加入“待处理”或TBD(To Be Discussed)标识,评审主持人将指派作者和评审员在会后处理评审会议中未能解
10、决的问题。,书写评审报告:评审主持人根据记录员的记录和自己的总结,在一天内写出评审报告,内容包括:根据评审专家个人的输入创建总的问题清单加入会议中发现的问题剔除经确认属于重复或无效的问题共同确定需要修改的问题及修改的程度返工:作者根据评审报告的决议,负责解决确定的所有缺陷和问题。跟踪:评审组长必须确保所提出的每个问题都得到了圆满解决。必须仔细检查对文档的每个修正,以确保没有注入新的错误。,正式评审流程,技术审查流程,准备:评审组长(通常是项目经理)要求项目组成员提供需要考虑的特定问题并分发评审材料,确定评审重点:需要注意的特定问题需要满足的特殊标准或规格说明需要审查的接口或依赖关系评审:评审人
11、各自审查评审材料,目的是发现错误,而非改正(通常每次评审会不超过小时)。评审组组长应在一天内写出评审报告。评审会议内容包括:汇总个人发现的问题加入会议中发现的问题,跟踪:作者负责解决评审报告中的所有错误及问题。评审组长检查所提出的每个问题是否都得到了解决。组长起草评审发现报告:问题或弱项清单小组对如何解决这些问题或弱项清单的建议行动事项,走查流程,形式更简单。主要有两种方式:参与者驱动法:参与者按照事先准备好的列表,提出他们不理解的术语或认为不正确的术语。作者必须回答每个质疑,要么承认有错误,要么对质疑做出解释文档驱动法:作者向评审人仔细解释文档(或代码)。可将评审的内容(如代码、架构图、业务
12、逻辑图等)用投影仪投射到屏幕上,作者对工作产品进行讲解,评审人不时针对事先准备好的问题或解释过程中发现的问题提出质疑可能比参与者驱动法更有效,往往能检查出更多错误经验表明,许多错误是由文档讲解着自己发现的走查过程中,每个评审人都要记录错误或建议,会后要整理会议记录,形成走查报告。工作产品的作者可根据自己的思路质疑走查报告,对代码的同行评审就是代码走查。可用投影仪打出关键代码位置与参与人员一起读也可几个开发人员一起进行交叉走查选定的进行代码走查的范围根据需求的优先级来具体确定,同行评审的结果,正常:评审专家作好了评审准备,会议正常,结果明确,不需要再次评审延期:30%以上评审专家没有作好准备,会
13、议无法正常进行,需要确定再次评审时间取消:在初审阶段就发现很多问题,需要作者进行修正,然后再进行第二次同行评审,2.1.5同行评审方式的比较,2.1.6同行评审方式的选择,对于同一个工作产品,根据所处的阶段可使用不同的评审方式工作产品刚勾画、起草时走查完成了某一个单独的章节时技术审查整个产品完成时正式评审,各工作产品通常采用的评审方式及参加人员:,项目总体计划走查项目经理、产品经理、需求提出者、市场或销售代表、技术负责人、质量保证工程师、高层技术管理者、过程管理者用户需求说明书走查需求分析师、项目经理、架构师、设计师、系统测试工程师、质量保证经理、用户或市场代表、文档编写者、业务专家、技术支持
14、代表产品需求规格说明书正式评审需求分析师、项目经理、架构师、设计师、系统测试工程师、质量保证经理、用户或市场代表、文档编写者、业务专家、技术支持代表,项目已定义过程正式评审过程改进组负责人、过程改进工作组成员、管理级的过程拥有者、使用过程的实践者的代表开发计划技术审查创建者、项目经理、维护者、程序员系统测试计划技术审查测试工程师、程序员(单元测试)或架构师(集成测试)或需求分析师(系统测试)、质量保证代表系统测试用例走查测试工程师、程序员(单元测试)或架构师(集成测试)或需求分析师(系统测试)、质量保证代表,各工作产品通常采用的评审方式及参加人员:,概要设计说明书正式评审架构师、需求分析师、设
15、计师、项目经理、集成测试工程师集成测试计划技术审查测试工程师、程序员(单元测试)或架构师(集成测试)或需求分析师(系统测试)、质量保证代表详细设计说明书正式评审设计师、架构师、程序员、集成测试工程师,各工作产品通常采用的评审方式及参加人员:,单元测试计划走查测试工程师、程序员(单元测试)或架构师(集成测试)或需求分析师(系统测试)、质量保证代表代码走查程序员、设计师、单元测试工程师、维护者、需求分析师、编码标准专家集成/验收测试记录和报告走查测试工程师、程序员(单元测试)或架构师(集成测试)或需求分析师(系统测试)、质量保证代表,各工作产品通常采用的评审方式及参加人员:,用户使用手册走查文档编
16、写者、需求分析师、用户或市场代表、系统测试工程师、维护人员、设计师、用户教育设计师、培训师、技术支持代表用户界面设计技术审查用户界面设计师、需求分析师、用户、应用领域专家、可用性或人体专家、系统测试工程师项目总结报告技术审查项目经理、产品经理、需求提出者、市场或销售代表、技术负责人、质量保证工程师、高层技术管理者、过程管理者,各工作产品通常采用的评审方式及参加人员:,2.1.7同行评审注意事项,一次针对产品需求的同行评审定在某日上午9:0011:00进行。之前邮件通知了与会人员,未发放评审材料。邀请了两位技术负责人,其他都是不很了解技术和评审过程与意义的管理人员,没有安排专人记录。结果可能是会
17、上,多数管理人员按个人喜好与想法来评价软件的优缺点,并对该软件的开发人员进行评论,提出了偏离评审会议主题的各种意见,导致会议时间延长到4小时。软件中存在的问题很少被关注。主持人宣布会议主题后,作者简述产品需求,评审提出自己的意见。评审员小李说:“关于需要改进。”其他人也参与进来。“这需要A项目组配合修改,A组负责人小张说说是否可行,打算怎么改。”小张提出自己的想法及改进方法,几个同行说出自己的想法,有时不一致,开始解释和说明该问题占用了近40分钟时间。继续2小时后,需求评审只进行了一半。会议没有得到评审结果就宣告结束,只能下次继续。会议过程中没有任何记录。,出了什么问题?,没有专门通知到个人没
18、有预先下发被评审的工作产品和检查单会议焦点不在解决问题上,而是转移到了如何解决问题主持人没经验,没能很好主持和控制会场局面没有作缺陷记录和发现工作量的记录,同行评审应遵循的原则,123准则同行评审准备时间等于或大于开会时间同行评审期间发现的缺陷数量应是同行评审准备期间发现的缺陷数量的2倍以上同行评审发现缺陷的效率是测试发现缺陷的3倍同行评审需要管理层的支持,否则,即使是目标明确的开发组成员也会抵制同行评审同行评审是结构化的过程,涉及许多参与人员的角色,选择评审专家时要注意其中的互补性对每种类型的同行评审,应制定通用的工作产品评审检查表,必要时可适当裁减以适应特定项目的要求,评审开始前,评审人应
19、准备好自己所关注和将提出的问题评审的重点在于发现问题,而非解决问题对技术人员工作的审查应由技术人员进行,管理人员别参与。但应将评审结果和解决发现问题的日期通知管理人员评审的过程是对事不对人的,例如,可以说“这个假设是错误的”,不能说“你的假设根本不对”成功的审查要求所有参与者精力高度集中,可能会令人十分疲惫,因此每个审查阶段最好不超过2个小时。每个人每天最好只参加一个阶段审查将评审数据输入到组织度量库中,用于监测评审效果,并管理和跟踪产品。例如:在全过程使用同行评审,要占10%的开发工作量每20页叙述性文档,需要40人时每12页概要设计,需要30人时每1000行代码,需要55人时使用一段时间后
20、,评价一个项目或一个组织的审查结果需要1人月,同行评审应遵循的原则,同行评审通过的准则,最小准则工作产品已经返工和确认主持人已经发布审查报告基于组织的度量元或早期的审查,可以为这类工作产品设置出口准则剩余主要缺陷数的估计是否在限定范围内剩余次要缺陷数的估计是否在限定范围内变更数量在限值范围内(例如:IBM某部门的指南规定,变更代码应少于评审代码的5%),2.1.8同行评审的经验共享,所有缺陷最终都应追溯到需求,因为最严重的错误是“导致程序无法满足需求”的错误软件开发人员和管理人员首先应该尽早地和不断地进行软件质量保证活动(如需求和设计阶段的同行评审和走查等)软件开发人员应避免检查自己的程序,利
21、用同行评审的方式对代码进行审查在进行各种分析和修复工作中,要充分注意修复工作所产生的影响效果和波及效果统计表明约有的错误是在设计阶段之前注入的,且修正一个软件错误所需的费用将随着软件生存期的进展而上升程序中的大部分错误往往是在一小部分模块中发现的,遵循“二八定理”缺陷会掩盖会加重缺陷。遵照规范化的方法仔细复查和测试每个小程序模块,尽早排除缺陷。测试不能避免缺陷发生,只是一种补救。,2.1.9同行评审的质量,根据Watte Humphrey于1998年提出的经验数据,设计阶段同行评审工作量应占该阶段工作量的1/3或以上,代码评审工作量要占到编码和单元测试阶段的工作量1/3以上。若它们都只占到15
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 缺陷 发现
链接地址:https://www.31ppt.com/p-4530522.html