面向对象实现教学课件.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 大连理工大学软件学院 * 银行系统的类—协作图 * 大连理工大学软件学院 * 和测试单个类相似,测试类协作可以使用随机测试方法和划分测试方法,以及基于情景的测试和行为测试完成。 多类测试 生成多个类的随机测试用例: 对每个客户类,使用类操作符列表来生成一系列随机测试序列。这些操作符向服务类实例发送消息。 对所生成的每个消息,确定协作类和在服务对象中对应操作符。 对服务对象中的每个操作符(已经被来自客户对象的消息调用),确定传递的消息。 对每个消息,确定下一层被调用的操作符,并把这些操作符结合进测试序列中。 * 大连理工大学软件学院 * 用上述步骤生成多个类的随机测试用例,考虑Bank类相对于ATM类的操作序列: verifyAcct · verifyPIN ·[ [verifyPolicy·withdrawReq] | depositReq | acctInfo]n 对Bank类的随机测试用例可能是: #r3: verifyAcct · verifyPIN · depositReq 上述测试涉及的协作者,考虑与测试用例#r3中的每个操作相关联的消息。Bank必须和ValidationInfo协作以执行verifyAcct和verifyPIN,Bank还必须和Account协作以执行depositReq。因此,测试上面的协作的新测试用例是: * 大连理工大学软件学院 * #r4: verifyAcctBank ·[validAcctValidationInfo]· verifyPINBank·[validPINvalidationInfo ]· depositReq · [depositaccount] 多个类的划分测试方法类似于单个类的划分测试方法。但对于多类测试,应扩充测试序列以包括那些通过发送给协作类的消息而被调用的操作。 另一种划分测试方法,根据与特定类的接口来划分类操作。Bank类接收来自ATM类和Cashier类的消息,因此,可以通过把Bank类中的方法划分成服务于ATM的和服务于Cashier的两类来测试它们。 还可以用基于状态的划分,进一步精化划分。 * 大连理工大学软件学院 * 从动态模型导出测试用例 类的状态图可以帮助导出测试该类(及与其协作的那些类)的动态行为的测试用例。 图9.4是account类的状态图,初始转换经过了empty acct和setup acct这两个状态,而类实例的大多数行为发生在working acct状态中,最终的withdraw和close使得account类分别向nonworking acct状态和dead acct状态转换。 * 大连理工大学软件学院 * account类的状态转换图 * 大连理工大学软件学院 * 设计出的测试用例应该覆盖所有状态,操作序列应使account类实例遍历所有允许的状态转换: 测试用例#s1:open·setupAccnt·deposit(initial)·withdraw(final)·close 上面列出的序列与前面讨论的最小测试序列相同。向最小序列中加入附加的测试序列,可以得出其他测试用例: * 大连理工大学软件学院 * 测试用例 #s2:open·setupAccnt·deposit(initial)·deposit·balance·credit·withdraw(final)·close #s3:open·setupAccnt·deposit(initial)·deposit·withdraw·accntInfo·withdraw(final)·close 还可导出更多测试用例,以保证该类的所有行为都被适当地测试了。 在类的行为导致与一个或多个类协作的情况下,使用多个状态图去跟踪系统的行为流。 * 大连理工大学软件学院 * 12.5 小结 面向对象方法学把分析、设计和实现很自然地联系在一起了。虽然面向对象设计原则上不依赖于特定的实现环境,但是实现结果和实现成本却在很大程度上取决于实现环境。 因此,直接支持面向对象设计范型的面向对象程序语言、开发环境及类库,对于面向对象实现来说是非常重要的。 * 大连理工大学软件学院 * 具有方便的开发环境和丰富的类库的面向对象程序设计语言,是实现面向对象设计的最佳选择。 良好的程序设计风格对于面向对象实现来说格外重要。它既包括传统的程序设计风格准则,也包括与面向对象方法的特点相适应的一些新准则。 在测试面向对象程序的时候,除了继承传统的测试技术之外,还必须研究与面向对象程序特点相适应的新的测试技术。 面向对象测试的策略和技术从过程构件(模块)移向了对象类。 * 大连理工大学软件学院 * 一旦完成了面向对象程序设计,就开始对每个类进行单元测试。测试类时使用的方法主要有随机测试、划分测试和基于故障的

文档评论(0)

a13355589 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档