用oracle怎么测试,oracle – 如何(单位)测试数据密集的PL / SQL应用程序
有几种不同的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应用程序相关推荐
- 视频教程-赵强老师:Oracle数据库从10g到11g(4)PL/SQL编程基础-Oracle
赵强老师:Oracle数据库从10g到11g(4)PL/SQL编程基础 毕业于清华大学,拥有超过13年的工作经验. Oracle认证讲师,拥有6年以上授课经验.精通Oracle数据库.中间(Weblo ...
- oracle 比对数据库表和数据表数据(PL\SQL)
开发测试时我们经常会遇到:需要对比两个表的表结构和表数据是否一致.以达到数据同步及历史数据迁移的需要.在此我们可以通过已下方式实现数据库表及数据的比对工作 一台安装oracle数据库的操作系统 PL\ ...
- oracle客户端免安装配置、64位机器PL/SQL和VS自带的IIS连接问题
一.oracle客户端免安装配置 1.到oracle官网下载Oracle InstantClient, 把它解压缩到单独目录,例如C:\OracleClient, 2. 添加环境变量 ORACLE_H ...
- Oracle入门(十四.4)之在PL / SQL中使用变量
一.变量的使用 (1)使用变量的原因 •临时存储数据 •储存值的操作 •可重用性 (2)处理PL / SQL中的变量 变量是: •在声明部分声明并初始化 •在可执行部分中使用并分配新值 变量可以是: ...
- Oracle入门(十四.3)之创建PL / SQL块
一.PL / SQL块结构 一个PL / SQL块由三部分组成. PL / SQL块结构部分 二.PL / SQL编译器 用高级编程语言(C,Java,PL / SQL等)编写的每个程序都必须经过检查 ...
- oracle数据库提示无监听,【原创】PL/SQL连数据库提示无监听程序
一.问题描述: 安装好ORACLE服务器端后,利用PL/SQL连数据,提示无监听程序. 二.解决步骤: 1.检查防火墙. 将防火墙关闭. 2.查看监听服务. 在管理工具->服务中查看监听服务是否 ...
- ORACLE EBS中消息队列fnd_msg_pub、fnd_message在PL/SQL中的应用
EBS 中集成的FND_MSG处理很方便的在form中很方便的弹窗.提示消息之外,在写PL/SQL包的时候,也可以方便的进行借用来进行错误信息的收集.并且这个是基于session的,不同于客户化的lo ...
- jmeter和oracle,jmeter测试Oracle数据库
大致步骤如下: (1) 复制ORACLE的JDBC驱动JAR包文件(ojdbc14.jar)到JMeter的lib目录下. (2) 运行jmeter.bat (3) 建立线程组:右键测试计划-> ...
- Oracle三种循环:for,while,do...while(PL/SQL)
1. Oracle三种循环与Java类比 1.1 for 循环 Oralce中结构 for 变量i in 下限..上限(条件判断语句) loop执行语句 end loop; Java中结构 for(初 ...
最新文章
- azure mysql 只读节点_Azure MySQL PaaS 创建MySQL异地只读数据库 (Master-Slave)
- sql可视化工具_数据分析该用什么工具?
- python (八)迭代器、生成器、列表推导式
- 如何设置wiki权限
- WPF中的Data Binding调试指南
- c语言坐标绕路,C语言中的奇技淫巧
- 对比几段代码,看看你是 Python 菜鸟还是老鸟
- 如何成为技术大牛 ?
- Excel宏的基本逻辑语句
- python小白社区_Python小白教学系列| 初识python-Go语言中文社区
- 流文件和媒体文件的不一样( flv和mp4,avi的区别)
- UEBA案例分析系列之检测失陷凭证
- 学Python找工作你起码要会这些
- 如何用mysql求质数_PLSQL计算质数
- NOSQL,Redis的常用数据类型
- 一个域名如何解析到多个ip地址
- AutoSAR技术手册
- Loggernet软件新手入门(一)
- 四川农业大学电子信息专业考研经验
- Arthas(阿尔萨斯) 能为你做什么?