资源描述
单击此处编辑母版标题样式,编辑母版文本样式,第二级,第三级,第四级,第五级,#,第十三章,测试执行与缺陷报告、跟踪,目 录,软件测试执行与跟踪,1,软件缺陷的描述,2,软件缺陷相关的信息,3,软件缺陷跟踪和分析,4,软件缺陷跟踪系统,5,1,软件测试执行与跟踪,1.,软件测试过程的要点,不同测试阶段的执行要点,测试用例执行,团队建设与沟通,测试执行结束,1.,软件测试过程的要点,测试执行实践过程,执行前开一个动员会,严格审查测试环境,抽查性质的探索式测试,验证高风险区域的测试质量,交叉互换测试人员所测试的模块,可以发挥互补作用,良好的沟通,如每周例会,以及和开发人员的及时沟通,测试时间被压缩 测试策略的优化、计划调整 测试需求的优先级、调整测试范围,常规的缺陷审查,及时发现问题、纠正问题,使整个测试进程在控制轨道上发展。,阶段性结果分析,保证阶段性测试任务得到完整的执行并达到预定的目标。,2.,测试项目进度的管理方法,测试项目的里程碑,任 务,天,任 务,天,任 务,天,任 务,天,M21:,测试计划制定,11,M23:,测试设计,12,开发测试过程,5,验证测试结果,2,确定项目,1,测试用例的设计,7,测试和调试测试过程,2,调查突发结果,1,定义测试策略,2,测试用例的审查,2,修改测试过程,2,生成缺陷日记,1,分析测试需求,3,测试工具的选择,1,建立外部数据集,1,M62:,测试评估,3,估算测试工作量,1,测试环境的设计,2,重新测试并调试测试过程,2,评估测试需求的覆盖率,1,确定测试资源,1,M26:,测试开发,15,M42:,功能测试,9,评估缺陷,0.5,建立测试结构组织,1,建立测试开发环境,1,设置测试系统,1,决定是否达到测试完成的标准,0.5,生成测试计划文档,2,录制和回放原型过程,2,执行测试,4,测试报告,1,2.,测试项目进度的管理方法,进度与质量关系,进度与成本的关系,2.,测试项目进度的管理方法,测试进度的,S,曲线法,进度,S,曲线法通过对计划中、尝试的与实际的进度三者对比来实现的,其采用的基本数据主要是测试用例或测试点的数量,2.,测试项目进度的管理方法,测试进度的,NOB,曲线法,在整个测试期间主要收集当前所有打开的缺陷数量,也可以将严重级别的缺陷分离出来进行控制,从而形成,NOB,曲线,在一定程序上反应了软件质量和测试进度时间的发展趋势,2.,测试项目进度的管理方法,3.,测试过程管理的工具,商业性工具:,HP ALM,,,IBM Rational Test Manager,和,Team Test,,,Compuware QADirector,、,Borland SilkCentral Test Manager,和,Microsoft Visual Studio Team System,等,开源工具:,TestLink,、,Bugzilla Test Runner,、验收测试管理工具,FitNesse,、基于,XML,文件测试用例管理工具,JtestCas,、,Eclipse,测试和性能工具平台(,Test&Performance Tools Platform,,,TPTP,)。除此之外,还有其它一些测试管理框架,如,TestMaker,、,SalomeTMF,、,JTR,(,Java Test Runner,)、,Jetif,、,Marathon,、,Grinder,、,TESTARE,等,2,软件缺陷的描述,1.,软件缺陷的生命周期,软件缺陷生命周期指的是一个软件缺陷被发现、报告到这个缺陷被修复、验证直至最后关闭的完整过程,缺陷生命周期是各类开发人员一起参与、协同测试的过程。,软件缺陷一旦发现,便进入严密监控之中,直至软件缺陷生命周期终结,这样即可保证在较短的时间内高效率地关闭所有的缺陷,缩短软件测试的进程,提高软件质量,同时减少开发、测试和维护成本。,1.,软件缺陷的生命周期,基本的缺陷生命周期,发现,-,打开:测试人员找到软件缺陷并将软件缺陷提交给开发人员。,打开,-,修复:开发人员再现、修复缺陷,然后提交给测试人员去验证。,修复,-,关闭:测试人员验证修复过的软件,关闭已不存在的缺陷。,发现,打开,修复,关闭,1.,软件缺陷的生命周期,实际的缺陷生命周期,创建,激活状态,Send email to DEV,是否清楚、,可再现?,已处理状态,已修正状态,Send email to QA,不能再现,缺少信息,缺陷评审,关闭状态,延期,增强设计,无法解决,需要处理,验证是否通过,Unit test,code review,Check in CVS,No,No,Yes,Yes,2.,严重性和优先级,严重性(,severity,)衡量缺陷对客户满意度的影响程度,致命的(,fatal,)、严重的(,critical,)、一般的(,major,)、微小的(,minor,),优先级,(Priority),:指缺陷被修复的紧急程度。,缺陷优先级,描述,立即解决(,P1,级),缺陷导致系统几乎不能使用或测试不能继续,需立即修复,高优先级(,P2,级),缺陷严重,影响测试,需要优先考虑,正常排队(,P3,级),缺陷需要正常排队等待修复,低优先级(,P4,级),缺陷可以在开发人员有时间的时候被纠正。,3.,缺陷的其它属性,缺陷标识(,ID,),缺陷类型(,type,),如功能、,UI,、性能、文档,缺陷产生可能性(,frequency,),/,可再现的概率,缺陷来源(,source,):需求、设计、编码,缺陷原因(,cause,):数据格式、计算错误、接口参数、变量定义与引用等,见,P.327328,诸表,4.,完整的缺陷信息,见,P.328,表,15-7,ID,标题,前提,环境,操作步骤,期望结果,实际结果,频率,严重程度,优先级,类型,缺陷提交人,缺陷指定解决人,来源,产生原因,构建包跟踪,版本跟踪,提交时间,修正时间,验证时间,所属项目,/,模块,产品信息,状态,4.,完整的缺陷信息,“步骤”,提供了如何重复当前缺陷的准确描述,应简明而完备、清楚而准确。这些信息对开发人员是关键的,视为修复缺陷的向导,“期望结果”,与测试用例标准或设计规格说明书或用户需求等一致,达到软件预期的功能。是验证缺陷的依据。,“实际结果”,实际执行测试的结果,不同于期望结果,从而确认缺陷的存在,5.,缺陷描述的基本要求,单一准确,可以再现,完整统一,短小简练,特定条件,补充完善,不做评价,6.,软件缺陷报告,任何一个缺陷跟踪系统的核心都是“软件缺陷报告”,一份软件缺陷报告详细信息如表:,分类,项目,描述,可跟踪信息,缺陷,ID,唯一的、自动产生的缺陷,ID,,用于识别、跟踪、查询,软件缺陷基本信息,缺陷状态,可分为,“,打开或激活的,”,、,“,已修正,”,、,“,关闭,”,等,缺陷标题,描述缺陷的最主要信息,缺陷的严重程度,一般分为,“,致命,”,、,“,严重,”,、,“,一般,”,、,“,较小,”,等四种程度,缺陷的优先级,描述处理缺陷的紧急程度,1是优先级最高的等级,2是正常的,3是优先级最低的,缺陷的产生频率,描述缺陷发生的可能性1%-100%,缺陷提交人,缺陷提交人的名字(会和邮件地址联系起来),一般就是发现缺陷的测试人员或其他人员,缺陷提交时间,缺陷提交的时间,6.,软件缺陷报告,软件缺陷基本信息,缺陷所属项目,/,模块,缺陷所属的项目和模块,最好能较精确的定位至模块,缺陷指定解决人,估计修复这个缺陷的开发人员,在缺陷状态下由开发组长指定相关的开发人员;也会自动和该开发人员的邮件地址联系起来,并自动发出邮件,缺陷指定解决时间,开发管理员指定的开发人员修改此缺陷的时间,缺陷验证人,验证缺陷是否真正被修复的测试人员;也会和邮件地址联系起来,缺陷验证结果描述,对验证结果的描述(通过、不通过),缺陷验证时间,对缺陷验证的时间,缺陷的详细描述,步骤,对缺陷的操作过程,按照步骤,一步一步地描述,期望的结果,按照设计规格说明书或用户需求,在上述步骤之后,所期望的结果,即正确的结果,实际发生的结果,程序或系统实际发生的结果,即错误的结果,测试环境说明,测试环境,对测试环境描述,包括操作系统、浏览器、网络带宽、通讯协议等,必要的附件,图片、,Log,文件,对于某些文字很难表达清楚的缺陷,使用图片等附件是必要的;对于软件崩溃现象,需要使用,Soft_ICE,工具去捕捉日志文件作为附件提供给开发人员。,6.,软件缺陷报告,示例,优秀的缺陷报告,重现步骤:,打开一个编辑文字的软件并且创建一个新的文档(这个文件可以录入文字),在这个文件里随意录入一两行文字,选中一两行文字,通过选择,Font,菜单然后选择,Arial,字体格式,一两行文字变成了无意义的乱字符,期望结果:当用户选择已录入的文字并改变文字格式的时候,文本应该显示正确的文字格式不会出现乱字符显示。,实际结果:它是字体格式的问题,如果改变文字格式成,Arial,之前,你保存文件,缺陷不会出现。缺陷仅仅发生在,Windows98,并且改变文字格式成其它的字体格式,文字是显示正常的,。,见所附的图片,6.,软件缺陷报告,散漫的缺陷报告,重现步骤:,在,Window98,上打开一个编辑文字的软件并且编辑存在文件,文件字体显示正常,我添加了图片,这些图片显示正常,在此之后,我创建了一个新的文档,在这个文档中我随意录入了大量的文字,在我录入这些文字之后,选择几行文字,.,并且通过选择,Font,菜单然后选择,Arial,字体格式改变文字的字体。,有三次我重现了这个缺陷,我在,Solaris,操作系统运行这些步骤,没有任何问题。,我在,Mac,操作系统运行这些步骤,没有任何问题。,期望结果:当用户选择已录入的文字并改变文字格式的时候,文本应该显示正确的文字格式不会出现乱字符显示。,实际结果:我试着选择少量的不同的字体格式,但是只有,Arial,字体格式有软件缺陷,不论如何,它可能会出现在我没有测试的其它的字体格式,3,软件缺陷的相关信息,1.,软件缺陷的图片信息,软件缺陷相关的信息包括软件缺陷的图片、记录信息和如何再现和分离软件缺陷,使开发人员和其他的测试人员更容易分离和重现它。,一些涉及用户界面,(User Interface),的软件缺陷可能很难用文字清楚地描述,因此软件测试人员通过附上图片比较直观地表示缺陷发生在产品界面什么位置、有什么问题等。,2.,使用,WinDBG,记录软件缺陷信息,WinDbg,是微软发布的源码级调试工具,用于,Kernel,模式调试和用户模式调试,可用于调试软件崩溃后形成,Dump,文件,包括操作系统的信息、进程运行的状态、时间和环境变量、汇编指令、调用堆栈等,安装、使用的具体操作方法,如提供了图形界面和命令行两种运行方式,调试方式:远程调试、,Dump,调试、本地进程调试,windbg remote npipe:server=SERVER_NAME,pipe=PIPE_NAME,windbg z DUMP_FILE_NAME,Windbg p“process id”,常用命令,P303,3.,使用,Soft-ICE,记录软件缺陷信息,Soft-ICE,是,Compuware,公司的产品,NuMega DriverStudio,中一个代表性的工具,用于跟踪软件运行时的变量、内存等状态,而且可以捕捉系统崩溃时的状态。使用它可以记录产品发生缺陷的地方,同时生成日志文件。,3.,使用,Soft-ICE,记录软件缺陷信息,如何使用,Soft-ICE,在开始测试之前,已经安装了,Soft-ICE,并启动了“,faults on”,的命令。当软件发生崩溃现象时,可以使用下面命令去捕捉必要的信息:,stack,u eip-80,如果数据窗口是开启的状态,可以输入”,wd”,来关闭该窗口,然后再输入“,dd esp-20”,命令。,stack,、,dd esp-20,是为了标注跟踪信息。,通过输入,x,,退出,Soft-ICE,的窗口;如果还是无法退出,Soft-ICE,,需要输入,faults off,,然后输入,x,。,打开,Soft-ICE,应用程序,立即保存日志文件。一旦再次打开,Soft-ICE,,请输入,faults on,4.,分离和再现软件缺陷,确保所有的步骤都被记录。,特定条件和时间。,压力和负荷、内存和数据溢出相关的边界条件。,考虑资源依赖性包括内存、网络和硬件共享的相互作用等。,不能忽视硬件。与软件不同,硬件不按预定方式工作。,和开发人员紧密合作,4.,分离和再现软件缺陷,分离和调试软件缺陷之间的区别,再现软件缺陷现象所需的最少步骤有哪些?这些步骤成功再现的可能性多大?,软件缺陷是否成立存在?换句话说,测试结果是否可能起源于测试因素或者测试人员自身的错误,还是影响顾客需求的、系统真正的故障?,哪些外部因素产生软件缺陷?,哪些内部因素,是代码、网络、还是环境引起的软件缺陷?,怎样才能在不产生新的缺陷的条件下使这个软件缺陷得到修复?,这种修复是否经过调试,单元是否经过测试?,问题解决了吗?它是否通过了确认和回归测试,确定系统的其余部分仍工作正常?,4,软件缺陷跟踪和分析,1.,软件缺陷的处理和跟踪,对缺陷的跟踪管理,一般而言需要达到以下目标:,确保每个被发现的缺陷都能够被解决,“解决”的意思不一定是被修正,也可能是其他处理方式(例如,延迟到下一个版本中修正或者由于技术原因不能被修正),总之,对每个被发现的,BUG,的处理方式必须能够在开发组织中达到一致;,收集缺陷数据并根据缺陷趋势曲线识别测试处于测试过程中的哪个阶段;,决定测试过程是否结束,通过缺陷趋势曲线来确定测试过程是否结束是常用并且较为有效的一种方式。,收集缺陷数据并在其上进行数据分析,作为组织过程改进的财富。,2.,软件缺陷处理技巧,审阅。,可以由测试管理员、项目管理员或其他人来进行,审阅缺陷报告的质量水平;,拒绝。,如果审阅者决定需要对一份缺陷报告进行重大修改,应该和测试人员一起讨论,由测试人员纠正缺陷报告,然后再次提交;,完善。,完整地描述了问题的特征并将其分离,那么审查者就会肯定这个报告;,分配。,分配给适当的开发人员,如果不知道具体开发人员,应分配给项目开发组长,由开发组长再分配给对应的开发人员;,2.,软件缺陷处理技巧,验证。,缺陷的修复需要得到测试人员的验证,同时还要进行回归测试,检查这个缺陷的修复是否会引入新的问题;,重新打开。,重新打开一个缺陷,需要加注释说明、电话沟通等,否则会引起“打开,-,修复”多个来回,造成测试人员和开发人员不必要的矛盾,关闭。,只有测试人员有关闭缺陷的权限,开发人员没有这个权限。,暂缓。,如果每个人都同意将确实存在的缺陷移到以后处理,应该指定下一个版本号或修改的日期。一旦新的版本开始时,这些暂缓的缺陷应该重新被打开。,3.,缺陷趋势分析,软件项目如何发展:软件缺陷打开,/,关闭图表,产品开发质量情况取决于累积打开,/,关闭曲线的趋势。,项目进度取决于累积关闭,/,打开曲线起点的时间差。,开发人员、测试人员的工作进度、效率也能得到反映,理想趋势图,3.,缺陷趋势分析,新发现的、修复的、关闭的累计缺陷数理想趋势图,3.,缺陷趋势分析,微软公司基于缺陷趋势图的里程碑定义,日期,1,2,3,4,5,6,7,8,9,10,11,12,13,14,Bug,的数量,报告的,Bug,解决的,Bug,Bug,收敛点,3.,缺陷趋势分析,微软公司基于缺陷趋势图的里程碑定义,4.,缺陷分布分析,最常用的缺陷分析方法:,缺陷分布报告,,允许将缺陷计数作为一个或多个缺陷参数的函数来显示,生成缺陷数量与缺陷属性的函数。如测试需求和缺陷状态、严重性的分布情况等。,缺陷趋势报告,,按各种状态将缺陷计数作为时间的函数显示。趋势报告可以是累计的,也可以是非累计的;,缺陷年龄报告,,显示缺陷处于活动状态的时间,展示一个缺陷处于某种状态的时间长短,从而了解处理这些缺陷的进度情况。,测试结果进度报告,,展示测试过程在被测应用的几个版本中的执行结果以及测试周期,4.,缺陷分布分析,软件缺陷为何发生:根本原因图表,5.,缺陷跟踪方法,当前缺陷状态,Bug Dashboard,项目发展趋势,:,每天的变化、差异,重点进行趋势分析,级别,总数,未处理的,正在处理的,修正的,不是缺陷,重复的,暂不处理,关闭,致命的,2,0,0,0,0,0,0,2,严重的,216,18,7,5,1,4,20,161,一般的,31,23,1,0,0,0,0,7,微小的,5,2,0,0,0,3,0,0,5,软件缺陷跟踪系统,1.,软件缺陷跟踪系统,基于缺陷数据库,,可统一数据格式、完成数据校验,而且确保每一个缺陷不会被忽视,基于数据库系统,,有利于建立各种动态的数据报表,用于项目状态报告和缺陷数据统计分析,基于系统,可以随时得到最新的缺陷状态,消除沟通上的障碍。,基于系统,可以将缺陷和测试用例、需求等关联起来,更深度的分析,有利于产品的质量改进,1.,软件缺陷跟踪系统,开源缺陷跟踪系统,Mantis,,,ClearQuest,:,TrackRecord,:,TestDirector,:,Pro,:,Segue SilkCentral Issue Manager,等。,感谢观看,THANKS,
展开阅读全文