We recently released a new version of Code Tester for Oracle (3.3) which provides some significant enhancements in the area of repository management. These enhancements were made as a consequence of some customer feedback and are particularly suited where there may be more complex environments with multiple project teams all using Code Tester and sharing a common Code Tester repository.

In shared environments where a single user may decide to upgrade their Code Tester client and inadvertently update a Code Tester repository, the Code Tester client version may get out-of-sync with the Code Tester repository version. This can cause problems for other users who have not yet upgraded their Code Tester client, because up to v3.3, Code Tester was not able to handle version differences between the client and the repository.

Until now!

Repository setup has now been improved to control access and prevent unintentional overwrites. To support this, the following enhancements were added:

  • A new CTO_ADMIN_ROLE user was added. Only this user can administer a repository through the tasks that are under the Administration folder of the Code Tester installation. The repository wizard verifies that the user has this role before allowing the task to be performed. A new repository can be installed by any user during the installation of Code Tester, but the CTO_ADMIN_ROLE is required to install a repository after installation.
  • When connected to a local repository, only this local repository is allowed to be managed. When connected to a shared repository, only that shared repository is allowed to be managed.
  • A new repository can now be created without connecting to the database.
  • A warning now appears if a user connects to a repository that was re-installed.
  • An older version of Code Tester can now connect to a newer repository.

Only a user with the CTO_ADMIN_ROLE granted can perform a repository operation such as an upgrade.


With CTO_ADMIN_ROLE granted                   Without CTO_ADMIN_ROLE granted

  • To enable downgrades of Code Tester in the event that a new installation fails, an optional AllowRepositoryDowngrade setting was added to the QCTOPreferences.ini and is set to False by default. False means that an attempt to downgrade the repository will fail and return an error. True means that a downgrade is allowed to proceed with a warning.

PLEASE NOTE: Whilst Code Tester 3.3 will provide some version tolerance between the current and prior versions, it is important to ensure that installations of Code Tester are properly managed so that all users (particularly those sharing a common Code Tester repository) are all upgraded at the same time.

Here are some other key features:

  • A front end debugging option was added to the CTO tracing functionality.
  • You can now disable certain fields when running a test.
  • Code Tester now supports connections through a proxy user.
  • Support for Oracle Edition Based Redefinition has been improved. The Repository Properties page now includes Editions information, and the Oracle server section in the support bundle includes Editions information.
  • The Code Evolution user interface has been redesigned to make its use more efficient.
    • Input/outcome value changes are now visible and can be edited.
    • Test case element values are preserved when data type modifications are updated with the Code Evolution.


What is Code Evolution?

Code is not static and therefore test definitions and test code cannot be static. If a program changes, the test definition in Code Tester needs to change with it. The test elements must be modified, and then each test case must be evaluated to change inputs and outcomes as appropriate. Code Evolution automates this task by automatically updating a test definition to realign it with the revised program that is being tested.

Code Tester automatically detects that there are code changes whenever a unit test definition is used (such as opened or run). You can then configure Code Tester to:

  • Ignore the test the next time the test is run, for example if the code is complex and you do not want to change all of the unit tests at this time.
  • Remove the test because, for example, the program does not exist anymore.
  • Update the test definition so that it matches the code again.

Code Evolution detecting data type differences

Some changes may impact a test definition in a way that cannot automatically make the test definition valid. Complete automation would be very complex (for example, determining which overloading an existing unit test belongs to). However, with Code Evolution, you can greatly reduce the time and effort involved in the continuous development process.

Additional information relating to the new features in version 3.3 can be found in the Release Notes.

3.3 is available for download from SupportLink as an MSI installer only, so you can use it to upgrade your current Toad for Oracle Developer Edition 2017 R2 (containing Code Tester 3.2).

We are also planning a 3.4 release which will be a part of the next Toad for Oracle Developer Edition 2018 release scheduled for Q2.


About the Author

John Pocknell

John Pocknell is a senior market strategist at Quest Software and part of the Information Management business unit. Based at the European headquarters in the U.K., John is responsible for synthesising analyst data and customer interviews in order to create and evangelise solutions-based stories and messaging which relate to major IT initiatives for our extensive portfolio of database products, worldwide. He has been with Quest Software since 2000, working in the database design, development and deployment product areas and spent over 10 years as product manager for the Toad product line. John has been successfully evangelising Toad and other database solutions at various conferences and user groups around the world for the last 19 years as well as writing blogs and technical papers both internally and for the media. John has worked in IT for more than 30 years, most of that time in Oracle application design and development. He is a qualified aeronautical engineer with more than 10 years of experience in provisioning IT consultancy services and implementing quality assurance systems to ISO 9001.

Start the discussion at forums.toadworld.com