0 0

没有测试如何重构10

  最近接手的代码有个方法特别让人头疼,无数的大小if/else层层嵌套,长度接近400行,要命的是它还三天两头出bug,天呐我连看懂它都不奢望了还要找bug?
  具体代码就不贴出来了,相信大家多少可能都遇过这种情况;我目前打算把它重构下,至少看得清楚点。但问题出来了,这段代码根本就没有单元测试(估计也没谁能写出来),那该怎么重构?
  目前的做法是利用eclipse的自动重构工具提取出了几块大方法,寄希望于eclipse来保证正确性;进一步涉及业务逻辑的就不敢再动了。这里涉及的一个问题是,可以用tdd来解决如何开发的问题,但另一方面,如何维护现有代码也是非常关键的,特别是在它没有测试代码的情况下。
2011年5月24日 08:59

1个答案 按时间排序 按投票排序

0 0

这么复杂的代码,干脆重写吧...

2011年5月25日 10:51

相关推荐

    重构 学习笔记 refactoring martin fowler

    前言 “每当我要进行重构的时候, ...如果没有测试代码, 请在重构的时候加入测试代码 重构应当是小步, 有序的进行, 当某一小步失败时,应当确认能回退到上一步; 并从上一步开始重新重构, 而不是在错误的基础上进行调试;

    没有单元测试,何谈重构

    通俗解释下就是电动门有个小bug,电动座椅又有个小bug,一堆小bug最终导致的大bug,人命关天了,本篇就来谈谈软件开发中避免小bug的技术:单元测试。本文将介绍以下内容:1.iOS开发中添加单元测试的方法。2.如何写...

    测试用例重构思考

    之前发了一篇关于测试用例的帖子在论坛,今天还是想在这里再唠叨一次,因为对测试用例的设计又有了一点新的认识,至少是在我的思想里,或许别人早就觉得是小儿科了,哈哈~  新入职一家公司刚好赶上测试用例重构,...

    项目重构方案设计.pdf

    这样⼀个庞⼤的程序,没有单元测试是⾮常危险的,我们不可能做到100%的覆盖率,但是我们可以对主要的逻辑和Function做单 元测试,这样既减少了测试⼈员的⼯作量同时整个系统的安全、稳定和可维护性得到了⼤⼤的提⾼...

    我的自动化测试程序

    但是重构有一个问题,就是如何保证重构后带代码实现的功能与重构前的一致,如果每次重构完成后,对此不闻不问,则会有极大的风险,如果每次重构后,都进行一边测试,则工作量会很巨大,最终可能是即使代码有重构的...

    敏捷转型-测试驱动开发回顾

    学习到了如何小步提交、单意图提交代码、如果进行代码重构等知识,以及真正的单元测试的好处。为啥会对这次的培训印象深刻,是因为该题目我提前做过,并没有很好的完成该算法,并且在进行算法书写的时候花费了好长...

    ReplayProxy:一种回归测试遗留 .NET 代码的新方法 - 记录现有行为,并在重构时断言没有任何变化

    一种隔离测试遗留 .NET 代码的新方法 - 记录现有行为并断言在重构时没有任何变化。 无限重复。 在经过测试之前,我无法重构此代码! 在我理解这段代码之前,我无法测试它! 在重构之前我无法理解这段代码! 听...

    TestRecorder For WatiN 优化重构版

    这里要讨论的是另一个项目WatiN Recorder,那的创意很好,可以也没有坚持下去,2008年5月后就没有更新了,本文分析器原因,提出专注于用户录制、回放,模拟等核心需求,对原项目进行重构,并增加了UI测试人员熟悉的JS...

    Mimics:一种隔离测试遗留 .NET 代码的新方法 - 记录现有行为并断言重构时没有任何变化

    一种隔离测试遗留 .NET 代码的新方法 - 记录现有行为并断言在重构时没有任何变化。 无限重复。 在经过测试之前,我无法重构此代码! 在我理解这段代码之前,我无法测试它! 在重构之前我无法理解这段代码! 听...

    经过改进的三次B样条小波变换_解决如何求解或者有没有已知的3次B样条小波重构滤波器系数的问题_matlab

    资源名:经过改进的三次B样条小波变换_解决如何求解或者有没有已知的3次B样条小波重构滤波器系数的问题_matlab 资源类型:matlab项目全套源码 源码说明: 全部项目源码都是经过测试校正后百分百成功运行的,如果您...

    java-refactoring-test:Java重构测试

    Java重构测试项目 请在开始测试之前,仔细通读所有说明! 介绍 这是hybris软件雇用过程使用的一个测试项目,用于测试您对Java / Spring最佳实践和重构的了解。 本练习的目的是评估您识别不良编码实践并通过使用最佳...

    testing-anti-patterns:测试反模式

    没有测试。 仅手动测试。 不是单元测试。 没有集成测试。 “测试三角形”或“测试蛋糕”而不是“测试金字塔”。 不测试很难测试的东西。 不进行渗透测试。 开发人员和质量检查人员无法沟通。 QA测试错误的...

    实践中的重构

    重构,早就不再是“奢侈品”,而是“日用品”。纵然如此,在自己的工作过程中,还是听到很多关于重构的误解。...目前为止,我还没有见过一个程序员,包括我自己在内,写代码是一遍就写得非常整洁,无需重构的

    基于spring boot + Vue2 + Element UI + Echarts 重构ureport2中国式复杂报表设计器

    注:前端项目目前没有测试接口,直接调用后端服务接口,因此前端项目运行需要启动后端项目才能正常使用。本项目使用JWT生成token,其他项目需要和本项目生成token规则一致即可访问页面,数据权限可通过token传参,并在...

    重建——改善既有代码的设计

    两种定义都强调是在不改变"软件的外部行为"前提下,不改变"软件之可察行为"就是说让修改不影响外部使用程序(程序员),在个外部来看,程序的行为和结果没有任何的变化.重构只是对程序内部结构进行调整,让代码更加...

    2023年最新7国语言二开做任务源码 重构UI+详细搭建教程

    2023年最新7国语言二开做任务源码 重构UI,完全开源没有任何加密。 测试环境:php7.2+mysql5.6 搭建教程看压缩包内

    refactoring-to-patterns:重构与模式

    继续进行对话优点保持较低的缺陷数量大胆地进行重构得到更加简单、更加优秀的代码编程时没有压力重构与模式模式是重构的目的地重构是抵达这个目的地的道路演进式设计学习了解优秀软件设计的演变过程比学习优秀设计...

    举例详解PHP脚本的测试方法

    我们经常会遇到这种情况:将一些没有经过任何测试的遗留代码进行重新编写测试,甚至这些代码还是用面向对象写的。要对这样的代码进行测试,我的建议是把代码分解成块,这样就容易测试了。 然而,这些遗留代码并不是...

Global site tag (gtag.js) - Google Analytics