Quest® Code Tester for Oracle

Version 1.8

Release Notes

February 2008


Contents

Welcome to Quest Code Tester for Oracle

New in this Release

Resolved Issues

Known Issues

System Requirements

Global Operations

Getting Started

For More Information


Welcome to Quest Code Tester for Oracle

Quest Code Tester for Oracle is a tool to help you test Oracle code, written in the PL/SQL language. Code testing is generally acknowledged to be one of the biggest challenges and disappointments in the world of software. We all know we should test our code. More than that, we all want to test our code, but there are many challenges to implementing a strong regression test of our code. These challenges include having to write a large volume of test code, keeping that test code in synch with our application code as it changes, verifying the results of running our tests, and more.

Quest Code Tester for Oracle tackles these challenges by making it easy to define your tests, generate your test code, and run the tests, all within an easy-to-use graphical interface. The bottom line with Quest Code Tester: you don't write test code. You describe your tests, and the tool then generates the test code (as a PL/SQL package) that implements your test definition.

 


New in this Release

Outcome Generator Wizard Generate outcome entries based upon a given set of program inputs. This feature is especially handy when you are not sure what your program is going to return or the values it returns are so complex you cannot easily type them in yourself. Provide inputs, generate the outcomes, and save them directly into the Outcome Grid.

 

Outcome Wizard Code Tester provides a wizard interface to create outcomes for your test cases. You can now choose to define an outcome through the grid (faster but less obvious) or the wizard.

utPLSQL Integration

 

Register utPLSQL packages inside Quest Code Tester and then run utPLSQL tests along side Code Tester tests.

 

OS Authentication You can now log into an Oracle database using your network login when an OS (operating system) user has been created.
Quoted Identifiers Double quotes may be used around a schema object name when using a case sensitive or non-standard name.
Instant Debugging Block Sometimes you run your test and the results are either an unhandled exception or some other unexpected result that indicates a bug. Simply press the Debug Block button and Code Tester will place into the clipboard a block of code that you can paste into your PL/SQL editor to start up a debugging session.
Save to Quick Build  

This feature makes it easy to share and re-use complex, application-specific tests. Simply "save as" Quick Build (test template) after you have defined your own test case.
 

Conditional Execution Use this feature to specify the conditions under which a test case or unit test should be skipped. You can provide any PL/SQL expression or SQL query, and also specify that the current test should not run if the previous test failed. Useful for complex workflow processing of tests.
Graphical User Interface Enhancements The interfaces in both Test Dashboard and Test Builder have been simplified to allow for easier and quicker creation and management of tests.
New Reporting Features Reporting capabilities of Code Tester have been greatly expanded. You can run a wide range of existing reports, with output either in plain text or XML formats. You can also build your own reports and integrate them into the Reports interface.

Resolved Issues

The following provides a list of issues fixed.

Bug Description
2763 %TYPE for argument leads to -6502 error for long in put value.
2774 Allow reconnect in Test Builder.
2782 If query does not identify columns, error is not raised.
2795 Importing a single test definition from command line access violation.
2809 If ER query has more columns than the CBP query, no val. failure.
 
38147 Results Viewer not displayed when suite with invalid test definition runs.
38213 Validation for unique column names causes failures in existing tests.
38220  Access violation after using Test Data Manager when other CT windows open
38344 Importing a single test definition from command line causes an access violation.

38981

Test Element data type change not propagated.
 

41015 When selecting the default radio button on the Input values screen an error window appears.
43177 When a Test Case Query contains a comment, the test code will not compile.
44001 Format '%s' invalid or incompatible with argument.
44084 Single quote in test data group name corrupts exports.
44253 Support bundle data collection is truncated - appears due to binary data in Oracle Home registry.
44350 Single value query test fails on undeclared CV variable.
44380 When have table is unchanged AND exception outcome, and program raises an exception, get a "table or view does not exist" error for the is unchanged outcome.
44594 BLOB and RAW inputs causes error in generated code.
45372 Changes to tables are not correctly rolled back with dynamic test cases.

Known Issues

The following known issues existed at the time of this release:

Display of test definitions inside suites

 

The schema drop-down determines which programs and suites you can see in the lists (only those created in that schema). This means that if your suite contains programs owned by more than one schema, you will not be able to see/run all those programs in the suite. For now, you should create a separate suite for each set of programs defined in a given schema.

Unicode Support

Code Tester should work correctly when the database server character set is defined as multi-byte, the client is defined as single-byte, and all characters used to name database objects use a subset of the single byte character set in use on the client. Extensive testing has not been performed on this configuration.

Entering SELECT Statements

 

 

When you enter a SELECT statement for a query, that query must not have any leading comments. Nor can it have a terminating semi-colon. These will cause compile errors in the resulting test code.

 

 

Support for CLOBs

Limited support for CLOBs: Quest Code Tester for Oracle generates test code, but you can only use VARCHAR2-compatible values in your tests. In addition, you can write an export file with a >32K string, but will not be able to import that definition. See the Help document for more information on troubleshooting export/import issues.

Unsupported Datatypes

Quest Code Tester will not be able to build tests for arguments of the following types:

 

  • Object type methods

  • BLOB, LONG and LONG RAW

 

You will need to write your customized tests against these elements, by either defining an expression or Boolean outcome and then building all the necessary code to define the test.

When testing the contents of tables, views and queries, Code Tester can only analyze the contents of columns that can be referenced in UNION and MINUS operations. So, for example, a table with a CLOB column cannot be directly analyzed for equality with another dataset.

Code Tester will automatically ignore any columns that cannot be used in the comparisons.

Testing contents of tables with non-scalar columns

Quest Code Tester does not perform dataset comparison checks for tables with CLOB columns and other complex datatypes. Instead, Code Tester will automatically ignore any columns of these types that cannot be used in the comparisons.

Testing the Contents of Cursor Variables When testing the contents of cursor variables with very large numbers of rows, you may receive a "ORA-04030: out of process memory" error. This occurs because Quest Code Tester users nested tables to cache the cursor variable result set. You will need to reduce the number of rows analyzed in your test to avoid this issue.

 

Test data values consisting of very large strings

 

 

Test data values (values in Test Data Groups) cannot have more than 32,512 characters in them. While PL/SQL officially supports variable length strings of up to 32K (32767) characters, when using dynamic SQL the limit is reduced to 32,512. When working with Test Data Groups, Quest Code Tester applies those values using dynamic SQL, thus hitting the lower limit.
"Records Equal" function field names

When you are comparing record contents to a query, the column names in the query must match those of the record field names. Then the automatically generated records-equal function will compile and work properly.

Tablespace Availability for Installation  

Quest Code Tester performs some basic analysis to determine if you have sufficient tablespace available to install the product. This calculation is not always accurate, however, you may run out of space. The installer will notify you that the installation fails, but it will not report specifically on this error. If you have an install error, please check the qu_install.log file for tablespace errors. If present, you will need to install into a different tablespace or ask your DBA for more space.

 

 

Creating test definition by two different users

 

 

You can encounter a blocked Quest Code Tester session by doing the following: user A starts up Test Builder for program XYZ, to create a new test definition for this program. User B then tries to open Test Builder for the same program. User B will be blocked until user A completes their work. Then user B will receive an error, because the test definition already exists (by this time).

Import test definition to different schema When you export a test definition, you can specify that you want the export owner set to the owner to which the test will be imported. This step will remove most but not necessarily all of the schema names in the test definition. Some may still be prefixed on packaged types, such as collection types and record types. This will cause compile errors on the test code. Solution: go into your test definition and change/remove those schema names, or edit the export file directly.
Specifying times for TIMESTAMP You may not enter sub-second values in your timestamp value. Quest Code Tester only supports time specifications down to the nearest second.
Not connecting to ORACLE message

 

When adding customization logic to turns on DBMS profiling and running a test, you may encounter an ORA-03114: not connected to ORACLE message or an ORA-03113: end of file on communication channel error message and find that they have been disconnected from the database. This is an Oracle bug in the profiler logic and occurs inconsistently.

Object type inputs  

If your IN argument is an object type, you cannot specify an input value directly. Instead you must write the assignment to set up that input value via initialization code (at the input or test case levels).

Testing the value of a BLOB When testing the value of a BLOB, Code Tester will allow you to specify normal scalar tests for the BLOB (such as equality and inequality checks). The generated code, however, will not compile. If you want to test a BLOB out argument, you will need to create a Boolean expression test and then write code (usually a function) to analyze your BLOB and return TRUE or FALSE.

System Requirements

 

Before installing Quest Code Tester for Oracle, ensure your system meets the following minimum hardware and software requirements:

Platform 1.0 GHz x86 compatible CPU
Memory 512 MB of RAM recommended
Hard Disk Space 40 MB of disk space for installation
Operating System Microsoft®Windows® 2000, 2003, XP Professional
Database/Client Versions Oracle 9i Database Release 2 (9.2.0.6 or above), Oracle Database 10g, and Oracle Express Edition.
Required Database Privileges
The schema in which you install Quest Code Tester must have these privileges:

CREATE PROCEDURE

CREATE SEQUENCE

CREATE SESSION

CREATE SYNONYM

CREATE TABLE

CREATE TRIGGER

CREATE VIEW

CREATE TYPE

Note 1: Quest Code Tester will create a schema with the necessary privileges as part of the installation process, when the create new user and install into new user schema option is selected on Step 2 of the Repository Wizard.

Note 2: We recommend that you install Quest Code Tester into its own schema, and create public synonyms so that all developers will be able to use Quest Code Tester and share their test definitions. This will also help you keep application code distinct from the Quest Code Tester code base. To do this, your schema must also have CREATE and DROP PUBLIC SYNONYM privileges.


Global Operations

This section contains information about installing and operating this product in non-English configurations, such as those needed by customers outside of North America. This section does not replace the materials about supported platforms and configurations found elsewhere in the product documentation.

This release supports any single-byte character set. Double-byte or multi-byte character sets are not supported. In this release, all product components should be configured to use the same or compatible character encodings and should be installed to use the same locale and regional options. This release is targeted to support operations in the following regions: North America, Western Europe and Latin America, Central and Eastern Europe.

 


Getting Started

Contents of the Release Package

 

The Quest Code Tester for Oracle release package contains the following items:

  1. Quest Code Tester for Oracle version 1.8
  2. Product Documentation, including:

    a. Online Help

    b. Release notes


For More Information

Contacting Quest Software:

Email info@quest.com
Mail Quest Software, Inc.
World Headquarters
5 Polaris Way
Aliso Viejo, CA 92656
USA
Web

http://www.quest.com

Refer to our Web site for regional and international office information.

Contact Quest Support:

Quest Support is available to customers who have a trial version of a Quest product or who have purchased a commercial version and have a valid maintenance contract.
Quest Support provides around the clock coverage with SupportLink, our web self-service. Visit SupportLink at http://support.quest.com.

From SupportLink, you can do the following:

View the Global Support Guide for a detailed explanation of support programs, online services, contact information, and policy and procedures.
The guide is available at: http://support.quest.com/pdfs/Global Support Guide.pdf.

 


This document contains proprietary information protected by copyright. The software described in this guide is furnished under a software license or nondisclosure agreement. This software may be used or copied only in accordance with the terms of the applicable agreement. No part of this guide may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying and recording for any purpose other than the purchaser’s personal use without the written permission of Quest Software, Inc.

 

© 2008 Quest Software, Inc. ALL RIGHTS RESERVED.

 

Quest, Quest Software, the Quest Software logo, Aelita, AppAssure, Benchmark Factory, Big Brother, DataFactory, DeployDirector, ERDisk, Fastlane, Final, Foglight, Funnel Web, I/Watch, Imceda, InLook, IntelliProfile, Internet Weather Report, InTrust, IT Dad, JClass, Jint, JProbe, Knowledge Xpert, LeccoTech, LiteSpeed, LiveReorg, Matrix Insight, Matrix.Net, MIQ, NBSpool, NetBase, Npulse, PerformaSure, PL/Vision, Quest Central, RAPS, SharePlex, Sitraka, SmartAlarm, Speed Change Manager, Speed Coefficient, Spotlight, SQL Firewall, SQL Impact, SQL LiteSpeed, SQL Navigator, SQLab, SQLGuardian, SQLProtector, SQL Watch, Stat, Stat!, StealthCollect, Tag and Follow, Toad, T.O.A.D., Vintela, Virtual DBA, Xaffire, and XRT are trademarks and registered trademarks of Quest Software, Inc in the United States of America and other countries. Other trademarks and registered trademarks used in this guide are property of their respective owners.

If you have any questions regarding your potential use of this material, contact:

Quest Software World Headquarters
LEGAL Dept
5 Polaris Way
Aliso Viejo, CA 92656
Email: legal@quest.com

Disclaimer

The information in this document is provided in connection with Quest products. No license, express or implied, by estoppel or otherwise, to any intellectual property right is granted by this document or in connection with the sale of Quest products. EXCEPT AS SET FORTH IN QUEST'S TERMS AND CONDITIONS AS SPECIFIED IN THE LICENSE AGREEMENT FOR THIS PRODUCT, QUEST ASSUMES NO LIABILITY WHATSOEVER AND DISCLAIMS ANY EXPRESS, IMPLIED OR STATUTORY WARRANTY RELATING TO ITS PRODUCTS INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT. IN NO EVENT SHALL QUEST BE LIABLE FOR ANY DIRECT, INDIRECT, CONSEQUENTIAL, PUNITIVE, SPECIAL OR INCIDENTAL DAMAGES (INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF PROFITS, BUSINESS INTERRUPTION OR LOSS OF INFORMATION) ARISING OUT OF THE USE OR INABILITY TO USE THIS DOCUMENT, EVEN IF QUEST HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. Quest makes no representations or warranties with respect to the accuracy or completeness of the contents of this document and reserves the right to make changes to specifications and product descriptions at any time without notice. Quest does not make any commitment to update the information contained in this document.