单元测试与测试策略project
单元测试 李春雷 2007-3-9 单元测试 单元测试概念,技巧 单元测试策略 自动化测试与每日/每周构建 什么是单元测试 单元测试是指针对程序模块(软件设计的最小单位)来进行正确性检验的测试工作。 测试种类 单元测试的重要性 帮助确保产品质量。 有助于为每个class定义需求。 详尽的测试套件(test suite)是强大而重要的文档。 详尽的测试套件可让我们进行有效的回归测试。 详尽的测试套件使重构变得有保障。 使修正bug变得容易。 编写单元测试(JUnit) testcase import junit.framework.TestCase; class TestXXX extends TestCase { public void setup(){ //initialize } public void testXXX1() { //assert the result is expected. } public void tearDown() { // } } 编写单元测试(JUnit) TestSuite import junit.framework.TestSuite class ClientTestSuite extends TestSuite { public static Test suite() { TestSuite suite = new TestSuite(); suite.addTest(new TestXXX(testXXX)); //suite.addTest(new TestXXXX(... return suite; } } 单元测试为何难实施 代码太难测试 迫于项目进度要求 开发者不原意写单元测试 用“临时测试”代替“结构化的单元测试” 单元测试目标 独立进行测试 独立的测试每个类:每个测试用例只应该测试一个class。 采用降低耦合度的技术; “编写可测试的代码”的目标可以摧生出高质量的程序代码 自动化测试 提高可测试性的技巧 针对接口编程,而非针对类编程 使用Strategy模式 迪米特法则:对象只应该调用自己触手可及的对象。 确保每个对象有合理的责任集 IoC AOP Strategy pattern Strategy Pattern 参与者: Strategy:策略参与者,规定使用策略的接口(API)的参与者 ConcreteStrategy:具体策略参与者 Context:(上下文)参与者 Strategy pattern 单元测试技巧 替换对象(test stub) 可以用stub替换真正代码。目的是用一个简单一点的行为替换一个复杂的行为,从而允许独立的测试代码的一部份。 模仿对象(mock object) 用来替换与你的代码协作的对象的对象。 你的代码可以调用mock object的方法。Mocks不实现任何逻辑,它只需要满足测试类调用它时,有最底限度的应答。 编写有效测试 反向测试:测试异常情况下代码的表现 等价划分:把输入按照特征进行分类。 测试用例应当经济,同时又保持自描述性。 尽量不要依赖外部配置 必要时对测试套件进行重构。 避免编写有副作用的测试 单元测试最佳实践 观念:除了可运行的代码,测试套件比其他任何东西都重要 小步前进:反对一次性编写一大堆测试套件;应测试一点,实现一点。 首先编写独立于代码的测试 在修正某个bug前,先编写一个单元测试,来表现这个bug 即使编写依赖于J2EE API的代码,也应确保它能脱离应用服务器进行单元测试。 单元测试最佳实践 把任何代码提交到CVS前,完整的运行测试套件 测试的名字要有意义 不要依赖于测试用例的先后顺序 如果用到了配置文件,从classpath来加载。 在IDE中运行单独的测试。 编写ANT脚本来运行所有测试,以及进行测试覆盖率分析 单元测试最佳实践 使用模仿对象来避免对外部资源的依赖 在必要的时候重构测试代码。 未实现的方法,让其抛出异常。 每个测试(JUNIT测试方法)只测试一件事情。 要保证测试代码的简单性,如果测试代码本身就很复杂,就会导致测试代码本身可能也有Defect。另一方面,如果测试代码很复杂,往往说明被测试代码的设计不合理,接口不清晰,需要重新设计或是Refactory。 当前项目的测试策略 当前项目的模块性质分类 POJO对象的单元测试 项目目录结构如下: 其中:源码存放在Src目录中,对应的JUnit的testcase存放在test目录中 POJO对象的单元测试 在WSAD/
您可能关注的文档
- 化工聚录乙烯生产技术(pvc课件任务二.ppt
- 化工行业。,。.ppt
- 化工生产单元操作设备简介.doc
- 化工聚录乙烯生产技术(pvc课件项目三任务三.ppt
- 化工计算机数据与图形处理.ppt
- 化工热力学教学课件04理想气体热力过程多学时(高教版).ppt
- 化工设备课件煤油冷却器设计.doc
- 化工设备机械基础 第一章.ppt
- 化工管道安装.ppt
- 化工设计概论-天津大学.ppt
- VR体验馆运营协议.docx
- 2026年移动安全运维能力考核.docx
- 浙江省A9协作体2025-2026学年高二上学期期中联考历史试题(解析版).docx
- 浙江省9+1高中联盟2025-2026学年高一上学期期中考试历史试题(解析版).docx
- 浙江省慈溪中学、舟山中学等多校2024-2025学年高一上学期期中考试历史试题.docx
- 浙江省杭州市及周边重点中学2025-2026学年高二上学期期中考试历史试题(解析版).docx
- 浙江省杭州市上城区等五地2025-2026学年高三上学期11月教学质量检测历史试题(解析版).docx
- 浙江省杭州市上城区等五地2025-2026学年高三上学期11月教学质量检测历史试题.docx
- 浙江省嘉兴市钱塘联盟2025-2026学年高二上学期期中考试历史试题(解析版).docx
- 吸管编对虾教学课件.ppt
最近下载
- 2025年度民主生活会个人对照检查发言材料 八篇.docx VIP
- 珠海市墨库新材料有限公司年产2000吨喷墨墨水原料项目 环境影响报告表(污染影响类)珠 .pdf VIP
- 运算律复习课.ppt VIP
- 《高等教育学》知识点梳理(附答案) .pdf VIP
- 医院围手术期护理质量检查标准评分表.doc VIP
- 浙江杭州市临安区中医院招聘笔试备考题库及答案解析.docx VIP
- 乡卫生院绩效工资考核与分配方案.docx VIP
- 部编人教版道德与法治七年级下册知识梳理总结(重点版).doc VIP
- 2025年福州市长乐市辅警招聘考试真题附答案解析.docx VIP
- 【研报】2023中国游戏出海支付研究报告.docx VIP
原创力文档

文档评论(0)