Quest® Code Tester for Oracle
Version 1.8.1
Release Notes
May 2008
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.
|
Support for Oracle 11g |
You can now use Code Tester with Oracle 11g, with the following restriction: the RESULT CACHE clause will have to be commented out of your program headers for the initial creation of your test definition. |
The following provides a list of issues fixed.
| Bug | Description |
| 46143 | Errors when trying to run a report when there are no test definitions. |
|
46148 |
Code Tester now asks the user to confirm that they wish to delete the current test definition when they request creation of a new test definition for a program that already has a test definition. |
|
46152 |
Specification of random values for dates on the same day now works properly. |
|
46173 |
If a test case has a conditional execution clause that returns FALSE, generate outcomes does not show any outcomes because it stops execution. |
|
46234 |
Save as Quick Build is NOT saving/transferring test case customization logic. |
|
46690 |
Errors importing multiple files when full path does not have spaces. |
| 46694 | Import procedures are removed when import is complete. |
|
46772 |
Regenerating test code with dynamic Test Cases fails with compile errors. |
| 46778 | Wrapping of qu_xml.pkb or any files that contain any conditional comments. |
|
46900 |
Pre-execution customization code was not properly written to the export file, resulting in possible loss of customization code. |
|
47137 |
Incorrect line breaks in generated code was causing compile failures. |
|
47159 |
Make visible the name of the input argument variable on the Test Editor properties window for ALL TYPES. |
| 47224 | Tables with very large number of columns cause errors. |
|
47288 |
Invalid test code was generated when the first column of a table being tested was not comparable (CLOB, LONG, type, etc.). |
|
47400/ 47227/ 47778 |
You can now use the decimal separator character native to your dataset. Previously, Code Tester required the use of the "." as the decimal separator. |
|
47465 |
"Dataset contains no rows?" shows wrong message when the test is successful. |
| 47471 | Changes to custom test data group query are not saved. |
|
47472 |
Error when a test definition has a custom Test Data Group query on the outcome side of an IN OUT argument. |
|
47513 |
Empty values for min and max precision for random numbers causes an exception. |
|
47527 |
If I have multiple values for the outcome of an IN OUT argument, then the input value for the argument is changed to the valued RETURNED by the program, for the next call to the program. |
|
47530 |
Mutating trigger error when changing a random Test Data Group. |
|
47617 |
Export of attribute rows does not include the valueN_is_expr values. |
|
47598 |
Customization code that contains a line with just one single quote is incorrectly displayed. |
|
47779 |
You can no longer run a unit test or test case from the Test Editor browser if it has been marked inactive. |
|
47780 |
Running a test from a script caused a "Run universal ID cannot be NULL" error. |
|
48050 |
When copying a test case, some data was not copied properly, including customization code and conditional execution logic. |
|
48361 |
Variables bvased on arguments of NATURALN or POSTITIVEN type now are assigned a default value. |
|
48400 |
COUNT = tests for a query that contains a local variable reference now work properly. |
|
48650 |
Single Value Query tests for queries with references to PL/SQL variables cannot generate code, due to validation warnings. |
|
48751 |
Leading blanks are being trimmed from the user's input. They are now retained. |
|
48815 |
Export of test definitions fail with VALUE_EROR exception due to a large number of "/" characters in custom code. |
|
48860 |
Very large export files due to inclusion of the snapshot of source code. |
|
48945 |
Even when a test definition is marked as Stable, Code Tester is regenerating the test code. |
|
48946 |
Test Editor copy of test case leaves off datatype resulting in invalid test code. |
| 48946 | Error when copying test cases that contain random value specifications. |
| 49035 | Time required to generate test code is much longer in 1.8.1. |
| 49091 | A scalar value of 500 characters that does not have any spaces or other delimiters causes a VALUE_ERROR exception when running the test. |
| 49233 | Test code is not compilable after export/import operation when new argument has been added to tested program |
| 49347 | Do NOT check the "Validate existing test cases" by default in Test Builder. |
| 49380 | Do not attempt to recompile invalid objects that are NOT Code Tester objects; and do not propagate compilation exceptions. |
| 49387 | Include AUTHID CURRENT_USER in test code if the program being tested has that clause in it. |
The following known issues existed at the time of this release:
| Support for Oracle 11g | The RESULT CACHE clause will have to be commented out of your program headers for the initial creation of your test definition. |
|
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:
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. |
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, Oracle Express Edition, and Oracle Database 11g |
| 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. |
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.
The Quest Code Tester for Oracle release package contains the following items:
a. Online Help
b. Release notes
| info@quest.com | |
| Quest Software, Inc. World Headquarters 5 Polaris Way Aliso Viejo, CA 92656 USA |
|
| Web |
Refer to our Web site for regional and international office information.
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 |
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.