- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第9章 面向对象实现 面向对象实现主要工作 目前,软件测试仍然是保证软件可靠性的主要措施,对于面向对象的软件来说,情况也是如此。 面向对象测试的目标,也是用尽可能低的测试成本和尽可能少的测试方案,发现尽可能多的错误。 面向对象程序中特有的封装、继承和多态等机制,给面向对象测试带来一些新特点,增加了测试和调试的难度。 努力探索适合于面向对象软件的更好的测试方法。 9.1 程序设计语言 9.1.1 面向对象语言的优点 选择编程语言的关键因素,是语言的一致的表达能力、可重用性及可维护性。从面向对象观点看来,能够更完整、更准确地表达问题域语义的面向对象语言的语法是非常重要的。能带来的几个重要优点: 9.1.2 面向对象语言的技术特点 纯面向对象语言着重支持面向对象方法研究和快速原型的实现; 而混合型面向对象语言的目标则是提高运行速度和使传统程序员容易接受面向对象思想。 成熟的面向对象语言通常都提供丰富的类库和强有力的开发环境。 1. 支持类与对象概念的机制 2. 实现整体—部分结构的机制 3. 实现一般—特殊结构的机制 4. 实现属性和服务的机制 9.1.3 选择面向对象语言 开发人员在选择面向对象语言时,还应该着重考虑以下一些实际因素。 9.2 程序设计风格 良好的程序设计风格对面向对象实现来说尤其重要,不仅能明显减少维护或扩充的开销,而且有助于在新项目中重用已有的程序代码。 良好的面向对象程序设计风格,既包括传统的程序设计风格准则,也包括为适应面向对象方法所特有的概念 例如,继承性 而必须遵循的一些新准则。 9.2.1 提高可重用性 内部重用主要是找出设计中相同或相似的部分,然后利用继承机制共享它们。 外部重用即一个项目重用另一项目的代码。 虽然为实现外部重用所需要考虑的面,比为实现内部重用而需要考虑的面更广,但是,有助于实现这两类重用的程序设计准则却是相同的。 程序设计准则 1. 提高方法的内聚 2. 减小方法的规模 3. 保持方法的一致性 4. 把策略与实现分开 5.全面覆盖 6.尽量不使用全局信息 7.利用继承机制 在面向对象程序中,使用继承机制是实现共享和提高重用程度的主要途径。 9.2.2 提高可扩充性 上一小节所述的提高可重用性的准则,也能提高程序的可扩充性。此外,下列的面向对象程序设计准则也有助于提高可扩充性。 9.2.3 提高健壮性 9.3 测试策略 软件测试的经典策略是,从“小型测试”开始,逐步过渡到“大型测试”,即从单元测试开始,逐步进入集成测试,最后进行确认测试和系统测试。 对于传统软件系统来说,单元测试集中测试最小的可编译的程序单元 过程模块 ; 一旦把这些单元都测试完之后,就把它们集成到程序结构中去,与此同时应该进行一系列的回归测试,以发现模块接口错误和新单元加入到程序中所带来的副作用; 最后,把系统作为一个整体来测试,以发现软件需求中的错误。 测试面向对象软件的策略,与上述策略基本相同,但也有许多新特点。 9.3.1 面向对象的单元测试 最小的可测试单元是封装起来的类和对象。因此,对于面向对象的软件来说,单元测试的含义发生了很大变化。 不能再孤立地测试单个操作,而应该把操作作为类的一部分来测试。 9.3.2 面向对象的集成测试 集群测试 cluster testing 是面向对象软件集成测试的一个步骤。在这个测试步骤中,用精心设计的测试用例检查一群相互协作的类 通过研究对象模型可以确定协作类 ,这些测试用例力图发现协作错误。 9.3.3 面向对象的确认测试 9.4 设计测试用例 9.4.1 测试类的方法 前面已经讲过,软件测试从“小型”测试开始,逐步过渡到“大型”测试。对面向对象的软件来说,小型测试着重测试单个类和类中封装的方法。 测试单个类的方法主要有:随机测试、划分测试和基于故障的测试等三种。 案例:银行应用系统。该系统的account 账户 类有下列操作:open 打开 ,setup 建立 ,deposit 存款 ,withdraw 取款 ,balance 余额 ,summarize 清单 ,creditLimit 透支限额 和close 关闭 。 在下面的序列中可能发生许多其他行为:open·setup·deposit·〔deposit|withdrew|balance|summarize|creditLimit〕n·withdraw·close 2. 划分测试 1 基于状态的划分 2 基于属性的划分 3. 基于故障的测试 9.4.2 集成测试方法 1. 多类测试 Kirani和Tsai建议使用下列步骤,以生成多个类的随机测试用例。 生成多个类的随机测试用例,考虑Bank类相对于AT
文档评论(0)