第8章 面向对象的软件测试.ppt

  1. 1、本文档共86页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第8章 面向对象的软件测试 第8章 面向对象的软件测试 8.1 面向对象软件测试概述 8.2 面向对象的软件 1.信息隐蔽对测试的影响 2.封装和继承对测试的影响 3.多态性对测试的影响 8.3 面向对象测试与传统测试的区别 1.面向对象分析的测试(OOA Test)。 2.面向对象设计的测试(OOD Test)。 3.面向对象编程的测试(OOP Test)。 4.面向对象的单元测试(OO Unit Test)。 5.面向对象的集成测试(OO Integrate Test)。 6.面向对象的系统测试(OO System Test) 7.面向对象的覆盖率 8.4 面向对象的测试方法 2.接口类测试 3.抽象类测试 4.类测试系列的充分性 在某些情况下,可以使用穷举法来测试每个类,即用所有可能的值来测试,以确保每一个类都符合它的说明。在这种情况下,穷举测试法所带来的好处就超过了编写测试驱动程序以运行更多测试用例所花的代价。 但是穷举测试法一般是不可能实现的,如果不能使用穷举测试法时,就不能保证一个类的每一方面都符合它的说明,但能够运用某个充分性的标准来使我们对测试系列的质量抱有高度的信心。充分性的三个常用标准是:基于状态的覆盖率、基于约束的覆盖率、基于代码的覆盖率。最低限度地符合这些标准将会产生若干不同的测试系列。将所有三个标准用于测试系列,将会提高我们对测试充分性的信任度。 基于状态的覆盖率。以测试覆盖了多少个状态转换为依据。假如测试没有覆盖一个或一个以上的状态转换,那么其类的测试就不充分。即使测试用例对所有的状态都覆盖了一次,测试的充分性仍值得怀疑,因为状态通常包含了各种对象属性的值域。这样,必须测试这些值域里的所有值,包括典型值和边界值。 基于约束的覆盖率。与基于状态转换的充分性类似,还可以根据有多少对前置条件和后置条件被覆盖来表示充分性。例如,如果一个操作的前置条件是pre1或者pre2,而后置条件是post1或者post2,充分的测试则需要包含所有有效的组合情况(即pre1=true,pre2=false,post1=true,post2=false;pre1=false,pre2=true,post1=true,post2=false等)的测试用例。假如生成的测试用例满足了每一个需求,那么就符合这个充分性的标准。 基于代码的覆盖率。当所有的测试用例都执行结束时,确定实现一个类的每一行代码,或代码通过的每一条路径至少执行了一次,这是一种很好的思想。即使代码覆盖率是100%,也不一定能满足基于状态覆盖率或基于约束的覆盖率是100%。基于代码的覆盖率不够充分,所以使用哪些度量标准中的某一种来确定充分性是很重要的。 5.构建测试的驱动程序 测试驱动程序是一个运行测试用例并收集运行结果的程序。测试驱动程序的设计应该相对简单,因为我们很少有时间和资源来对驱动程序软件进行基于执行的测试(否则会进入一个程序测试的递归的、无穷之路),而是依赖代码检查来检测测试驱动程序。所以,测试驱动程序必须是严谨的,结构清晰、简单,易于维护,并且对所测试类的说明变化具有很强的适应能力。理想情况下,在创建新的测试驱动程序时,应该能够复用已存在的驱动程序代码。 6. Tester类的设计 由于Tester类提供了一些操作来帮助给出测试用例的结果,一个具体的Tester类的主要任务就是运行测试用例和给出结果。类接口的主要组成部分是建立测试用例的操作、分析测试用例结果的操作、执行测试用例的操作和创建用于运行测试用例的输出实例的操作。在具体的Tester类中,为每一个测试用例定义了一个方法,被称为测试用例方法。这些方法给测试计划提供了可跟踪性——每一个测试用例或每一组紧密联系的测试用例都有一个方法。测试用例方法的目的是通过创建输入状态、生成事件序列并检查输出状态来执行测试用例。 测试用例方法的任务是为某个用例构建输入状态。例如,通过将一个输出和作为参数传递的对象实例化,然后生成测试用例指定的事件。图8-4显示了一个满足了这些需求的Tester类的模型。 图8-4 Tester类需求的一个类模型 公共接口提供了一些操作来运行各种不同的测试,根据测试用例的来源组织测试系列。如果测试用例是根据类说明确定的,那么就是功能性测试用例;如果测试用例是根据代码确定的,那么就是结构性测试用例;如果测试用例是测试一个事件序列对一个对象的操作(例如几对输入输出转换是否正确),那么就是交互性测试用例。我们确定这些范畴是为了便于测试的维护。 设计测试用例的方法有多种,下面我们将简单介绍根据前置和后置条件确定测试用例的方法。 根据操作的前置和后置条件来确定测试用例的总体思想是:为所有可

文档评论(0)

好文精选 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档