《微软用户_引子_引子软件测试在整个软件开发过程中的作 395790180.doc》由会员分享,可在线阅读,更多相关《微软用户_引子_引子软件测试在整个软件开发过程中的作 395790180.doc(17页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流微软用户_引子_引子软件测试在整个软件开发过程中的作 395790180.精品文档.引子 1. 软件测试在整个软件开发过程中的作用 软件测试是对软件产品和阶段性工作成果进行质量检验,力求发现其中的各种缺陷,并督促修正缺陷,从而控制和保证软件产品的质量。所以软件测试是软件公司致力于提高软件产品质量的重要手段之一。软件缺陷发现越迟代价越大 缺陷发现越迟,影响范围越广 缺陷发现越迟,返工的工作量越大 缺陷发现越迟,造成的危害越大2.V模型的理解 1)软件测试和软件开发构成一个全过程的交互、协作的关系,两者自始至终一起工作,共同致力于同一个目标按时、
2、高质量地完成项目。2)在V模型中,前半部分是开发,可由需求分析定义,系统、架构设计、详细或程序设计,编码构成。测试过程被加在开发过程的后半部分。单元测试所检测代码的开发是否符合详细设计的要求。集成测试所检测此前测试过的各组成部分是否能完好地结合到一起。系统测试所检测已集成在一起的产品是否符合系统规格说明书的要求。而验收测试则检测产品是否符合最终用户的需求。第 1 章 1.软件质量的概念,质量需求包括功能的、非功能的、用户需求和企业需求软件产品满足规定的和隐含的与需求能力有关的全部特征和特性,包括:1)软件产品质量满足用户要求的程度2)软件各种属性组合的程度3)用户对软件产品的综合反映程度4)软
3、件在使用过程中满足用户要求的程度质量需求:就是通过人机交互界面来完成用户所需的各项操作,包括数据的输入和结果输出。非功能的:主要体现在性能,可用性,可靠性,兼容性,安全性,用户需求:质量的用户需求是和用户直接相关的质量需求,包含功能性需求和部分非功能需求。企业需求:主要是一些给功能性的需求,如软件的可维护性,兼容性,可移植性和可扩展性。2.软件缺陷的定义 软件缺陷就是软件产品中所存在的问题,最终表现为用户所需要的功能没有完全实现,不能满足或不能全部满足用户的需求。从内部看,软件缺陷是软件产品开发或维护过程中所存在的错误、毛病等各种问题;从外部看,软件缺陷是系统所需要实现的某种功能的失效或违背。
4、 3.软件缺陷和软件错误的区别 软件缺陷范围更广,涵盖了软件错误,还涵盖不一致性问题、功能需求定义缺陷和产品设计缺陷等。软件错误,属于软件缺陷的一种程序或系统的内部缺陷,往往是软件代码本身的问题。软件错误往往会导致系统的某项功能失效或者使用的故障,即软件内部缺陷最终表现为外部缺陷。外部缺陷主要表现为软件故障或功能失效,即软件提供给用户的功能或服务,不能达到用户的要求或没有达到事先设计的指标,如:突然中断4.软件测试的定义(几种不同的观点,怎样理解) 1)软件测试的狭义观点和广义观点a.狭义观点:程序测试是为了发现错误而执行程序的过程(瀑布模型)b.广义观点:将测试延伸到需求评审、设计审查活动中
5、去。由静态测试和动态测试构成一个全过程的、完整的软件测试。 2)软件测试的辩证观点a.正向思维:验证软件是“工作的”,以正向思维,针对软件系统的所有功能点,逐个验证其正确性。b.逆向思维:证明软件是“不工作的”,以反向思维方式,不断思考开发人员理解的误区、不良的习惯、程序代码的边界、无效数据的输入以及系统的弱点,试图破坏系统、摧毁系统,目标就是发现系统中各种各样的问题。3)软件测试的风险观点软件测试是对软件系统中潜在的各种风险进行评估的活动4)软件测试的经济学观点一个好的测试用例是在于它能发现至今未发现的错误。缺陷发现得越早,所造成得代价就越低,这就是从经济学的观点来说明测试越早越好。5)软件
6、测试的标准观点软件测试就是“验证(Verification)”和“有效性确认(Validation)”活动构成的整体,即软件测试= V&V5.软件测试的目标 1)直接目标就是为了更快更早地将软件产品或软件系统中所存在的问题找出来,以促进系统分析人员、设计人员和程序员尽快地解决这些问题。2)间接目标软件测试的间接目标是验证了所有功能已按照事先设计或定义而实现。但其直接目的并非验证每个功能都能实现,而是设法找到每个功能不能正常实现的地方,即尽量促使软件故障的产生。6.测试过程和开发过程的关系(W 模型,同步和依赖关系) A 测试过程和开发过程保持同步的关系。软件分析、设计和实现的过程,同时伴随着软
7、件测试验证和确认的过程B 测试过程是对开发过程中阶段性成果和最终的产品进行验证的过程,而软件开发的进一步活动又依赖于测试的结果。所以两者相互依赖。前期,更多地依赖开发过程(设计和实现能力决定整个软件过程的进展状态),后期更多地依赖测试过程(测试策略和能力,会直接影响测试效率,测试效率高就能更快地发现缺陷,缺陷就能得到更快地修正)。C 测试工作的重点和开发工作的重点可能是不一样的,两者有各自的特点。不论是在资源管理,还是风险管理上,两者都存在差异。第 2 章 1.测试计划的目标 测试计划的目标是提供一个框架、不断收集信息,对不确定性进行分析,将不确定性的内容慢慢转化为确定性的内容,该过程最终使得
8、项目测试负责人能够对资源、成本及进度进行越来越合理、准确的估算。*2.需求评审的重要性 1)产品需求审查和评审是软件开发重要环节之一,也是测试活动之一,即静态测试需求验证。通过需求审查保证系统需求在市场/产品需求文档及其相关文档中得到准确、完整、无歧义的反映,并使各类开发人员在需求理解上达成一致。2)软件缺陷并不只是在编程阶段才产生,需求和设计阶段同样会产生缺陷。3)需求评审重要性表现方面v 发现需求定义中的问题,尽早发现缺陷,降低劣质成本。v 保证软件需求的可测试性。v 与市场、产品、开发等相关人员在需求理解上认识一致,以免后期的争吵。v 通过需求评审,更好的理解产品的功能性与非功能性需求,
9、为制定测试计划打下基础。v 确定测试目标与范围。虽然此后需求会发生变更,但能得到有效控制,降低测试风险。*3.评审的类型 管理评审、技术评审、文档评审、流程评审*4.需求评审的标准 正确性、完备性、一致性、可行性、易理解性、易修改性、易测试性、易追溯性第 3 章 *1.为什么要进行设计验证P85-86 软件设计是把软件需求转换为软件表示的过程,也是将用户需求准确转化为软件系统的唯一途径,对软件设计进行验证,就是更好地保证这种转换的正确性和完整性,也是为了更好地设计系统测试的用例。再者,软件设计的验证,需要在编程之前进行,这样做可避免变成误入歧途,并为软件部署的准备获得更多的时间。这一切,都有助
10、于缩短软件开发周期,使产品早日面向市场,提高软件企业的竞争力。*2.验证和确认的区别P97 验证过程与确认过程(V&V)看起来类似,但是它们目标不同,处理的对象也不同,“验证”是检验软件工作产品是否符合规定的设计要求,而“确认”过程则要证明所开发的最终产品在其预定的环境中能发挥预定的作用,满足客户使用的需求。“验证”是以产品设计规格说明书作为依据的,而“确认”是以客户需求为目标的。第 4 章 1.为什么要测试用例 测试需求和范围通过测试用例体现出来,并以更为有效的方式来执行测试,以便于更快地发现程序的缺陷。测试用例是测试脚本开发、测试执行的基础,只有设计好测试用例才能保证测试的覆盖率。A.测试
11、用例是测试人员测试过程中的重要参考依据。B测试用例可以帮助实施有效的测试。C良好的测试用例不断的被重复使用,使得测试事半功倍D测试用例是一个知识积累的过程。E测试用例是一个知识传递的过程F即使是很小的项目,也可能会哟几千甚至更多的测试用例G从项目管理的角度讲,测试用例的通过率检验代码质量保证效果最主要的指标之一。H测试用例也可以评估测试人员进度,工作量,以及跟踪或管理测试人员的工作效率的主要因素测试用例是测试工作的指导,是软件测试的必须遵守的准则,更是软件测试质量稳定的根本保障。2.测试用例的元素 测试目标、测试对象、测试环境要求、测试前提、输入数据和操作步骤,概括为5W1Ha. Why 为什
12、么而测?b. What 测什么?c. Where 在哪里测?d. When 什么时候开始测?e. Which 哪些输入数据?f. How 如何操作软件?3.对黑盒测试和白盒测试的理解 答:黑盒测试方法: 是把程序看做一个不能打开的黑盒子,在完全不考虑内部结构和内部特性的情况下来考察数据的输入,条件限制和数据输出,进而完成测试。黑河测试方法,指根据用户的需求和已经定义好的产品规格,针对程序结构和用户界面进行测试,检验程序是否能适当接受输入数据而产生正确的输出信息,并且保持外部信息的完整性。白盒测试方法:也称为结构测试或逻辑驱动测试,就是清除软件产品内部的逻辑结构和工作过程,针对程序语句,路径,变
13、量状态等进行测试。例如,检验程序的各个分支是否得到满足,检验程序是否按照事先预定的路径进行执行。白盒测试的主要方法有逻辑覆盖,分支覆盖、条件组合覆盖,基本路径测试等。4.黑盒和白盒的区别1)黑盒测试的优点有:a.比较简单,不需要了解程序内部的代码及实现;b.与软件的内部实现无关;c.从用户角度出发,能很容易的知道用户会用到哪些功能,会遇到哪些问题;d.基于软件开发文档,所以也能知道软件实现了文档中的哪些功能;e.在做软件自动化测试时较为方便。2)黑盒测试的缺点有:a.不可能覆盖所有的代码,覆盖率较低;b.自动化测试的复用性较低。3)白盒测试的优点有: 帮助软件测试人员增大代码的覆盖率,提高代码
14、的质量,发现代码中隐藏的问题。4)白盒测试的缺点有:a.程序运行会有很多不同的路径,不可能测试所有的运行路径;b.测试基于代码,只能测试开发人员做的对不对,而不能知道设计的正确与否,可能会漏掉一些功能需求;c.系统庞大时,测试开销会非常大。5.功能测试的内容 界面测试、数据测试、操作测试、逻辑测试、接口测试6.功能测试的方法(等价类法、*边界值法、*因果图法、*决策表法、*错误推测法、*场景法、*状态图法、*正交实验法) 等价类法:分为有效等价类和无效等价类1)边界值法:v 对16-bit 的整数而言 32767 和 -32768 是边界v 屏幕上光标在最左上、最右下位置v 报表的第一行和最后
15、一行v 数组元素的第一个和最后一个v 循环的第 0 次、第 1 次和倒数第 2 次、最后一次a.边界值分析法利用输入变量的最小值(min)、略大于最小值(min+)、输入值域内的任意值(nom)、略小于最大值(max-)和最大值(max)来设计测试用例b.推论:对于一个含有n个变量的程序,采用边界值分析法测试程序会产生4n+1个测试用例。例:有二元函数f(x,y),其中x1,11,y1,31。 则采用边界值分析法设计的测试用例是: , , , , , , , , 2)因果图:3)正交实验法a.把影响实验指标的条件称为因子,而影响实验因子的条件叫因子的状态(水平)。b.正交实验法,比使用等价类划
16、分、边界值分析、因果图等方法有以下优点:节省测试工作工时;可控制生成的测试用例数量;测试用例具有一定的覆盖率。c.正交表选择原则:(1) 每个因子水平数目相同的情况,因子数为M,水平数为N,则最佳选择一个M因子N水平的正交表,如果不存在这样的正交表,则选择K因子N水平的正交表(KM)。(2)如果不同因子水平数目不相同,选择出现次数最多的水平数(相同的话选择大的)。(3)如果所选的正交表的水平数小于因子最大的水平数。v 比如: a1 a2 b1 b2 b3 c1 c2v 则把b1 b2放在一起,写用例的时候再分开写。例:假设一个WEB站点,该站点有大量的服务器和操作系统,并且有许多具有各种插件的
17、浏览器浏览: WEB浏览器:Netscape6.2、IE6.0、Opera4.0 插件:无、RealPlayer、MediaPlayer 应用服务器:IIS、Apche、Netscape Enterprise 操作系统:Windows2000、Windows NT、Linux 提取系统功能说明中的因子: 1、WEB浏览器 2、插件 3、应用服务器 4、操作系统 分析各因子的水平 1、WEB浏览器:1Netscape6.2、2=IE6.0、3=Opera4.0 2、插件: 1=None、2=RealPlayer、3=MediaPlayer 3、应用服务器: 1=IIS、2=Apche、3=Net
18、scape Enterprise 4、操作系统: 1=Windows2000、2=Windows NT、3=Linux 3水平4因素正交表L9(34)*7.测试用例的评审,检查表的使用P142 好的测试用例:测试范围的覆盖率高、测试用例设计能反向思维,有效地发现缺陷、易用性、易读性、易维护性。测试用例的评审,可以从正、反两面进行检查。正面测试用例要求全面,反面测试用例要有创造性。 检查表是用来帮助评审员找出评审的对象中可能的缺陷。提高可靠性、效率。*8.对测试套件的理解 测试套件是由一系列测试用例并与之关联的测试环境组合而构成的集合,已满足测试执行的特定要求。通过测试套件,将服务于同一个测试目
19、标、特定阶段性测试目标或某一运行环境下的一系列测试用例有机地组合起来 1) 按程序功能模块组织2) 按测试用例的类型组织3) 按测试用例的优先级组织第 5 章 1.使用测试工具的优缺点 1)优点: a.缩短软件开发测试周期。对上千个测试用例来说,测试工具可以在很短时间内完成测试,而且测试工具不知劳累,可24小时不停地运行同样的测试用例10遍、100遍等。这些都说明了软件测试工具执行测试具有速度高、效率高的特点。 b.脚本可以多次重复运行,降低成本。在回归测试中或在很多不同的测试环境(如不同的浏览器、不同的操作系统、不同的连接条件等)下,测试工具可以多次运行同样的测试用例,而测试脚本只要开发一次
20、。c.可增强测试的稳定性和可靠性,通过测试工具运行测试脚本,能保证百分之百被执行,所有的测试结果都能客观地记录下来。d.可提高软件测试的准确度和精确度,软件测试自动化的结果都是数量化的,并且它能与所预期结果或规格说明书所规定的标准进行量化对比。2)缺点2.手工测试和自动化测试的区别手工测试优点:发现缺陷效率高、容易实施、创造性,灵活性、覆盖率量化困难、重复测试效率低、不一致性,可靠性低、依赖人力资源。缺点:无法做到覆盖所有代码路径、很难捕捉到与时序、死锁、资源冲突、多线程等有关的错误、难以实施系统负载/性能测试和可靠性测试、难以短时间完成大量的测试用例、很难面对测试条件组合爆炸。自动化测试优点
21、;高效率、高复用性、覆盖率容易度量、准确,可靠、不知疲劳、激励团队士气、机械,难以发现缺陷、一次性投入大。缺点:不现实的期望、缺乏具有良好素质,经验的测试人才、测试工具本身的问题影响测试的质量、测试脚本的质量低劣、没有考虑公司的实际情况、没有形成一个良好的使用测试工具环境。两者相互补充:在系统功能逻辑测试、验收测试、适用性测试、涉及交互性测试时,多采用手工测试方法;单元测试、集成测试、系统负载或性能、可靠性测试等比较适合采用TA;对那种不稳定、开发周期短或一次性的软件等不适合TA工具本身缺乏想象力和创造性,自动测试只能发现15%的缺陷,而手工测试可以发现85%的缺陷;*3.测试工具的实现原理
22、1)代码分析(白盒测试自动化) 2)对象识别() 3)捕获和回放(黑盒测试自动化) 4)脚本技术(包含数据和指令) 5)自动结果比较4.知道几种主要的功能测试工具盒性能测试工具(不考) 第 6 章 *1.代码审查的具体方法 P197 代码审查的方法很多,如互查(Peer-to-Peer)、走查(Walk-Through)、会议评审(Inspection)等。2.什么是单元测试 单元测试就是对已实现的软件最小单元进行测试,以保证构成软件系统的各个单元的质量。3.单元测试的方法单元测试主要采用白盒测试方法,辅以黑盒测试方法。白盒测试方法应用于代码评审、单元程序检验之中,而黑盒测试方法则应用于模块、
23、组件等大单元的功能测试之中 4.驱动程序和桩程序 1)驱动程序(driver),对底层或子层模块进行(单元或集成)测试时所编制的调用被测模块的程序,用以模拟被测模块的上级模块 2)桩程序(stub),也有人称为存根程序,对顶层或上层模块进行测试时,所编制的替代下层模块的程序,用以模拟被测模块工作过程中所调用的模块。 示例:5.白盒测试的具体方法(逻辑覆盖语句覆盖和判定覆盖、基本路径测试)l 答:基本路径测试时程序控制流程图的基础上,通过分析控制构造的环路复杂性,导出基本可执行集合,从而设计测试用例的方法。包含5个方面:1程序流程图 2 计算程序环境的复杂性 3 导出测试用例 4 准备测试用例
24、5 图形矩阵l 逻辑覆盖: 判定覆盖 条件覆盖 判定-条件覆盖 条件组合覆盖语句覆盖v 要实现DoWork函数的语句覆盖,只需设计一个测试用例就可以覆盖程序中的所有可执行语句。v 只要通过路径abd就可以语句覆盖。 测试用例输入为: x=4、y=5、z=5 程序执行的路径是:abd判定覆盖v 要实现DoWork函数的判定覆盖,需要设计两个测试用例 测试用例的输入为:x=4、y=5、z=5;x=2、y=5、z=5 程序执行的路径分别是:abd;ace 使用acd、abe两条路径的用例也满足判定覆盖条件覆盖测试用例执行路径覆盖条件覆盖分支X=4,y=6,z=5abdT1,T2,T3,T4bdX=2
25、,y=5,z=15ace-(T1,T2,T3,T4)cev 分析:上面这组测试用例不但覆盖了4个条件的全部8种情况,而且将两个判定的4个分支b、c、d、e也同时覆盖了,即同时达到了条件覆盖和判定覆盖。路径覆盖测试用例执行路径覆盖条件X=4,y=6,z=5abdT1、T2、T3、T4X=4,y=5,z=15acdT1、-T2、T3、-T4X=2,y=5,z=15ace-T1、-T2、-T3、-T4X=5,y=5,z=5abeT1、T2、-T3、-T46.最少测试用例的计算对于一般的、更为复杂的问题,估算最少测试用例个数的原则也是同样的:1)如果在N-S图中存在有并列的层次A1、A2,A1和A2的
26、最少测试用例个数分别为a1、a2,则由 A1、A2 两层所组合的 N-S图对应的最少测试用例数为a1a2。2)如果在N-S图中不存在有并列的层次,则对应的最少测试用例数由并列的操作数决定,即N-S图中除谓词之外的操作框的个数。7.集成测试的模式 1)渐增式集成模式与非渐增式集成模式a.非渐增式测试模式:先分别测试每个模块,再把所有模块按设计要求放在一起结合成所要的程序,如大棒模式。因为所有的模块一次集成的,所以很难确定出错的真正位置,所在的模块、错误的原因,这种方法并不推荐在任何系统中使用,适合规模较小的应用系统使用。b.渐增式测试模式:把下一个要测试的模块同已经测试好的模块结合起来进行测试,
27、测试完以后再把下一个应该测试的模块结合进来测试。 c. 自顶向下法(Top-down Integration) 有深度优先和宽度优先d.自底向上法:e,混合法:对软件结构中较上层,使用的是“自顶向下”法;对软件结构中较下层,使用的是“自底向上”法,两者结合f.三明治集成方法:它将自顶向下和自底向上的集成方法有机结合起来,不需要写桩程序因为在测试初自底向上集成已经验证了底层模块的正确性。缺点:在真正集成之前每一个独立的模块没有完全测试过g.改善的三明治集成方法:不仅自两头向中间集成,而且保证每个模块得到单独的测试,使得测试进行比较彻底8.Junit 的基本使用,也就是怎样对一个类写 Junit
28、测试程序Import junit.framework.TestCase;Public calss TextSample extends TestCasev 创建,从junit.framework.TestCase派生unit test需要的test case v 书写测试方法,提供类似于如下函数签名的测试方法: public void testXXXXX(); v 编译,书写完test case后,编译所写的test case类 v 运行,启动junit test runner,来运行这个test case。JUnit脚本示例一:import static org.junit.Assert.*
29、;import junit.framework.TestCase;import org.junit.After;import org.junit.Before;import org.junit.Test;public class TestHelloWorld extends TestCase Before Public void setUp() throws Exception/初始化 Public TestHelloworld(String name)super(name);Test Public final void testsay() helloword hi=new helloworl
30、d();assertEquals(“hello world!”,hi.say();After Public void tearDown() throws Exception /撤销初始化 public static void main(String args) junit.textui.TestRunner.run(testhello.class); JUnit有四个重要的类:TestSuite、TestCase、TestResult、TestRunner。前三个类属于Framework包,后一个类在不同的环境下是不同的。如用的是文本测试环境,则是junit.textui.TestRunner
31、。 1.TestResult,负责收集TestCase所执行的结果,它将结果分为两类,客户可预测的Failure和没有预测的Error。同时负责将测试结果转发到TestListener(该接口由TestRunner继承)处理。 2.TestRunner,客户对象调用的起点,负责对整个测试流程的跟踪。能够显示返回的测试结果,且报告测试的进度。 3.TestSuite,负责包装和运行所有的TestCase。 4.TestCase,客户测试类所要继承的类,负责测试时对客户类进行初始化,以及测试方法调用。 JUnit 共有七个包,核心的包就是junit.framework 和junit.runner。
32、Framework包负责整个测试对象的构架,Runner负责测试驱动。 另有两个重要的接口:Test和TestListener: 1.Test, 包含两个方法:run() 和countTestCases(),它是对测试动作特征的提取。 2.TestListener, 包含四个方法:addError()、addFailure()、startTest()和endTest(),它是对测试结果的处理以及测试驱动过程的动作特征的提取。Junit的各种断言v assertEquals(String message, expected, actual)这是使用得最多的断言形式。expected是你的期望值(
33、通常要硬编码),actual被测代码实际产生的值,message可选的消息,如果提供的话,将会在发生错误的时候报告这个消息。v assertNull(String message,java.lang.Object object)验证一个给定的对象是否为Null(或者为非Null),如果答案为否,则将会失败。message参数是可选的。v assertSame( String message, expected,actual)验证expected参数和actual参数所引用的是否为同一对象,如果不是的话,将会失败。Message参数是可选的。v assertTrue( String messag
34、e,boolean condition)验证给定的二元条件是否为真,如果为假的话,将会失败。Message参数是可选的。v assertFalse( String message,boolean condition)验证给定的二元条件是否为假,如果不为假的话,将会失败。Message参数是可选的v fail( String message )使测试立即失败,其中message参数使可选的。这种断言通常被用于标记某个不应该到达的分支(例如,在一个预期发生的异常之后)第 7 章 1.对测试执行的策略的理解(两段论和立体作战,重在理解)(不考) 2.测试环境的爆炸组合和组合优化(不考) 3.适用性测
35、试的要素 适用性简单说就是容易发现、容易学习和容易使用。全面评估用户界面,需要包含七个因素:符合标准和规范、直观性、一致性、灵活性、舒适性(主要强调界面友好、美观,如操作过程顺畅、色彩运用恰当、按钮的立体感以及增加动感等)、正确性、实用性(考量每一个具体特性对软件是否具有实际价值、是否有助于用户的实际业务需求实现),这也是适用性依据的标准。 4.什么是回归测试,回归测试的理解 1)每当软件发生变化时,就必须重新测试原来已经通过测试的区域,验证修改的正确性及其影响,即实施回归测试。2)回归测试的价值在于能够检测到回归缺陷,它是一个受控的测试。3)回归测试方法a.再测试全部用例,选择测试用例库中的
36、全部测试用例构成回归测试套件。b.基于风险选择测试,基于一定的风险标准来从测试用例库中构造缩减的回归测试用例套件。c.基于操作剖面选择测试,会优先选择那些最重要或最频繁使用功能所关联的测试用例(如80-20原则中20的重要功能),有助于发现那些对质量有显著影响的缺陷,而放弃次要功能关联的测试用例。d.测试修改的部分。 4)回归测试的组织和实施 a.通过代码相依分析,识别出软件中被修改的部分和影响的范围。 b.从原有测试用例基线库中,排除不再适用的测试用例,确定那些对新的软件版本依然有效的测试用例,从而建立起新的测试用例基线库T0。 c.基于操作剖面和风险选择相结合的策略,从新的测试用例基线库中
37、选择测试用例构造有效的套件,测试被修改的软件。 d.如果回归测试套件不能达到所需的覆盖要求,必须补充新的测试用例使覆盖率达到规定的要求,生成新的测试用例集T1,用于测试T0无法充分测试的软件部分。 e.用T1执行修改后的软件。 5.缺陷的属性缺陷严重程度缺陷严重等级描述0级:致命fatal最严重等级,缺陷导致系统任何一个主要功能完全丧失、用户数据受到破坏,系统崩溃、悬挂、死机等。1级:严重ctitical系统的主要功能部分丧失、数据不能完整保存,系统的次要功能完全丧失,系统所提供的功能或服务受到明显的影响2级:一般major系统的次要功能没有完全实现,但不影响用户的正常使用。例如提示信息不太准
38、确;或用户界面差,操作时间稍长等问题3级:较小minor操作者不方便或遇到麻烦,但不影响功能的操作和执行,如字体不美观、按钮大小不是很合适,文字排列不对齐等些小问题缺陷优先级缺陷优先级描述立即解决(P1级)缺陷导致系统几乎不能运行、使用,或严重妨碍测试的执行,需立即修正、尽快修正。高优先级(P2级)缺陷严重,影响测试,需要优先考虑修正。例如不超过24小时修正。正常排队(p3级)缺陷需要修正,但可以正常排队等待修正低优先级(P4级)缺陷可以在开发人员有时间的时候被修正,如果没有时间,可以不修正6.缺陷报告大致包含的内容 v 缺陷的严重性和优先级v 缺陷的类型和来源v 缺陷附件v 完整的缺陷信息列
39、表ID严重程度版本跟踪标题优先级提交时间前提类型修正时间环境缺陷提交人验证时间操作步骤缺陷指定解决人所属项目/模块期望结果来源产品信息实际结果产生原因状态频率构建包跟踪第 8 章 *1.国际化测试、本地化测试和全球化测试的定义 1)国际化指为保证所开发的软件能适应全球市场的本地化工作而不需要对程序做任何系统性或结构性变化的特性,这种特性通过特定的系统设计、程序设计、编码方法来实现。2)软件本地化是在源语言版本的基础上,通过翻译、定制和参数配置等工作,使软件产品或系统在语言、时区、度量衡、文化、风俗习惯等各个方面与当地国家和地区的相应内容相一致,从而满足特定地区的用户的使用需求。3)全球化,它是
40、一个概念化产品的过程,是基于全球市场考虑的,以便一个产品只须做较小的改动就可以在世界各地出售。全球化可以看作是国际化和本地化两者合成的结果。*2.国际化测试的基本方法有哪些 v 设计评审和代码审查 v 针对源语言的功能测试,如不同的区域设置、不同的时区显示v 针对伪翻译(pseudocode,pseudo-translation)版本的测试第 11 章 1. 缺陷生命周期的理解软件缺陷生命周期,经历了从被发现、报告到其被修复、验证、直至最后关闭的完整过程。为了描述软件缺陷生命周期,可设定不同的软件缺陷状态来体现缺陷不同的生命阶段。2. 缺陷的状态缺陷状态描述打开/激活(open/active)
41、缺陷的起始状态,或重新被打开的状态。问题存在或依旧没有解决,等待修正,如新报的缺陷、补充完信息后再打开等。已修正(Fixed/Resolved)已被开发人员检查、修复过的缺陷,通过单元测试,认为已解决但还有待测试人员验证关闭/非激活(close/Inactive)测试人员验证后,确认缺陷不存在之后所处的状态。延迟(deferred)这个缺陷不严重被推迟修正,可以在一个版本中解决。无法解释(onhold)由于技术原因或第三者软件的缺陷,开发人员目前不能修复的缺陷。功能增强(Feature Enhancement)该问题符合当前的设计规格说明书,但是一个有待改进的问题。不是缺陷(Not a Bug
42、)开发人员认为这不是问题,是测试人员误报的缺陷不能再现(cannot duplicated)开发不能复现这个软件缺陷,需要测试人员检查缺陷复现的步骤需要更多信息(NeedMoreInfo)开发能复现这个软件缺陷,但开发人员需要一些信息,例如:缺陷的日志文件,图片等3.对缺陷的分析有哪几种1)实时趋势分析a.实时数据,由每日或每周发生的数据构成的时间序列 b.对随时间变化的趋势进行分析2)累积趋势分析a.累积数据是将前面产生的数据不断累加起来所构成的时间序列 b.累积曲线趋势特征更明显 3)缺陷分布分析a.缺陷分布分析,主要借助于圆饼图、直方图等工具进行分析 b.包括功能模块、来源分布 、不同类
43、型、开发团队等各种分布补充:1)各个阶段测试任务:需求分析审查设计审查单元测试集成测试功能测试系统测试验收测试版本发布维护2)使用等价类划分法设计测试用例v 采用等价类划分法设计测试用例通常分两步进行: (1)确定等价类,列出等价类表。 (2)确定测试用例。实例1:某报表处理系统要求用户输入处理报表的日期,日期限制在2001年1月至2005年12月,即系统只能对该段期间内的报表进行处理,如日期不在此范围内,则显示输入错误信息。系统日期规定由年、月的6位数字字符组成,前四位代表年,后两位代表月1.等价类划分输入等价类有效等价类无效等价类报表日期的类型及长度6位数字字符(1)有非 数字字符(4)少
44、于6个数字字符(5)多于6个数字字符(6)年份范围在2001-2005之间(2)小于2001(7)大于2005(8)月份范围在1-12之间(3)小于1(9)大于12(10)2设计有效类的测试用例(对表中编号1,2,3个有效等价类用一个测试用例覆盖)测试数据期望结果覆盖范围200105输入有效等价类(1)(2)(3)001WAY输入无效等价类(4)20015输入无效等价类(5)2001005输入无效等价类(6)200005输入无效等价类(7)200805输入无效等价类(8)200100输入无效等价类(9)200113输入无效等价类(10)实例2:三角形问题 输入三个整数a、b、c,分别作为三角形
45、的三条边,现通过程序判断由三条边构成的三角形的类型为等边三角形、等腰三角形、一般三角形(特殊的还有直角三角形),以及构不成三角形。 现在要求输入三个整数a、b、c,必须满足以下条件: 条件1 1a100 条件4 ab+ c 条件2 1b100 条件5 ba+ c 条件3 1c100 条件6 c0),(1)(B0),(2)(C0),(3)(A+BC),(4)(B+CA),(5)(A+CB),(6)(A0),(7)(B0),(8)(C0),(9)(A+BC),(10)(B+CA),(11)(A+CB),(12)是否等腰三角形(A=B),(13)(B=C),(14)(C=A),(15)(AB)and(BC)and(CA)(16)是否等边三角