zoukankan      html  css  js  c++  java
  • 数据库回归测试

    为了安全地变更现有的软件,不论是重构它还是增加新的功能,你都需要验证在完成变更后没有造成什么破坏。换言之,你需要对系统执行一次全面的回归测 试。如果你发现造成了某种破坏,就必须进行修复,或图1.4测试先行的开发方式者回滚所做的变更。程序员在开发领域代码的同时开发一个完整的单元测试套 件,这种做法在开发社区中已经越来越普遍,实际上,敏捷开发者喜欢在编写“真正的”代码之前先编写测试代码。就像你测试应用的源代码一样,难道你不应该测 试你的数据库?重要的业务逻辑以存储过程、数据有效性规则、参照完整性(RI)规则等形式实现在你的数据库中,这些业务逻辑显然应该经过彻底的测试。

    测试先行开发(TFD),也称为测试先行编程,是一种演进式的开发方式,你在编写新的功能代码之前必须编写一个会失败的测试。正如图1.4中的UML活动图所展示的,TFD包含以下步骤:

     

    1. 快速增加一个测试,主要是要有足够多的代码,以使得这个测试会失败。

    2. 运行测试以确保新的测试确实会失败。通常是运行完整的测试套件,但是由于速度的原因,你可能决定只运行完整测试套件的一个子集。

    3. 更新你的功能代码,使它能通过新的测试。

    4. 再次运行测试。如果测试失败,回到第3步。测试成功则开始下一轮工作。

    TFD的主要好处在于,它迫使你在实现新的功能之前对其进行仔细的思考(你实际上是在做详细设计),它确保你有测试代码来验证你的工作,并且它给了 你演进系统的勇气,因为你知道无论什么时候,如果你的改动破坏了系统的某个部分,你都可以立即检测到。就像拥有应用源代码的完整回归测试套件使得代码重构 可以进行一样,拥有数据库的完整回归测试套件使得数据库重构可以进行(Meszaros 2006)。

    测试驱动开发(TDD)(Astels 2003;Beck 2003)是TFD和重构的结合。你先是采用TFD的方式编写代码,在代码能工作后,你根据需要对它进行重构,以确保你的设计具有很高的质量。在进行重构 时,你必须重复运行回归测试,以检验是否破坏了系统的某个部分。

    一个重要提示是,你可能需要几种单元测试工具,至少对你的数据库需要一种,对外部程序中使用到的每种编程语言各需要一种。幸运的是XUnit工具家 族(例如,针对Java的JUnit,针对Visual Basic的VBUnit,针对.NET的VUnit,以及针对Oracle的OUnit)是免费的,相互之间保持着很好的一致性。
  • 相关阅读:
    多线程编程(14) 多线程同步之 WaitableTimer (等待定时器对象)
    多线程编程(17) 多线程同步之 WaitableTimer (等待定时器对象)[续三]
    多线程编程(13) 多线程同步之 Event (事件对象)
    一个关于 absolute 关键字的小练习
    [新功能]在个人Blog页面显示最新评论
    asp.net页面中hmtl注释的问题
    [征询意见]博客园准备租用更好的服务器
    [公告]博客园分页浏览功能改进
    [公告]博客园新服务器测试
    [公告]博客园建立了人才求职区
  • 原文地址:https://www.cnblogs.com/shihao/p/2467373.html
Copyright © 2011-2022 走看看