- 2
- 0
- 约3.61千字
- 约 30页
- 2015-08-23 发布于河南
- 举报
测试驱动开发 申松淦 主题 测试驱动开发的基本概念 测试驱动的基本流程 测试驱动的所采用的技术及工具 DEMO 测试驱动开发的基本概念 为什么会出现测试驱动开发 什么是测试驱动 测试驱动所要达到的目标 为什么会出现TDD—程序员 当有一个新的开发任务时,往往第一个念头就是如何去实现它呢? “应该是这么做的吧,嗯,差不多就是这样的” 。 抓起任务就开始编码,一边写,一边修改和设计。 时间这么紧!我还是先实现任务吧,然后再好好测试。 还是不工作,时间不多了。不管了,还是先做个实现,以后再来整理代码吧。 我已经单步调试了好几次了,遍历了所有可能的分支,应该不会有问题了,提交,今天可以好好休息一下了 要不要写单元测试把我刚才单步调试的步骤写下来啊?那样是很好,但工作量很大哦 这样的情况要作自动测试太复杂了。还是手工测试一下吧。 程序员应该做些有创意的东西,这样才有趣啊 测试是QA的事,我为什么要做啊,我做了他们干什么啊 为什么会出现TDD—程序员 奇怪了,怎么代码跟开发文档上有这么大的差别啊? 这段代码究竟想表达什么意思? 代码现在越来越乱了,我都不敢修改代码了,修改了这个地方,天晓得会引起多少别的地方出错啊! 这个地方的代码怎么好象在那个地方看到过啊?这个程序里怎么会有这么多的重复代码呢? 为什么会出现TDD—QA 开发部在干什么啊,BUG怎么这么多,他们有没有自己先测试一下啊 这下好了,让他们修改了一个BUG,现在一下子来了这么多的BUG 他们到底在搞什么啊,有没有从用户的角度考虑啊,我新增一个采购订单,订单项竟然可以输入负数。 有办法可以解决上面的矛盾吗? 什么是测试驱动 测试驱动是一种开发形式: 1.首先要编写测试代码 2.除非存在相关测试,否则不编写任何的产品代码 3.由测试来决定需要编写什么样的代码 4.要求维护一套详尽的测试集 测试驱动所要达到的目标 clean code that work 测试驱动所追求的目标就是代码整洁可用,其实现的规则就是: 1.只有测试失败时,我们才写代码 2.消除重复设计,优化设计结构 测试驱动开发的基本流程 定义应用程序的要求 熟悉应用程序的功能区域,确定要使用的单项功能项或功能要求 创建验证要求的测试列表 为功能或要求定义接口和类 编写测试代码 运行测试 根据测试生成产品代码 重新运行测试,根据测试修改产品代码,直到所有测试都通过 整理代码 重复上面的步骤 测试驱动开发的基本流程 DEMO: 演示测试驱动的基本流程 测试驱动的工具与技术 单元测试 重构的基本概念,及在测试驱动中的地位 重构的时机 模拟对象 单元测试 什么是单元测试? 单元测试是开发者编写的一小段代码,用来验证被检测代码的一个很小的,很明确的功能是否正确 单元测试的优点 可以明确地验证功能的正确性 ,提高开发速度和质量,加速了代码重构的过程 是一种设计行为 单元测试可以表现为文档化 具有回归性,可以随时随地的快速的运行测试来验证代码的准确性 重构的基本概念 什么是重构? 重构是一个过程:在不改变软件的外在行为的前提下,对代码做出修改,以改进程序的内部结构。提高其可理解性,降低其修改成本。 重构的好处 重构可以改进软件设计 重构使软件更加容易理解 重构可以帮助找出BUG 重构可以提高编程速度 重构的时机 存在重复的时候 当我们觉察到代码或代码所表达的意图不明确的时候 代码有味道的时候(我们的代码可能存在问题的时候) 重构与TDD密切相关 通过重构对代码进行整理 TDD的详细测试集可以让我们放手进行重构 模拟对象 我们在编写测试时追求的目标: 目标专一:理想情况下每个测试只有一条断言 彼此独立:对于每个测试都存在预设环境的建立和清除 运行速度快:我们要频繁的运行这些测试 矛盾: 频繁的测试…,彼此独立??如果测试的预设环境十分的耗费资源,我们该怎么办呢? 模拟对象 现在的开发模式: 多层开发 在多层开发模式下,我们的业务逻辑层是否一定要等到数据访问层开发好了才可以开发呢? 模拟对象 上面的TDD说的很好,为什么我总觉得在实际中不实用呢? 我看了很多的测试驱动方面的介绍,最后发现测试驱动只能用于简单的测试,用于简单的类库,对于复杂的应用好像一点作用也没有啊? 难道TDD真的这么脆弱吗? 模拟对象 模拟对象是取代真实对象的位置,用于测试一些与真实对象进行交互或依赖于真实对象的功能 模拟对象 [TestMethod] public void TestAdding() { string LOST_IN_SPACE = Lost In Space; Movie lostInSpace = new Movie(LOST_
您可能关注的文档
最近下载
- 2025《“混改”后的云南白药公司治理及效果分析》6700字.doc VIP
- 2025年山东理工职业学院单招《数学》检测卷(word)附答案详解.docx VIP
- 2025年山东理工职业学院单招《数学》考前冲刺练习【实用】附答案详解.docx VIP
- 新人教版九年级数学下册导学案全册.docx VIP
- (正式版)JJF(蒙) 082-2024 《旋转蒸发仪校准规范》.pdf VIP
- 国际脓毒症和脓毒性休克管理指南解读.ppt
- 七年级下册语文单元测试卷及解析.docx VIP
- 人工智能安全与伦理挑战.pptx VIP
- 2023年执业药师继续教育咽喉反流性疾病的诊治参考答案.docx VIP
- 2025年山东理工职业学院单招英语模拟试题(附答案解析) 完整版2025.pdf VIP
原创力文档

文档评论(0)