- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
为了说明怎样用上述步骤生成多个类的随机测试用例,考虑Bank类相对于ATM类(见图9.3) 的操作序列: verifyAcct·verifyPIN·[〔verifyPolicy·withdrawReq〕depositReqacctInfoREQ]n 对Bank类的随机测试用例可能是: 测试用例#r3:verifyAcct·verifyPIN·depositReq 为了考虑在上述这个测试中涉及的协作者,需要考虑与测试用例#r3中的每个操作相关联的消息。Bank必须和ValidationInfo协作以执行verifyAcct和verifyPIN,Bank还必须和Account协作以执行depositReq。因此,测试上面提到的协作的新测试用例是: 测试用例#r4:verifyAcctBank·[validAcctValidationInfo]·verifyPINBank·[validPINvalidationInfo]·deposiReq·[depositaccount] 多个类的划分测试方法类似于单个类的划分测试方法(见9.4.1节)。但是,对于多类测试来说,应该扩充测试序列以包括那些通过发送给协作类的消息而被调用的操作。另一种划分测试方法,根据与特定类的接口来划分类操作。如图93所示,Bank类接收来自ATM类和Cashier类的消息,因此,可以通过把Bank类中的方法划分成服务于ATM的和服务于Cashier的两类来测试它们。还可以用基于状态的划分(见941节),进一步精化划分。 2. 从动态模型导出测试用例 在本书第6章中已经讲过,怎样用状态转换图作为表示类的动态行为模型。类的状态图可以帮助我们导出测试该类(及与其协作的那些类)的动态行为的测试用例。图9.4给出了前面讨论过的account类的状态图,从图可见,初始转换经过了empty acct和setup acct这两个状态,而类实例的大多数行为发生在working acct状态中,最终的withdraw和close使得account类分别向nonworking acct状态和dead acct状态转换。 图9.4 account类的状态转换图 设计出的测试用例应该覆盖所有状态,也就是说,操作序列应该使得account类实例遍历所有允许的状态转换: 测试用例#s1:open·setupAccnt·deposit(initial)·withdraw(final)·close 应该注意,上面列出的序列与9.4.1节讨论的最小测试序列相同。向最小序列中加入附加的测试序列,可以得出其他测试用例: 测试用例#s2:open·setupAccnt·deposit(initial)·deposit·balance·credit·withdr aw(final)·close 测试用例#s3:open·setupAccnt·deposit(initial)·deposit·withdraw·accntInfo·wi thdraw(final)·close 还可以导出更多测试用例,以保证该类的所有行为都被适当地测试了。在类的行为导致与一个或多个类协作的情况下,使用多个状态图去跟踪系统的行为流。 9.5 小结 面向对象方法学把分析、设计和实现很自然地联系在一起了。虽然面向对象设计原则上不依赖于特定的实现环境,但是实现结果和实现成本却在很大程度上取决于实现环境。因此,直接支持面向对象设计范型的面向对象程序语言、开发环境及类库,对于面向对象实现来说是非常重要的。 为了把面向对象设计结果顺利地转变成面向对象程序,首先应该选择一种适当的程序设计语言。面向对象的程序设计语言非常适合用来实现面向对象设计结果。事实上,具有方便的开发环境和丰富的类库的面向对象程序设计语言,是实现面向对象设计的最佳选择。 良好的程序设计风格对于面向对象实现来说格外重要。它既包括传统的程序设计风格准则,也包括与面向对象方法的特点相适应的一些新准则。 面向对象方法学使用独特的概念和技术完成软件开发工作,因此,在测试面向对象程序的时候,除了继承传统的测试技术之外,还必须研究与面向对象程序特点相适应的新的测试技术。 面向对象测试的总目标与传统软件测试的目标相同,也是用最小的工作量发现最多的错误。但是,面向对象测试的策略和技术与传统测试有所不同,测试的焦点从过程构件(模块)移向了对象类。 一旦完成了面向对象程序设计,就开始对每个类进行单元测试。测试类时使用的方法主要有
原创力文档


文档评论(0)