Hello, you are not logged in.  Login or sign up
Community >> Blogs
Search Toad World Search

Blogs
Toad and Database Commentaries

 Toad World blogs are a mix of insightful how-tos from Quest experts as well as their commentary on experiences with new database technologies.

Do you have a topic that you'd like discussed?  We'd love to hear from you.  Send us your idea for a blog topic.

What's New with Quest Code Tester for Oracle 1.5
 
Location: Blogs Steven Feuerstein's Blog    
 StevenFeuersteinTW 2/14/2007 2:09 PM

The Major Enhancements in the 1.5 Release

Of course, we spent lots of time just fixing bugs and making lots of small changes. But there were some very critical "big ticket" enhancements that were requested by users and prioritized for the commercial release.

The ToadWorld preview release, Quest Code Tester for Oracle 1.2.5.5,  offered a Test Builder that is very powerful, but it is also a bit quirky and limited.

In 1.5, Test Builder now conforms to the familiar explorer paradigm, with a list of test cases on the left, and the details for the current test case on the right. You can drag and drop content from one test case to another, making the copy action fast and intuitive. Along with this paradigm, we have cleaned up the workflow (buttons, toolbars, etc.) so that it conforms more closely to expectations of a Windows application. We are also now performing much better validation of test definitions, and display that information under the list of test cases.

Quick Build

Having said that, you still may not be entirely sure about which tests you would like to run for a given program. It might also be difficult for you initially to recall all the different types of tests that are available within Test Builder.

In addition, many of the types of tests you want to run for given scenarios are quite similar and predictable. For example, if your program inserts a row into a table, you will usually want to test each of the following cases:

  • Was the row inserted successfully?
  • Was the row not inserted under appropriate conditions?
  • Was the DUP_VAL_ON_INDEX error raised?

And so on. Well, the whole point of Quest Code Tester is to help you minimize the amount of time you spend building tests for your code, so we have added Quick Build to speed up the process.


  With more than 60 quick build test scenarios, you spend more time testing and less time coding.

Quick Build offers pre-defined "profiles" of test cases, reflecting typical kinds and groups of tests that you need to run for PL/SQL programs. Simply browse (or search for key words) through the Quick Build browser for specific test or group of tests that match your needs. Then drag and drop them into the Test Case Editor.

Quest Code Tester will then create a starting point with all of the tests cases in the browser, and all the appropriate outcomes defined in the Outcome Grid. You will then need to specify the input values, and review/finalize your outcomes.

Quick Build will greatly improve your productivity when building test for frequently-coded activities in PL/SQL programs.

Dynamic Test Cases

You can build your test cases one by one or you can use Quick Build to accelerate the process. In many other cases, however, you will want o specify a large number of tests at once, or drive your tests from a repository of test data in tables. In these cases, the new dynamic test case capability of Quest Code Tester 1.5 will make your wonder how you ever got by without this tool.

In 1.5, whenever you specify an input value or an outcome based on a scalar datatype (number, string, date, etc.), you can choose from any of these options:

  • A literal value or NULL
  • An expression
  • A pre-defined Test Data Group
  • A custom Test Data Group that you build "on the fly".

Test Data Groups are groups of data values, defined as either a "hard-coded" list of values or a SQL query. Quest Code Tester offers a wide array of pre-defined TDGs, such as:

  • Typical boundary conditions for integers, strings, dates
  • Delimited list variations, useful when testing string parsers
  • Common Boolean string values (T, F, TRUE, FALSE, etc.)

You can also build your own groups of test data for use with dynamic test cases through the Test Data Manager, available from the Tools menu of the Test Dashboard.

And if you have created one or more tables that contain the test data you want to use for inputs or even expected values, simply type in the query that returns those values and Quest Code Tester will automatically apply those values when your test is run.


Assign test data inputs to the results of a SQL query  

Simpler Code for Dataset Testing

In 1.2.5.5, Quest Code Tester generated a fairly large volume of code to test the contents of cursor variables and other datasets. This code was place in your external initialization and test case initialization sections. The resulting code worked, but it was clumsy, hard to manage, and not very scalable.

Integrated Reports

With the commercial release, you will now be able to run reports on your test definitions and associated results through the Reports menu in the Test Dashboard. Our initial set of reports will inform you on the code coverage and status of your tests.  The output formats available include PDF, Excel, RTF, and several image types.

The number and type of canned reports will be greatly enhanced in our upcoming releases.


Provide status reports to management in whatever format they desire.

Well, that's an awful lot of great, new stuff, don't you think? And speaking of the future....

The Future of Quest Code Tester for Oracle

I am very pleased with version 1.5 of Quest Code Tester. This tool proves that it is, indeed, possible to avoid writing most test code, leaving only the most application-specific and complicated testing logic.

It is so good, in fact, that I strongly recommend all users of utPLSQL to switch over to Quest Code Tester immediately. You can run your utPLSQL test packages from within Quest Code Tester, so you won't lose any of your existing test logic. But all new test code should be written in Quest Code Tester. It is that much easier and faster to use.

We still, however, have lots to improvements to make to Quest Code Tester. These are some of our top priority enhancements:

  • Add support for testing of object type methods, of XML documents, and other complex datatypes. We now support packages and schema-level functions and procedures.
  • Allow users to specify dependencies between test cases, and share test logic more easily between tests. This has been requested by several users already, and is critical with database program testing, due to the overhead and complexity of test setup.
  • Improve the migration of utPLSQL test code over to Quest Code Tester test definitions and generated test packages. In 1.5, you can semi-automatically "register" your utPLSQL test packages within Quest Code Tester, and run those packages within the UI, but other than that the test repository is unaware of the details of your tests.
  • Support scheduling of automated test execution through a Quest Code Tester interface. Today, you can execute Quest Code Tester tests by calling the backend PL/SQL API in your own, separate scripts (which you can do now, in products like ant). We plan to improve on that.
  • Tightly integrate Quest Code Tester with Toad and SQL Navigator.
  • Improve and expand the Reporting component.

And that just scratches the surface of all we plan to do with Quest Code Tester for Oracle. Of course, these are (mostly) our ideas, those of the development team (headed by Kevin Dalton) and product manager (Jeff Smith).

We also, though, very much want to follow in the gigantic footsteps of Toad, and drive the development of this product by user needs and desires. So please download a trial copy of Quest Code Tester for Oracle version 1.5 by visiting Quest.com.  Or try our freeware available on ToadWorld.

Then visit frequently and contribute often to the Quest Code Tester for Oracle community.

Here's to greatly improved testing of our PL/SQL code in 2007 and beyond!

Copyright ©2007 Quest Software Inc.
Permalink |  Trackback

Comments (2)   Add Comment
By nrintala on 2/20/2007 3:32 AM
Hi,
I've been trying out the Quest Code Tester and found
it quite effective for testing PL/SQL with one limitation. According to the release notes:
"Quest Code Tester for Oracle currently does not support (either completely or with limitations) the following datatypes:
-Object types"

Is there a workaround with custom code to test procedures returning objects and if not when can we expect a release with this functionality?

By StevenFeuerstein on 2/20/2007 8:10 AM
There are two separate issues here:

* Test methods in object types. We will have this implemented in 2007, just not sure when.

* Test (as outcomes) object type instances returned or modified by programs. Similarly, we will get this done in 2007, but in the meantime, you can certainly test these object types now. You just have to write lots of the code yourself, namely and most importantly the code to compare two object types for equality. From there, you will test an Expression and build the expression from the variable returned/modified by the program.

I will post a video showing this at the tutorial library very soon. There is a link to the library through the community.


Comment:
Add Comment   Cancel 
Search Blog Entries
 
Blogger and Topic List
 

 

All Recent Entries
 

 

Johannes Ahrends
Unicode

Steven Feuerstein
Oracle PL/SQL

Daniel Norwood
Toad for Data Analysts
John Pocknell
Toad for Oracle
Bert Scalzo
Toad for Oracle, Data Modeling, Benchmarking
Jeff Smith
Toad product family
Richard To
SQL Optimization
Jim Wankowski
DB2 - LUW and z/OS
John Weathington
Compliance
Doug Williams
Database Musings
  Henrik "Mauritz" Johnson
Toad Tips & Tricks on the "other" Toads
  Toad World Editor
Toad World issues

  Toad Data Modeler Opens in a new window
Data Modeling
 

Copyright 2008 by Quest Software  | Terms Of Use | Privacy Statement | Contact Us