软件工程 教学课件 作者 张海藩 1第4章.pptVIP

  • 5
  • 0
  • 约1.74万字
  • 约 113页
  • 2017-08-19 发布于广东
  • 举报

软件工程 教学课件 作者 张海藩 1第4章.ppt

划分出等价类以后,根据等价类设计测试方案时主要使用下面两个步骤: (1)设计一个新的测试方案以尽可能多地覆盖尚未被覆盖的有效等价类,复重这一步骤直到所有有效等价类都被覆盖为止; (2)设计一个新的测试方案,使它覆盖一个而且只覆盖一个尚未被覆盖的无效等价类,重复这一步骤直到所有无效等价类都被覆盖为止。 注意,通常程序发现一类错误后就不再检查是否还有其他错误,因此,应该使每个测试方案只覆盖一个无效的等价类。 4.4.2 边界值分析 经验表明,处理边界情况时程序最容易发生错误。例如,许多程序错误出现在下标、纯量、数据结构和循环等等的边界附近。因此,设计使程序运行在边界情况附近的测试方案,暴露出程序错误的可能性更大一些。 使用边界值分析方法设计测试方案首先应该确定边界情况,这需要经验和创造性,通常输入等价类和输出等价类的边界,就是应该着重测试的程序边界情况。选取的测试数据应该刚好等于、刚刚小于和刚刚大于边界值。也就是说,按照边界值分析法,应该选取刚好等于、稍小于和稍大于等价类边界值的数据作为测试数据,而不是选取每个等价类内的典型值或任意值作为测试数据。 通常设计测试方案时总是联合使用等价划分和边界值分析两种技术。 4.4.3 错误推测 错误推测法在很大程度上依靠测试人员的直觉和经验进行。它的基本做法是,列举出程序中可能有的错误和容易发生错误的特殊情况,并且根据它们设计测试方案。对于程序中容易出错的情况已有一些经验总结出来,例如,输入数据值为零或输出数据值为零往往容易发生错误;如果输入或输出的数目允许变化(例如,被检索的或程序生成的表的项数),则输入或输出的数目为0和1的情况(例如,表为空或只有一项)是容易出错的情况。还应该仔细分析程序规格说明书,注意找出其中的遗漏或省略的部分,以便设计相应的测试方案,检测程序员对这些部分的处理是否正确。 此外,经验还告诉我们,在一段程序中已经发现的错误数目往往和尚未发现的错误数成正比。例如,在IBM OS/370操作系统中,用户发现的全部错误的47%只与该系统4%的模块有关。这个事实再次证实了本章4.2.4小节提到的Pareto原理。因此,在进一步测试时应该着重测试那些已经发现了有较多错误的程序段。 4.5 测 试 策 略 软件测试策略把设计测试用例的方法集成到一系列经过周密计划的测试步骤中去,从而大大提高软件测试的效果,使得软件开发获得成功。任何测试策略都必须与测试计划、测试用例设计、测试执行以及测试结果数据的收集与分析紧密地结合在一起。 4.5.1 测试步骤 除非是测试一个小程序,否则一开始就把整个系统作为一个单独的实体来测试是不现实的。与开发过程类似,测试过程也必须分步骤进行,后一个步骤在逻辑上是前一个步骤的继续。 从过程的观点考虑测试,在软件工程环境中的测试过程,实际上是顺序进行的四个步骤的序列。最开始,着重测试每个单独的模块,以确保它作为一个单元来说功能是正确的。因此,这种测试称为单元测试。单元测试大量使用白盒测试技术,检查模块控制结构中的特定路径,以确保做到完全覆盖并发现最大数量的错误。接下来,必须把模块装配(即集成)在一起形成完整的软件包。在装配的同时进行测试,因此称为集成测试。集成测试同时解决程序验证和程序构造这两个问题。在集成过程中最常用的是黑盒测试用例设计技术,当然,为了保证覆盖主要的控制路径,也可能使用一定数量的白盒测试。在软件集成完成之后,还需要进行一系列高级测试。必须测试在需求分析阶段确定下来的确认标准,确认测试是对软件满足所有功能的、行为的和性能的需求的最终保证。在确认测试过程中仅使用黑盒测试技术。 4.5.2 单元测试 通常,单元测试和编码属于软件工程过程的同一个阶段。在编写出源程序代码并通过了编译程序的语法检查之后,可以应用人工测试和计算机测试这样两种类型的测试,完成单元测试工作。这两种类型的测试各有所长,互相补充。 下面讲述和单元测试有关的问题。 1. 单元测试的重点 在单元测试期间应该着重从下述五个方面对模块进行测试:模块接口,局部数据结构,重要的执行通路,出错处理通路,影响上述各方面特性的边界条件。 (1)模块接口 (2)局部数据结构 (3)重要的执行通路 (4)出错处理通路 (5)边界条件 2. 代码审查 人工测试源程序可以由编写者本人非正式地进行,也可以由审查小组正式进行。后者称为代码审查,它是一种非常有效的程序验证技术,对于典型的程序来说,可以查出30%~70%的逻辑设计错误和编码错误。审查小组最好由下述四人组成: ● 组长,他应该

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档