- 1、本文档共46页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
3. 程序设计风格 良好的面向对象程序设计风格,既包括传统的程序设计风格准则,也包括为适应面向对象方法所特有的概念而必须遵循的新准则: 3.1 提高可重用性 3.2 提高可扩充性 3.3 提高健壮性 软件工程 3.1 提高可重用性 代码重用分两种 本项目内的代码重用 新项目重用旧项目的代码 重用的准则 提高方法的内聚 减小方法的规模 保持方法的一致性 把策略与实现分开 全面覆盖 尽量不使用全局信息 利用继承机制 软件工程 3.2 提高可扩充性 提高扩充的准则 封闭实现策略 不要用一个方法遍历多条关联链 避免使用多分支语句 精心确定公有方法 软件工程 3.3 提高健壮性 提高健壮的准则 预防用户的操作错误 检查参数的合法性 不要预先确定限制条件 先测试后优化 软件工程 目 录 3.程序设计风格 4.测试策略 5.设计测试用例 2.程序设计语言 1.面向对象实现概述 软件工程 4. 测试策略 经典策略 从“小型测试”开始,逐步过渡到“大型测试”。即从单元测试开始,逐步进入集成测试,最后进行确认测试和系统测试。 面向对象软件的测试策略基本相同。 4.1 面向对象的单元测试 4.2 面向对象的集成测试 4.3 面向对象的确认测试 软件工程 4. 测试策略续 面向对象的测试模型 软件工程 4.1 面向对象的单元测试 不再孤立地测试单个操作,而应该把操作作为类的一部分来测试。 最小的可测试单元是封装起来的类和对象。 对于面向对象的软件来说,单元测试的含义发生了很大变化。 当测试面向对象软件时,传统的单元测试方法是不适用的,不能再在“真空”中测试单个操作。 软件工程 4.1 面向对象的单元测试续 例如:在一个类层次中,操作A在超类中定义并被一组子类继承,每个子类都可使用操作A,但是A调用于类中定义的操作并处理子类的私有属性。由于在不同的子类中使用操作A的环境有所不同,因此有必要在每个子类的语境中测试操作A。这就是说,当测试面向对象软件时,传统的单元测试方法是不可用的,我们不能再独立地对操作A进行测试。 软件工程 4.2 面向对象的集成测试 主要策略: 基于线程的测试(thread based testing) 把响应系统的一个输入或一个事件所需要的那些类集成起来。分别集成并测试每个线程,同时应用回归测试以保证没有副作用。 基于使用的测试(use based testing) 首先测试独立类,再测试使用独立类的下一个层次的类,直至把整个软件系统构造完为止。 集群测试 集成测试的一个步骤。目的是用精心设计的测试用例检查一群相互协作的类,力图发现协作错误。 软件工程 4.3 面向对象的确认测试 在确认测试或系统测试层次,不再考虑类之间相互连接的细节。 集中检查用户可见的动作和用户可识别的输出。 主要根据动态模型和描述系统行为的脚本来设计确认测试用例。 软件工程 目 录 3.程序设计风格 4.测试策略 5.设计测试用例 2.程序设计语言 1.面向对象实现概述 软件工程 5. 设计测试用例 现状 面向对象软件的测试用例设计方法,目前还处于研究、发展阶段。 区别 传统软件测试 测试用例的设计由软件的输入-处理-输出视图或单个模块的算法细节驱动。 面向对象测试 关注于设计适当的操作序列以检查类的状态。 软件工程 5.1 测试类的方法 贯彻软件测试思想 从“小型测试”开始,逐步过渡到“大型测试”。 小型测试着重测试单个类和类中封装的方法。 测试单个类的方法(通过银行应用系统的例子说明) 5.1.1 随机测试 5.1.2 划分测试 5.1.3 基于故障的测试 软件工程 5.1.1 随机测试 银行系统的account(帐户)类有下列操作: open(打开) setup(建立) deposit(存款) withdraw(取款) balance(余额) summarize(清单) creditLimit(透支限额) close(关闭) 系统对操作的限制: 必须在应用其它操作之前先打开帐户,在完成了全部操作之后才能关闭帐户。 软件工程 account类实例的最小行为历史操作: open.setup.deposit.withdraw.close 其它行为可能在下面序列中产生: open.setup.deposit.[deposit|withdraw|balance|summarize| creditLimit]n.withdraw.Close 随机地产生一系列不同的操作序列: 测试用例r1: open.setup.deposit.deposit.balance.summarize.creditLimit.withdraw.close 测试用例r2: open.setup.deposit.withdraw.deposit.bala
您可能关注的文档
- 与人为善,于己为善讲课.ppt
- 宇宙的未来(苏飞艳)讲课.ppt
- 雨的四季上课用讲课.ppt
- 雨刮及喷水电路的检修讲课.ppt
- 雨刷器工作原理讲课.ppt
- 雨说-人教版九年级语文第一单元讲课.ppt
- 雨下得有多大讲课.ppt
- 雨巷个人上课用讲课.ppt
- 语法结构theoutlineofgrammar讲课.ppt
- 语法考点(代词数词限定词)讲课.ppt
- 2025年湖北省武汉市单招职业倾向性测试题库必考题.docx
- 2025年河南省许昌市单招职业适应性测试题库推荐.docx
- 2025年陕西航天职工大学单招职业技能测试题库汇编.docx
- 2025年浙江经济职业技术学院单招职业技能测试题库参考答案.docx
- 2025年浙江理工大学单招职业技能测试题库及参考答案1套.docx
- 2025年河北省邢台市单招职业适应性测试题库完整版.docx
- 2025年河南中医药大学单招职业技能测试题库审定版.docx
- 2025年浙江工贸职业技术学院单招职业技能测试题库完美版.docx
- 2025年湖南电子科技职业学院单招职业技能测试题库审定版.docx
- 2025年河北科技学院单招职业技能测试题库1套.docx
文档评论(0)