Code Tester for Oracle® 2.
7
Release Notes
October 2015
These release notes provide information about the Code Tester for Oracle® release.
About Code Tester 2.7
Enhancements
Resolved issues
Known issues
About Code Tester 2.7
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.
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 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.
Code Tester 2.7 is a minor release, with enhanced features and functionality.
Code Tester 2.7
1
Release Notes
Enhancements
The following is a list of enhancements implemented in Code Tester 2.7.
Enhancement Issue ID
This version allows customers to decide whether the nested table parameter of PL/SQL CTO-178
programs is NULL or just empty (zero rows). A new NULL checkbox was added to the interface
wherever this parameter is defined.
The capabilities of the Code Evolution module are expanded: CTO-33,
CTO-34,
l Code Tester tries whenever possible to keep values of inputs and outcomes when their CTO-180,
data types are changed. CTO-261,
CTO-263
l The Code Evolution module now can analyze not only the evolution of the data type
itself but its dependencies too.
Code Tester offers new options for creating/editing inputs and outputs of a collection type. CTO-184
When applying a quick setup grid to the input or outcome tree editor, you now have the option
to replace all editor rows with quick setup grid ones, or update existing rows and insert non-
existing ones.
Resolved issues
Resolved issue Issue ID
There is now support for collections (nested tables and varrays) that are not initialized (atomic CTO-22
NULLs).
There is now a GUI that allows users to define nested tables/varrays as NULLs. CTO-178
Users can now take into account non-initalized nested tables and varrys when generating CTO-179
testing code.
Resolved an issue where there was an ORA-22926 exception when importing test definitions CTO-183
with big CDATA blocks.
Fixed an issue where an error was returned when a collection index was changed. CTO-184
The schema name is now included for nested non-scalar types when generating assignment and CTO-210
equality functions.
Fixed an issue where the wrong generated assignment function code was returned for nested CTO-228
object type fields/attributes that are not initialized
There is now support for non-initialized nested tables and varrays in the Run Window. CTO-238
It is now possible to test expressions of associative array, record or object types. CTO-256
Code Tester can now compile test code when input and outcome records belong to a different CTO-272
schema from the testing one.
Code Tester 2.7
2
Release Notes
Known issues
The following is a list of issues, including those attributed to third-party products, known to exist at the
time of release.
Code Evolution known issue
Please read before using this module
The Code Evolution module of Code Tester can determine what changes were made in a tested program and
adjust the test definitions according to these changes. This version of Code Evolution can handle various kinds
of changes in a tested program; however, testing has shown that the current design is not optimal in use cases
where the data types of arguments are changed.
In particular, this issue affects changes to complex data types (records, object types, collections and their
combinations). Although Code Evolution can determine that a data type was changed, it does not repair or
change the test definition. Rather, it removes the test elements associated with the changed data types, and
then creates new test elements with the revised data types. As a result, all inputs and outcomes based on the
changed data type are removed and must be recreated by the Code Tester user. In cases where the data types
are very complex, this rebuilding can require significant work.
The Code Tester team is working on enhancements that will preserve input and outcome values when data
types are modified.
General known issues
Known issue Issue ID
When testing cursor variables, the outcome of <SYS_REFCURSOR>=<SYS_ N/A
REFCURSOR> type fails. However, these outcomes can be replaced with <SYS_
REFCURSOR>=<QUERY>, where the expected query uses the same SELECT
statement as the expected cursor variable as <SYS_REFCURSOR>=<SYS_
REFCURSOR>.
Code Tester for Oracle does not support Extended SQL Data Types introduced in N/A
Oracle 12c.
Very large scripts in the customization section of a test can result in poor UI N/A
performance.
Unicode type schemas: Code Tester is not able to connect to Oracle schemas with N/A
Unicode symbols in their names.
CHAR Arguments: Handling of CHAR (fixed length) arguments not correct when 49010
the argument is defined as %TYPE against a column.
Results Viewer: Attributes are not displayed in Results Viewer for "IN argument N/A
values". The values of type OBJECT do display.
The default value for parameters of object type methods are not visible inside N/A
Code Tester. You must explicitly type in the default value if you want to test that
option.
Cannot run a test definition when locked by another user: After a test definition N/A
Code Tester 2.7
3
Release Notes
Known issue Issue ID
is run, its "last run status" is updated. This cannot be done if the test definition
has been locked by another user (say, to edit the test definition in some way). So
if you try to run a locked test definition, Code Tester will stop you.
If you argument name contains a single quote, as in "in_arg_with'", the code that N/A
Code Tester generates will be invalid. You will need to change your argument
name in this case.
Cannot request default value for IN argument of object type method: In 1.9 and N/A
higher, you can now request that Code Tester not pass a value for any IN
arguments that have a default value (thereby using the default value instead).
This feature is only available for procedures and functions defined in packages or
at the schema level. It is not supported for methods of object types.
If you enter the four letters "null" as the literal value for an input or outcome N/A
expected value, Code Tester will record that value as a NULL, rather than a
string of four letters. This will happen for any case variation of these four letters,
such as "Null" and "NULL". If you need to pass a literal string consisting of these
four letters, specify it as an expression and surround the string in single quotes.
If you use the Generate Outcomes wizard and a calculated value is NULL, it will N/A
by default be displayed as a string "{null}", and this will be saved into the
outcome as the expected value. You will need to manually change this string to a
real NULL value before running your test to get a correct result.
ALTER SESSION commands in your code could cause errors: If you include N/A
statements like those shown below in your programs:
EXECUTE IMMEDIATE 'ALTER SESSION SET NLS_SORT=BINARY_CI';
EXECUTE IMMEDIATE 'ALTER SESSION SET NLS_COMP=LINGUISTIC';
Then you will get runtime errors when you try to run your test.
If your test definitions contains outcomes for expressions or single value queries, N/A
then after importing you may get compile errors in your test code the first time
you try to run the test. Errors will look like this:
PLS-00103: Encountered the symbol ";"
and the test code will contains lines of code like:
l_fp_value ;
(the datatype of the declaration is missing).
In this case, simply open your test definition in Test Builder and immediately run
your test. It should then compile without errors. After doing this, export your
test definition and it should work properly after that point.
When you specify the name of the table for a table outcome (for example: "Is a N/A
table empty?" or "Is this table equal to another table?"), you may not include any
kind of comment next to the table name. Examples of invalid specifications of
tables: EMPLOYEES /* employee table */ or EMPLOYEES – employees table.
If you test the contents of a query that contains unnamed expressions (that is, it N/A
is an expression rather than simply a column name and you do not provide a
column alias), then that expression may not: contain a single quote, be equal to
SYSDATE, or be equal to USER. Examples that will cause problems: SELECT name
|| 'abc', SELECT SYSDATE, SELECT USER. This is due to idiosyncratic behavior in the
Code Tester 2.7
4
Release Notes
Known issue Issue ID
Oracle parser.
When you import a single test definition, Code Tester will warn you if it cannot N/A
find the program that this test definition purports to test. When you import a
suite, this same warning will not be shown if one or more of the test definitions in
the suite reference a program that cannot be found.
Random number generation fails on Oracle 9i: You will be unable to define test N/A
cases that rely on random number generation in Oracle 9i. Limited support by
Oracle for table function execution in SQL queries causes errors.
You cannot test a query directly. Instead, you will need to create a procedure N/A
that is, in essence, a "dummy" driver. Create a test definition for that procedure,
then define an outcome for that query.
You cannot test a trigger directly. Instead, you will need to create and/or run a N/A
procedure that performs the DML operation necessary to fire the trigger. You
then create outcomes to verify the changes made by the trigger.
When you import a suite, it deletes any existing suite with the same name, even N/A
if it is actually a different suite owned by a different user.
When you uninstall a Code Tester repository, public synonyms are dropped, even N/A
if those synonyms are not owned by the schema from which you are uninstalling
the repository. In this case, you will need to re-create the public synonyms.
You cannot test the contents of a table or query with column named COLUMN_ N/A
NAME. It must be renamed via the query's SELECT column alias.
Query strings of more than 32k are not supported. N/A
New dataset comparison logic does not work with a query that contains N/A
expressions that are not given column aliases.
When you enter a SELECT statement for a query, that query must not have any N/A
leading comments, nor should it start with OPEN FOR. It also should not have a
terminating semi-colon. If you include such text, you may see compile errors in
the generated test code or your query may be interpreted as a table name.
Testing contents of tables with non-scalar columns: Code Tester does not N/A
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.
When testing the contents of cursor variables with very large numbers of rows, N/A
you may receive a "ORA-04030: out of process memory" error. This occurs because
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 (values in Test Data Groups) cannot have more than 32,512 N/A
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, Code Tester applies those values using
dynamic SQL, thus hitting the lower limit.
Code Tester performs some basic analysis to determine if you have sufficient N/A
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
Code Tester 2.7
5
Release Notes
Known issue Issue ID
present, you will need to install into a different tablespace or ask your DBA for
more space.
When you export a test definition, you can specify that you want the export N/A
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.
You may not enter sub-second values in your timestamp literal value. Code N/A
Tester only supports time specifications down to the nearest second. You can,
however, specify sub-seconds using expressions (like TO_TIMESTAMP function, for
example).
When enabling DBMS profiling with customization and then running a test, you N/A
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.
When testing cursor variables, the outcome of <SYS_REFCURSOR>=<SYS_ N/A
REFCURSOR> type always fails. However, these outcomes can be easily replaced
with <SYS_REFCURSOR>=<QUERY> where the expected query uses the same
SELECT statement as the expected cursor variable.
Code Tester 2.7
6
Release Notes
System requirements
Before installing Code Tester 2.7, ensure that your system meets the following minimum hardware and
software requirements.
Hardware requirements
Table 1: Hardware requirements
Requirement Details
Processor 1.0 GHz x86 compatible CPU
Memory 512 MB of RAM recommended
Hard disk space 100 MB of disk space for installation
Operating system Microsoft Windows 2000 Professional Edition (Service Pack 4)
Microsoft Windows XP 32-bit (Service Pack 2 or later) and 64-bit (x64; All
Service Packs)
Microsoft Windows Server 2003 32-bit and 64-bit (Service Pack 1 or later)
Microsoft Windows Vista 32-bit and 64-bit (All Service Packs)
Microsoft Windows Server 2008 32-bit and 64-bit (All Service Packs)
Microsoft Windows Server 2012 32-bit and 64-bit (All Service Packs)
Microsoft Windows 7 32-bit and 64-bit (All Service Packs)
Microsoft Windows 8 32-bit and 64-bit (All Service Packs)
Microsoft Windows 10 32-bit and 64-bit (All Service Packs)
Database client Oracle SQL Net 9
Oracle SQL Net 10
Oracle SQL Net 11, plus Instant Client
NOTE: Code Tester for Oracle has been tested on Oracle Exadata
2.0 running Oracle database 11g R2.
Database server Oracle 9i Database Release 2 ([Link] or above), 10g R1, 10g R2, 12c;
Oracle Express Edition, 11g R1, 11g R2
Cloud database server Oracle databases running on Amazon EC2 and Oracle Cloud.
Code Tester 2.7
7
Release Notes
Required database privileges
Table 2: Required database privileges
Requirement Details
Database privileges The schema in which you install Code Tester must have these privileges:
CREATE PROCEDURE
CREATE SEQUENCE
CREATE SESSION
CREATE SYNONYM
CREATE TABLE
CREATE TRIGGER
CREATE VIEW
CREATE TYPE
NOTE:
l 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.
l We recommend that you install Code Tester into its own schema, and create public synonyms
so that all developers will be able to use Code Tester and share their test definitions. This will
also help you keep application code distinct from the Code Tester code base. To do this, your
schema must also have CREATE and DROP PUBLIC SYNONYM privileges.
l The Code Tester repository schema and any schema executing a test require the execute
privilege on the DBMS_RANDOM package.
Virtualization support
Before installing Code Tester for Oracle, review the following for virtualization support:
l Code Tester for Oracle has been tested with vWorkspace 7.0.
l Code Tester for Oracle has been tested for Citrix XenApp 5.0 support on Windows Server 2003 (Service
Pack 2) using the MetaFrame Presentation Server 4.0 and Citrix Presentation Server Clients 10.2.
l Oracle VM 3.1.1 running on Windows Server 2008 R2 with Oracle 11g R2.
NOTE: Code Tester may work in virtualization environments other than the ones in which it was
tested.
Code Tester 2.7
8
Release Notes
Product licensing
To activate a trial license
1. Launch the product.
2. Open the Licensing dialog: Help | Licensing.
3. Click Modify and enter the new license key and site message.
To activate a purchased commercial license
1. Launch the product.
2. Open the Licensing dialog: Help | Licensing.
3. Click Modify and enter the new license key and site message.
Getting started with Code Tester 2.7
Upgrade and installation instructions
Refer to Code Tester for Oracle Installation and Administration Guide for installation instructions.
Additional resources
Additional information is available from the following:
l Online product documentation [Link] Tester for Oracle/
l Toad World [Link]
Globalization
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 is Unicode-enabled and supports any character set. 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, Far-East Asia, Japan.
Code Tester 2.7
9
Release Notes
About Dell
Dell listens to customers and delivers worldwide innovative technology, business solutions and services they
trust and value. For more information, visit [Link].
Contacting Dell
Technical support:
Online support
Product questions and sales:
(800) 306-9329
Email:
info@[Link]
Technical support resources
Technical support is available to customers who have purchased Dell software with a valid maintenance
contract and to customers who have trial versions. To access the Support Portal, go to
[Link]
The Support Portal provides self-help tools you can use to solve problems quickly and independently, 24 hours
a day, 365 days a year. In addition, the portal provides direct access to product support engineers through an
online Service Request system.
The site enables you to:
l Create, update, and manage Service Requests (cases)
l View Knowledge Base articles
l Obtain product notifications
l Download software. For trial software, go to Trial Downloads.
l View how-to videos
l Engage in community discussions
l Chat with a support engineer
Code Tester 2.7
10
Release Notes
© 2015 Dell
Inc.
ALL RIGHTS RESERVED.
This guide 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 Dell Software Inc.
The information in this document is provided in connection with Dell Software 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 Dell Software products. EXCEPT AS SET FORTH IN DELL SOFTWARE’S TERMS AND
CONDITIONS AS SPECIFIED IN THE LICENSE AGREEMENT FOR THIS PRODUCT, DELL SOFTWARE 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 DELL 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 DELL SOFTWARE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
Dell Software 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. Dell Software does not make any commitment to update the information
contained in this document.
If you have any questions regarding your potential use of this material, contact:
Dell Software Inc.
Attn: LEGAL Dept
5 Polaris Way
Aliso Viejo, CA 92656
Refer to our Web site ([Link]) for regional and international office information.
Trademarks
Dell, the Dell logo, Code Tester, vWorkspace, and Toad are trademarks of Dell Inc. and/or its affiliates. Other
trademarks and trade names may be used in this document to refer to either the entities claiming the marks
and names or their products. Dell disclaims any proprietary interest in the marks and names of others.
Legend
CAUTION: A CAUTION icon indicates potential damage to hardware or loss of data if instructions are
not followed.
WARNING: A WARNING icon indicates a potential for property damage, personal injury, or death.
IMPORTANT NOTE, NOTE, TIP, MOBILE, or VIDEO: An information icon indicates supporting information.
Code Tester 2.7
11
Release Notes