第8章实现-测试-黑盒测试技术1.0_第1页
第8章实现-测试-黑盒测试技术1.0_第2页
第8章实现-测试-黑盒测试技术1.0_第3页
第8章实现-测试-黑盒测试技术1.0_第4页
第8章实现-测试-黑盒测试技术1.0_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第8章实现-测试-黑盒测试技术1.0第8章实现-测试-黑盒测试技术1.0第8章实现-测试-黑盒测试技术1.0xxx公司第8章实现-测试-黑盒测试技术1.0文件编号:文件日期:修订次数:第1.0次更改批准审核制定方案设计,管理制度第8章实现(软件测试)3.黑盒测试技术黑盒测试主要用于测试过程的后期,主要技术有。(1)等价类划分等价类划分法是把所有可能的输入数据集合划分成若干个部分,然后从每一部分中选取少数具有代表性的数据构造测试用例或把程序的输入数据集合按输入条件(可以是说明中的一句话或一个短语)划分成若干个等价类,每一个等价类相对于输入条件表示为一组有效或无效的输入,然后据此为每一个等价类设计一个测试用例。等价类是某个输入域的子集合,在该子集合中,各个输入数据对于揭露程序中的错误是等效的。等价类划分法假定测试某等价类的代表值等效于测试类中其他值、如果等价类中的一个输入数据能检测出一个错误,那么等价类中其他输入数据也能检测出同一个错误;如果等价类中的一个输入数据不能检测出某个错误,那么等价类中其他输入数据也不能检测出这一个错误。在这里,有效数据是指符合规格说明要求的合理输入数据,它被用来检验程序是否实现了规格说明中的功能和性能。无效数据是指不符合规格说明要求的不合理输入数据,它被用来检验程序是否做了规格说明以外的事情。(2)边界值分析经验表明,大多数错误都发生在输入的边界值上。因此,设计一些使程序运行在边界情况附近的测试用例来暴露程序错误很有必要。通常输入等价类和输出等价类的边界就是程序边界情况,应该着重测试。选取的测试数据应该刚好等于、稍小于和稍大于等价类边界值,并据此设计相应的测试用例。设计测试方案时,经常把等价类划分和边值分析两种技术结合起来使用。使用边界值分析方法设计测试用例比较复杂,需要经验和创造性。(3)错误推测错误推测法基本想法是列举出程序中可能有的错误和容易发生错误的特殊情况,并且根据这些可能存在的错误设计测试方案。这种方法在很大程度上靠直觉和经验,此外,还应仔细分析程序的规格说明书,找出其中可能疏漏的部分,检查程序员对这些部分的处理是否正确等。展开信息从略,自主延伸阅读。黑盒测试与白盒测试法不能相互取代,但可以相互补充(见教材)4.软件测试策略从过程的观点考虑测试,软件工程环境中的测试过程实际上是顺序进行的四个步骤的序列。最开始,着重测试每个单独的模块,确保其功能的正确性,即单元测试。单元测试大量使用白盒测试技术。接下来,把模块装配(即集成)在一起形成完整的软件包,在装配模块的同时而进行测试,即集成测试。集成过程中最常用的是黑盒测试技术,也可能使用一些的白盒测试。软件集成完成之后,必须测试在需求分析阶段确定下来的标准,即确认测试。确认测试是对软件满足所有功能、行为和性能需求的最终保证,确认测试过程中仅使用黑盒测试技术。最后就是对整个系统进行测试,即系统测试,测试各个阶段的任务应由软件开发人员和一个独立的测试小组共同完成。测试策略应包含测试规划,测试用例设计,测试实施和测试结果的收集评估等。测试规划又包括:测试步骤、工作量、进度和资源等。(1)单元测试当每个模块的源程序编制完成并通过审查和编译检查之后进行的测试,称为单元测试。通常,编码和单元测试同属于编码阶段,模块的编写者和测试者是同一个人。单元测试的对象是模块,它的依据是详细设计描述的内容。单元测试对模块内所有重要的控制路径设计测试用例,测试用例与审查工作相结合,将增大发现各类错误的可能性,系统内多个模块可以并行进行测试。①单元测试的任务模块接口测试;局部数据结构测试;模块中所有独立执行通路测试;模块的各条错误处理通路测试;模块边界条件测试。②单元测试环境模块通常不是一个独立的程序,应为每个单元测试开发驱动模块(driver)和桩模块(stub)。驱动模块(程序)调用被测模块,接收测试输入数据并把这些数据传送给被测试的模块,被测模块被调用后,驱动模块接受被测模块的返回数据,并印出有关的结果。桩模块也叫存根模块,它代替被测试的模块所调用的模块。桩模块使用被它代替的模块的接口,但内部只做少量的数据操作,主要任务打印“进入”或“退出”信息,并且把控制和模拟结果归还给调用它的模块。驱动模块和桩模块是测试使用的软件,它们不是软件的组成部分,但仍需要一定的开发费用。简单的驱动模块和桩模块不能完成某些模块的测试任务,只能在集成测试过程中同时完成对这些模块的详尽测试。单元测试环境如PPT所示。单元测试阶段结束之后,对软件系统进行各种综合测试通常由专门的测试人员承担这项工作。(2)集成测试集成测试(综合测试)是指按照设计要求把通过单元测试的各个模块组装(结合)在一起并进行测试,其主要目的是发现与接口有关的各种问题。常常会发生这样一些事件:每个模块都能单独工作,但把这些模块组装在一起之后,却不能正确工作了。原因是模块相互调用时,接口会引入很多新的问题。因此,进行集成测试是必要的。存在两种方法将模块组装成程序/系统。一种方法称为非渐增式集成测试,另一种方法称为渐增式集成测试。①非渐增式集成测试把所有通过单元测试的模块按设计要求一次全部放在一起结合成所需要的程序/系统,然后对其进行整体测试。采用这种测试方法可能发现一大堆错误,改正一个错误的同时又可能引入新的错误,新旧错误混杂,很难诊断出错原因和确定错误的位置。②渐增式集成测试把下一个要测试的模块同已经测试好的那些模块结合起来进行测试,测试完以后再把下一个应该测试的模块结合进来测试。这种方法每次增加一个模块,程序一段一段地扩展,测试范围一步一步地增大,错误易于定位和纠正,界面测试也较完全彻底。渐增式集成测试方法包括自顶向下和自底向上两种集成方法。自顶向下集成:从主控制模块(顶层模块)开始,按照“软件”的控制层次结构(图),向下逐步测试。根据移动线路的差异,又分为深度优先或者宽度优先的策略。深度优先首先集成在软件结构的一条主控制路径上的所有模块,至于选择哪一条路径作为主控制路径,一般根据问题的特性而定,有一定的随意性。如图ppt宽度优先是沿软件结构水平地向下移动,把处于同一个控制层次上的所有模块集成起来。ppt自顶向下集成测试的步骤:以主控制模块作为所测模块兼驱动模块,测试时用桩模块替代所有直接附属于主控制模块的模块,对主控模块进行测试;根据选定的深度优先或宽度优先集成策略,每次用一个实际模块替换一个相应的桩模块(新结合进来的模块往往又需要新的桩模块);每集成一个模块,立即测试一遍;只有每组测试完成后,才替换下一个桩模块;进行回归测试(全部或部分地重复以前做过的测试),以保证加入模块没有引进新的错误。从集成策略开始不断地重复进行上述过程,直到整个的软件结构构造完毕。深度方向组装之例:如ppt.。优点:能早期发现错误,及时地对程序的主要控制和决策机制进行检验;缺点:测试较高层模块时,低层处理需要采用桩模块替代,测试不充分。自底向上集成:自底向上测试从“原子”模块(即在软件结构最低层的模块)开始组装和测试。因为模块是从底部向上进行组装,所需要的下层模块处理功能均已具备,所以不需要桩模块。自底向上集成测试的步骤:把低层模块组合成实现某个特定的软件子功能的模块群(族);写一个用于测试的驱动模块,协调测试数据的输入和测试结果的输出;对每个模块群(族)进行测试;去掉测试使用的驱动模块,用较高层模块把模块群(族)组合成为完成更大功能的新模块群(族)。从开始循环执行上面各步骤,直至整个程序构造完成。优点:自顶向下集成的主要问题,不需要桩模块,测试用例的设计也相对简单;缺点:只能最后一个模块加入后程序才展现其整体形象。集成测试过程中应特别注意关键模块。关键模块:对应几条需求;具有高层控制功能;复杂易出错;具有特别的性能要求。关键模块应及早测试,并反复进行回归测试。回归测试:每当一个新模块作为集成测试的一部分加进来的时候,软件就发生了变化,建立了新的数据流路径,可能出现了新的I/O操作,激活了新的控制逻辑,这些变化可能使原来工作正常的功能出现问题。在集成测试的范畴中,所谓回归测试是指重新执行已经做过的测试的某个子集,以保证上述这些变化没有带来非预期的副作用。(3)确认测试确认测试(验收测试)就是验证软件的有效性,所谓软件的有效性是指软件的功能和性能与用户合理期望的一致程度。如果软件的功能和性能如同用户所期望的那样,那么软件是有效的。确认测试需要制定测试计划和测试过程,测试计划应该规定测试种类和测试进度,测试过程则定义一些旨在说明软件与需求是否一致的测试用例。实现软件的确认需要通过一系列的黑盒测试。验证指的是检验软件正确地实现了某一特定要求的一系列活动、试图证明在软件生存期各个阶段以及阶段间的逻辑协调性、完备性和正确性。确认指的是检验软件的实现满足了用户需求的一系列活动,其目的是证实在一个给定的外部环境中软件的逻辑正确性,包括需求规格说明的确认和程序的确认。①确认测试的标准软件需求分析阶段产生的文档就是软件有效的标准。②软件配置复审确认测试的一个重要内容是复审软件配置,其目的是保证软件配置齐全,分类有序并且包含软件维护所必须的细节。③Alpha和Beta测试:ppt(4)系统测试计算机软件只是基于计算机系统中的一个组成部分,软件开发完成后,需要进行一系列系统集成和确认测试。通常,这些测试不可能仅由软件开发人员完成,但软件开发人员应该做好下面几项系统测试工作。为测试软件系统的输入信息设计出错处理路径;设计测试用例,模拟错误数据和软件界面可能发生的错误;记录测试结果,为系统测试提供经验和帮助;参与系统测试的规划和设计,确保软件测试的合理性。恢复测试:检查系统的容错能力。当系统出错时,检查系统能否在指定的时间间隔内修正错误并重新启动系统。例如,采用各种办法强迫系统失败,然后验证系统能否尽快恢复。安全测试:检查系统对非法侵入的防范能力.强度测试:检查程序对异常情况的抵抗能力,强迫系统在异常的资源配置下运行。例如,运行可能导致虚存操作系统崩溃或磁盘数据剧烈抖动的测试用例。性能测试:检查系统集成之后的运行性能。5.调试软件开发的最终目的是开发出高质量的完全符合用户需要的软件,所以,测试发现错误之后,还必须改正错误,这就是调试。调试是测试阶段最困难的工作。调试,又名排错,它是根据测试出问题的外部现象(又名错误或外错),分析找出问题的内在原因(又名故障或内错)并加以改正的代码执行与人工活动。调试的任务就是确定错误的准确位置(定位错误)、分析引发错误的原因,最终排除错误。定位错误是一门艺术,需要程序员经验和智慧。调试不是一门好掌握的技术,它是一个十分艰苦的过程。当然,若有CASE工具的支持,则可事半功倍。(1)调试过程调试总是发生在测试之后,但不是测试。如ppt所示,调试过程从执行一个测试用例开始,然后评估测试结果。如果发现测试结果与预期结果不一致,那么这种不一致就是一个错误征兆,它表明软件中隐藏着问题。调试过程试图找出产生错误的原因,然后改正错误。(2)调试技术①输出存储器内容②打印语句:把程序设计语言提供的标准打印语句插在源程序的各个部分,以输出关键变量的值。这种方法比第一种方

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论