关于sql:在Brownfield应用程序中实施单元测试的首要任务是什么?

关于sql:在Brownfield应用程序中实施单元测试的首要任务是什么?

What are the first tasks for implementing Unit Testing in Brownfield Applications?

您是否首先重构SQL? 您的建筑? 还是你的代码库?
您会更改语言吗? 您丢掉所有东西并从头开始吗? [不重构]


我正在将单元测试添加到大型的传统意大利面条代码库中。

我的方法是,当被要求解决问题时,我尝试围绕与当前任务相关的部分代码库创建一个新包装器。这个新的包装器是使用TTD开发的(首先编写测试)。有时会调用未经单元测试的旧代码。在其他时候,我会为现有模块制作一个新副本,并开始对其进行严重的破坏。有时我会从头开始重写功能。

但是,由于我对其进行了相当良好的测试,因此我感到可以控制。

我发现此代码库是经过大量复制和粘贴而开发的,一旦我理解了某个特定部分,并从中提取了一些功能(首先进行测试)...函数通常在许多其他地方都可用,因此用我自己的,经过单元测试的库替换旧代码的比率增加了。

我没有(也没有权限)尝试重写代码或将测试添加到当前问题未解决的部分代码(通常是我要修复的错误),但是我确实具有相当积极的主动态度触及任何可能相关的事物。

更新:Penguinix问:"您使用哪种语言?您建议使用特定的测试工具吗?"

现在我在……呃……腮腺炎!但是,同样的原理在任何地方都适用。

MinUnit改变了我对UT的理解:http://www.jera.com/techinfo/jtns/jtn002.html

当我看到MinUnit时,这对我来说是一个"禅"的时刻。它消除了我对单元测试的误解,因为单元测试是一个复杂的事情,需要复杂的OO框架等。我了解到UT只是在编写大量测试。您可以在3分钟内用自己喜欢的任何语言编写自己的"线束"。只是去做。


这确实取决于代码库的状态...是否有大量类?一类的大方法?这些课程紧密结合吗?配置是负担吗?

考虑到这一点,我建议阅读"有效使用旧版代码",找出问题并应用建议。


推荐阅读

    linux命令行设置语言?

    linux命令行设置语言?,系统,管理,环境,国家,工具,电脑,软件,文化,底部,语言,l

    linux使用命令改语言?

    linux使用命令改语言?,系统,工作,管理,电脑,设备,字符集,中文,命令,语言,虚

    c语言写linux命令?

    c语言写linux命令?,系统,工具,代码,智能,工作,环境,情况,位置,命令,文件,如何

    linux汇编语言命令?

    linux汇编语言命令?,系统,地址,代码,数据,网络,平台,平均,位置,灵活,工作,汇

    linux汇编语言命令?

    linux汇编语言命令?,系统,地址,代码,数据,网络,平台,平均,位置,灵活,工作,汇

    linux命令是什么语言?

    linux命令是什么语言?,系统,环境,代码,传播,管理,语言,操作系统,源码,自由,

    linux改语言命令行?

    linux改语言命令行?,系统,环境,工具,密码,概念,地方,软件,通信,管理,国际,lin

    linux命令行c语言?

    linux命令行c语言?,代码,系统,工具,环境,工作,保险,发行,命令,文件,终端,linu

    c语言在linux命令?

    c语言在linux命令?,系统,工作,管理,命令,保险,基础,环境,信息,文件,语言,linu

    linux编写c语言命令?

    linux编写c语言命令?,系统,基础,环境,代码,盘面,保险,百度,情况,数据,工具,在

    linux改变语言命令?

    linux改变语言命令?,系统,管理,网上,官方网站,情况,服务,中文,语言,命令,终

    c语言编译linux命令?

    c语言编译linux命令?,代码,工具,环境,系统,基础,保险,百度,语言,源程序,文件

    linux命令和应用程序?

    linux命令和应用程序?,软件,系统,环境,管理,基础,情况,位置,电脑,工具,中心,

    linux常用命令语言?

    linux常用命令语言?,工作,地址,系统,信息,命令,目录,标准,管理,工具,服务,lin

    r语言命令行写linux?

    r语言命令行写linux?,环境,数据,系统,工具,简介,官网,语言,报告,软件,发展,如

    linux语言查找命令行?

    linux语言查找命令行?,系统,工作,位置,标准,地址,信息,命令,管理,时间,文件,

    Python编程语言特征

    Python编程语言特征,代码,异常,环境,管理,培训,标准,检测,网络,特征,模块,1