有几种不同的PL / sql测试工具.

Steven Feuerstein已经写了两个

utplsql和

Quest Code Tester for Oracle(以前的QUTE).我是utplsql的粉丝,但它不再有一个积极的支持社区(这是一个耻辱).它也往往是相当冗长的,特别是在设置测试夹具时.它确实有纯粹的PL / sql包的基数虚拟化;源代码有点精彩,但它是FOSS.

QCTO带有GUI,这意味着像其他Quest产品即TOAD一样,它只是Windows.它并不能完全自动化测试数据生成,但它提供了一个支持它的接口.也像其他Quest产品一样,QCTO虽然有免费软件副本,但仍然获得许可.

史蒂文(披露,他是我的Oracle英雄之一)已经编写了所有PL / sql测试工具的功能比较.显然,QOTC出来了,但我认为比较是诚实的. Check it out.

关于测试仪器在utplsql的建议

管理单元测试的测试数据可能是颈部真正的痛苦.不幸的是,utplsql不能承担很大的负担.所以

>始终测试已知值:

>避免使用dbms_random;

>尝试将序列的使用限制在其值无关紧要的列中;

>日期也很棘手.避免硬编码日期:使用用sysdate填充的变量.学习欣赏add_months(),last_day(),interval,trunc(sysdate,’MM’)等

>隔离其他用户的测试数据.从头开始构建它.尽可能使用独特的值.

>只需要创建尽可能多的测试数据.体积测试是不同的责任.

>当测试程序更改数据时,为每个单元测试创​​建特定的记录.

>另外:不要依靠一个测试的成功输出来提供来自另一个测试的输入.

>当适当时,在单元测试之间简单地报告数据共享记录的测试程序.

>尽可能共享框架数据(例如引用的主键).

>使用自由文本字段(名称,描述,注释)来确定哪些测试或测试使用该记录.

>最小化创建新记录所涉及的工作:

>仅为测试套件和表的约束分配必需的值;

>尽可能使用默认值;

>尽可能地程序化.

其他事情要记住:

>设置测试夹具可能是一个耗时的练习.如果您有大量数据,请考虑构建一个过程来设置可以在每个会话中运行一次的静态数据,并在ut_setup本身中仅包含volatile数据.这在测试只读功能时特别有用.

>记住,创建测试数据是一个编程练习本身,并且容易出现错误.

>使用utplsql的所有功能.当推断出易失性数据的值时,utAssert.EqQuery,utAssert.EqQueryValue,utAssert.EqTable,utAssert.EqTabCount和utAssert.Eq_RefC_Query都是非常有用的功能.

>当诊断测试运行时,我们不希望使用这些数据是有用的.所以考虑在ut_setup开始时有一个空心的ut_teardown过程并清除测试数据.

处理遗留代码

评论加里的帖子让我想起了另一件你可能会觉得有用的事情. Steven F写了ulplsql作为JUnit的PL / sql实现,JUnit是Test First运动的Java先锋.然而,TDD的技术也可以应用于大量的遗留代码(在这种情况下,遗留代码是没有任何单元测试的任何程序集).

要牢记的关键是,您不必立即将所有内容都进行单元测试.逐步开始.构建新产品的单元测试,Test First.在应用更改之前,对要更改的位进行单元测试,以便您在进行更改后仍然可以工作.

在这方面有很多想法,但是(不可避免地,如果可耻),它主要来自OO程序员.迈克尔·羽毛是主要的章节.阅读他的文章Working Effectively With Legacy Code.如果你觉得有用,他随后写了一本同名的书.

用oracle怎么测试,oracle – 如何(单位)测试数据密集的PL / SQL应用程序相关推荐

  1. 视频教程-赵强老师:Oracle数据库从10g到11g(4)PL/SQL编程基础-Oracle

    赵强老师:Oracle数据库从10g到11g(4)PL/SQL编程基础 毕业于清华大学,拥有超过13年的工作经验. Oracle认证讲师,拥有6年以上授课经验.精通Oracle数据库.中间(Weblo ...

  2. oracle 比对数据库表和数据表数据(PL\SQL)

    开发测试时我们经常会遇到:需要对比两个表的表结构和表数据是否一致.以达到数据同步及历史数据迁移的需要.在此我们可以通过已下方式实现数据库表及数据的比对工作 一台安装oracle数据库的操作系统 PL\ ...

  3. oracle客户端免安装配置、64位机器PL/SQL和VS自带的IIS连接问题

    一.oracle客户端免安装配置 1.到oracle官网下载Oracle InstantClient, 把它解压缩到单独目录,例如C:\OracleClient, 2. 添加环境变量 ORACLE_H ...

  4. Oracle入门(十四.4)之在PL / SQL中使用变量

    一.变量的使用 (1)使用变量的原因 •临时存储数据 •储存值的操作 •可重用性 (2)处理PL / SQL中的变量 变量是: •在声明部分声明并初始化 •在可执行部分中使用并分配新值 变量可以是: ...

  5. Oracle入门(十四.3)之创建PL / SQL块

    一.PL / SQL块结构 一个PL / SQL块由三部分组成. PL / SQL块结构部分 二.PL / SQL编译器 用高级编程语言(C,Java,PL / SQL等)编写的每个程序都必须经过检查 ...

  6. oracle数据库提示无监听,【原创】PL/SQL连数据库提示无监听程序

    一.问题描述: 安装好ORACLE服务器端后,利用PL/SQL连数据,提示无监听程序. 二.解决步骤: 1.检查防火墙. 将防火墙关闭. 2.查看监听服务. 在管理工具->服务中查看监听服务是否 ...

  7. ORACLE EBS中消息队列fnd_msg_pub、fnd_message在PL/SQL中的应用

    EBS 中集成的FND_MSG处理很方便的在form中很方便的弹窗.提示消息之外,在写PL/SQL包的时候,也可以方便的进行借用来进行错误信息的收集.并且这个是基于session的,不同于客户化的lo ...

  8. jmeter和oracle,jmeter测试Oracle数据库

    大致步骤如下: (1) 复制ORACLE的JDBC驱动JAR包文件(ojdbc14.jar)到JMeter的lib目录下. (2) 运行jmeter.bat (3) 建立线程组:右键测试计划-> ...

  9. Oracle三种循环:for,while,do...while(PL/SQL)

    1. Oracle三种循环与Java类比 1.1 for 循环 Oralce中结构 for 变量i in 下限..上限(条件判断语句) loop执行语句 end loop; Java中结构 for(初 ...

最新文章

  1. azure mysql 只读节点_Azure MySQL PaaS 创建MySQL异地只读数据库 (Master-Slave)
  2. sql可视化工具_数据分析该用什么工具?
  3. python (八)迭代器、生成器、列表推导式
  4. 如何设置wiki权限
  5. WPF中的Data Binding调试指南
  6. c语言坐标绕路,C语言中的奇技淫巧
  7. 对比几段代码,看看你是 Python 菜鸟还是老鸟
  8. 如何成为技术大牛 ?
  9. Excel宏的基本逻辑语句
  10. python小白社区_Python小白教学系列| 初识python-Go语言中文社区
  11. 流文件和媒体文件的不一样( flv和mp4,avi的区别)
  12. UEBA案例分析系列之检测失陷凭证
  13. 学Python找工作你起码要会这些
  14. 如何用mysql求质数_PLSQL计算质数
  15. NOSQL,Redis的常用数据类型
  16. 一个域名如何解析到多个ip地址
  17. AutoSAR技术手册
  18. Loggernet软件新手入门(一)
  19. 四川农业大学电子信息专业考研经验
  20. Arthas(阿尔萨斯) 能为你做什么?

热门文章

  1. Asp.Net iframe Cookie 域 的问题!
  2. ZStack获1亿元B轮融资,深创投领投、阿里云继续跟投
  3. 深入Java -JVM 垃圾回收
  4. React Native移动开发实战-4-Android平台的适配
  5. SAP CRM 使用Javascript触发SAP Server Event
  6. mactex中文配置
  7. Java学习笔记二:数据类型
  8. Android中垃圾回收日志信息
  9. 来自web标准margin的嘲笑,你了解我吗?
  10. c++语言标准 pdf,C++14标准.pdf