复旦大学:《面向对象分析和设计》课程资料_UML和模式_Chapter 21 测试驱动的开发与重构

Chapter 21 测试驱动的开发与重构:3 ●●●● ●●。●●
Chapter 21 测试驱动的开发与重构

●●● ●●●●● ●●●● 中秋、国庆调课安排 ●●●● ●●●● ●●0● 9/19上课,布置 Project ●9/30停课一次,期间小组自行讨论并完成第 阶段成果。 ●10/9上课
中秋、国庆调课安排 ⚫ 9/19 上课,布置Project ⚫ 9/30 停课一次,期间小组自行讨论并完成第 一阶段成果。 ⚫ 10/9 上课

●●● ●●● ●●●●● ●●●● ●●●● 测试驱动的开发与重构 ●●●● ●●0● ●测试驱动的开发 ●什么是测试驱动的开发 为什么要进行测试驱动的开发 ●如何进行测试驱动的开发 ●重构 ●什么是重构 为什么要重构 示例
测试驱动的开发与重构 ⚫ 测试驱动的开发 ⚫ 什么是测试驱动的开发 ⚫ 为什么要进行测试驱动的开发 ⚫ 如何进行测试驱动的开发 ⚫ 重构 ⚫ 什么是重构 ⚫ 为什么要重构 ⚫ 示例

●●● ●●●●● ●●●● ●●●● 传统测试方法及问题 ●●●● ●●0● ●测试往往不够完整,会导致遗漏的错误; ●测试往往由专门的测试人员实施,他们对程序的 细节往往不够熟悉 测试人员通常根据文档,而不是代码来觉得究竟 要测试哪些内容,而这些文档很容易过期而与代 码不一致 ●大多数的测试是基于手工的,不能够自动完成, 因此无法经常执行,即使重复执行往往也不能保 证两次测试间的一致性
传统测试方法及问题 ⚫ 测试往往不够完整,会导致遗漏的错误; ⚫ 测试往往由专门的测试人员实施,他们对程序的 细节往往不够熟悉 ⚫ 测试人员通常根据文档,而不是代码来觉得究竟 要测试哪些内容,而这些文档很容易过期而与代 码不一致 ⚫ 大多数的测试是基于手工的,不能够自动完成, 因此无法经常执行,即使重复执行往往也不能保 证两次测试间的一致性

●●● ●●● ●●●●● ●●●● ●●●● 什么是测试驱动的开发 ●●●● ●●0● ●先写单元测试用例,再写代码; ●由测试来决定需要什么样的代码; ●由程序员编写和维护完整的测试用例集; ●仅当代码有了相应的测试代码,该代码才能作 为成品代码;
什么是测试驱动的开发 ⚫ 先写单元测试用例,再写代码; ⚫ 由测试来决定需要什么样的代码; ⚫ 由程序员编写和维护完整的测试用例集; ⚫ 仅当代码有了相应的测试代码,该代码才能作 为成品代码;

●●● ●●● ●●●●● ●●●● 个简单的演示 ●●●●● ●●●● ●●0● 编写一个能够执行加法和减法的计算器
一个简单的演示 编写一个能够执行加法和减法的计算器

●●● ●●● ●●●●● ●●●● ●●●●● 测试驱动的开发的优点 ●●●● ●●0● ●能够保证编写单元测试 ●使得程序员获得满足感,从而始终如一地坚持 编写测试 ●有助于澄清接口和行为的细节 可证明、可再现、可自动验证 ●改变事物的信心
测试驱动的开发的优点 ⚫ 能够保证编写单元测试 ⚫ 使得程序员获得满足感,从而始终如一地坚持 编写测试 ⚫ 有助于澄清接口和行为的细节 ⚫ 可证明、可再现、可自动验证 ⚫ 改变事物的信心

●●● ●●● ●●●●● ●●●● ●●●●● 测试驱动的开发的优点 ●●●● ●●0● ●让计算机帮你记住 ●需要实现哪些类、接口和方法 哪些方法还没有实现或者还存在问题
测试驱动的开发的优点 ⚫ 让计算机帮你记住 ⚫ 需要实现哪些类、接口和方法 ⚫ 哪些方法还没有实现或者还存在问题

●●● ●●●●● ●●●● ●●●● 什么是 JUnit ●●●● ●●0● ● Junit是一个测试框架,它的目标是简化单元 测试的开发、运行和报告,主要包含以下的 功能: °断言( assertions) ●测试类和测试集( suites) ●测试运行 测试结果报告 ●对于绝大多数的程序设计语言,都有类似的 单元测试框架,他们统称为 XUnit
什么是JUnit ⚫ Junit是一个测试框架,它的目标是简化单元 测试的开发、运行和报告,主要包含以下的 功能: ⚫ 断言(assertions) ⚫ 测试类和测试集(suites) ⚫ 测试运行 ⚫ 测试结果报告 ⚫ 对于绝大多数的程序设计语言,都有类似的 单元测试框架,他们统称为xUnit

●●●●● ●●●● ●●●● 开发 Junit单元测试的步骤 ●●●● ●●0● 定义一个 Testcase的子类 ●重载 setUp o或者 tearDown(方法(可选) 定义一个或者多个 public testXXXo方法,在这个方法 中 操纵测试对象,包括创建对象、组装对象以及调用其中的方法 ●发起预期结果的断言 随着测试用例的不断增加,可以创建一个 TestSuite类,包含其他 的测试用例。 对每一个类中的每一个公共方法 get/set方法除 至 少定义一个测试用例,如果该方法会抛出异常,则需要定 义相应的异常测试用例。 可以定义一个main方法以便于该测试用例能够独立于开发 环境或者其他工具而运
开发Junit单元测试的步骤 ⚫ 定义一个TestCase的子类. ⚫ 重载setUp() 或者 tearDown()方法(可选). ⚫ 定义一个或者多个public testXXX()方法 ,在这个方法 中: ⚫ 操纵测试对象,包括创建对象、组装对象以及调用其中的方法 ⚫ 发起预期结果的断言. ⚫ 随着测试用例的不断增加,可以创建一个TestSuite类,包含其他 的测试用例。 ⚫ 对每一个类中的每一个公共方法(get/set方法除外),至 少定义一个测试用例,如果该方法会抛出异常,则需要定 义相应的异常测试用例。 ⚫ 可以定义一个main方法以便于该测试用例能够独立于开发 环境或者其他工具而运行
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 复旦大学:《面向对象分析和设计》课程资料_UML和模式_Chapter 19 Chapter 20 Chapter 22.ppt
- 复旦大学:《面向对象分析和设计》课程资料_UML和模式_Chapter 18 - 使用GRASP的对象设计示例.ppt
- 复旦大学:《面向对象分析和设计》课程资料_UML和模式_Chapter 17 - GRASP基于职责设计对象.ppt
- 复旦大学:《面向对象分析和设计》课程资料_UML和模式_Chapter 16 - UML类图.ppt
- 复旦大学:《面向对象分析和设计》课程资料_UML和模式_Chapter 15 - UML交互图.ppt
- 复旦大学:《面向对象分析和设计》课程资料_UML和模式_Chapter 14 - 迈向对象设计.ppt
- 复旦大学:《面向对象分析和设计》课程资料_UML和模式_Chapter 13 - 逻辑架构和UML包图.ppt
- 复旦大学:《面向对象分析和设计》课程资料_UML和模式_Chapter 11 - 操作契约.ppt
- 复旦大学:《面向对象分析和设计》课程资料_UML和模式_Chapter 10 - 系统顺序图.ppt
- 复旦大学:《面向对象分析和设计》课程资料_UML和模式_Chapter 9 - 领域模型.ppt
- 复旦大学:《面向对象分析和设计》课程资料_UML和模式_Chapter 8 - 细化阶段的迭代——基础.ppt
- 复旦大学:《面向对象分析和设计》课程资料_UML和模式_Chapter 7 - 其他需求.ppt
- 复旦大学:《面向对象分析和设计》课程资料_UML和模式_Chapter 6 - 用例.ppt
- 复旦大学:《面向对象分析和设计》课程资料_UML和模式_Chapter 4 Chapter 5 - 初始阶段的需求.ppt
- 复旦大学:《面向对象分析和设计》课程资料_UML和模式_Chapter 3 - 案例分析 THE NEXTGEN POS SYSTEM.ppt
- 复旦大学:《面向对象分析和设计》课程资料_UML和模式_OOP:Object-Oriented Programming.pptx
- 复旦大学:《面向对象分析和设计》课程资料_UML和模式_Chapter 2 - 迭代、进化和敏捷.ppt
- 复旦大学:《面向对象分析和设计》课程资料_UML和模式_Chapter 1 - 面向对象分析和设计.ppt
- 复旦大学:《面向对象分析和设计》课程资料_课程注册系统_9-11 UC Design、Subsystem Design、Class Design.pdf
- 复旦大学:《面向对象分析和设计》课程资料_课程注册系统_6-8 Identify Design Elements、RunTime Architecture、Describe Distribution.pdf
- 复旦大学:《面向对象分析和设计》课程资料_UML和模式_复习:OOAD部分.ppt
- 复旦大学:《面向对象分析和设计》课程资料_UML和模式_AOP Aspect Oriented Programming.pptx
- 复旦大学:《面向对象分析和设计》课程资料_UML和模式_Hibernate Persistence.ppt
- 复旦大学:《面向对象分析和设计》课程资料_UML和模式_Hibernate 演示场景.pptx
- 复旦大学:《电子商务》课程资源_教学大纲.pdf
- 复旦大学:《电子商务》课程资源_教学案例:The Business Model-Recent Developments and Future Research-JOM2011.pdf
- 复旦大学:《电子商务》课程资源_教学研究:Online Game Addiction among Adolescents_Motivation and Prevention Factors.pdf
- 复旦大学:《电子商务》课程资源_教学研究:Research On The Utility Of An Advanced ACA In Context-Aware Tour Planning System.pdf
- 复旦大学:《电子商务》课程PPT课件_第二次课 电子商务的商业模式与分类.ppt
- 复旦大学:《电子商务》课程PPT课件_第一次课 引言(胥正川).ppt
- 复旦大学:《电子商务》课程PPT课件_第三次课 电子商务过程及相关因素(电子商务创业).ppt
- 复旦大学:《电子商务》课程PPT课件_第四次课 电子商务商业计划书写作 Creating a Winning E-Business Second Edition.ppt
- 复旦大学:《电子商务》课程PPT课件_第七次课 B2C电子商务——网上零售.pptx
- 复旦大学:《电子商务》课程PPT课件_第九次课 B2B电子商务(B2B行业平台).ppt
- 复旦大学:《电子商务》课程PPT课件_第五次课 商业模式的概念与内涵(发现商业模式).ppt
- 复旦大学:《电子商务》课程PPT课件_第八次课 电子商务模式与应用课程主题案例分析与展示——电子商务团购.ppt
- 复旦大学:《电子商务》课程PPT课件_第六次课 电子商务运营与管理 Getting Your E-Business Off The Ground.ppt
- 复旦大学:《电子商务》课程PPT课件_第六次课 电子商务运营与管理 Operating Your E-Business.ppt
- 复旦大学:《电子商务》课程PPT课件_第十次课 社会化电子商务——Hold住社会化媒体营销.ppt
- 复旦大学:《计算机图形学》课后习题答案_1.docx