This article will focus on a new set of tools from Quest called Toad DevOps Toolkit. The Quest people are providing useful Toad functionality that is easily integrated into today’s continuous-flow project management environments.
This article will discuss Toad DevOps Toolkit, which is designed to assist with unit testing, code review, database compare and synchronization.
Many shops have gone to an Agile methodology that is continual change and implementation cycles.
What is Agile Project Management?
Agile Project Management reduces complexity by breaking down the many-months-long cycle of building requirements for the whole project, building the entire product and then testing to find hundreds of product flaws. Instead small, usable segments of the software product are specified, developed and tested in manageable, two-to-four-week cycles.
Agile project management continuously evaluates time and cost as primary constraints. Rapid feedback, continuous adaptation and QA best practices are built in to the teams’ committed schedules, ensuring top-quality output and proven processes. Agile Project Managers look at proactive, real-time delivery metrics and tools (such as Toad DevOps Toolkit) to have fewer costly end-of-project surprises, and the working product is delivered in weeks rather than months.
Today’s Application Project Management Life Cycle
Agile project management becomes the testing and implementing methodology for changes to your applications. The above illustration (from a Quest DevOps white paper) illustrates the Agile approach to project management. Changes are more of a continual flow from development thru Q/A and into production. Instead of the ‘big bang’ upgrade approach, Agile project management focuses on smaller and more consistent change management to the entire application. The big bang approach requires lots of coordination as this is usually a major upgrade to the application. When I’ve done these, we usually have spent the entire weekend doing the upgrade. Agile project management is more of a continual flow of changes and implementations, in smaller and more manageable segments, over a short time period…takes less time—say, a week or two.
Click here to learn more about Agile product management.
How does Toad DevOps Toolkit Fit In?
Toad DevOps Toolkit (TDT) supplies useful tools to supplement these ‘continuous integration’ environments. It includes features for better code quality by using Toad for Oracle’s PL/SQL unit testing and static code reviews. TDT also includes functionality to compare database schema and data differences and provide scripts to synchronize the two. It also includes script execution functionality to work with your continuous delivery process.
Moreover, Toad DevOps Toolkit is simple to install and use, and runs on a Windows machine. It integrates with Jenkins, Bamboo, Visual Studio’s Team Foundation Server (TFS) and most other continuous integration (CI) and continuous deployment (CD) tools, including Microsoft PowerShell.
Toad DevOps Toolkit Technical Requirements
Toad DevOps Toolkit works with Windows 64 bit environments (does not support Windows XP). You will need Toad for Oracle 32 bit or 64 bit. Oracle database 8.0.6 thru 12c. Supports cloud versions in Amazon EC2 or Oracle Database Clouse Service.
Current Toad DevOps Toolkit Tools
Toad DevOps Toolkit includes:
- PL/SQL code unit testing. This Toad feature ensures that each change actually gets tested to make sure applications do not break when put into production. This feature also works with your existing software version control to make sure no two people are making changes to the PL/SQL objects at the same time.
- Code reviews. This feature uses Toad Code Review, which utilizes three industry-standard metrics to make sure the code meets certain standards, does not contain errors, etc.
- Database compare, schema compare, and data compare and sync. This feature ensures that database changes to both the schema (tables, indexes, and such) are implemented exactly from test to Q/A to production in an error-free manner.
- Script execution is used to physically deploy these database changes throughout the release cycle.
Code Tester for Oracle (part of Toad for Oracle Developer Edition) is a PL/SQL testing solution. This feature allows you to make test units and store these in your Code Tester for Oracle Repository. Toad DevOps Toolkit has a feature that can then take these test units and include them in your continuous integration builds, allowing for PL/SQL units to be tested and then, if successful, implemented into production.
Here’s how to integrate unit testing into your build automation process using Toad DevOps Toolkit:
- Your team members create or make changes to their PL/SQL code using Toad for Oracle.
- In Toad for Oracle or Code Tester for Oracle, they write their unit tests for those objects, and then check both the PL/SQL code and the associated tests into their version control system (VCS).
- Your automated build process (such as Jenkins or Bamboo) checks for revised code in the VCS at configured intervals, and upon finding it, checks the code and unit tests out to a staging folder.
- Within the build automation process, you prepare a script (using PowerShell or Visual Basic) that invokes Toad DevOps Toolkit, runs the tests, and outputs the results within the build automation console, indicating test pass or failure.
Toad Code Analysis is an automated code review feature that ensures that the quality, reliability, and maintainability of code meets either the shop/site standards or the standards supplied by Code Analysis. Click here to check my blog on Code Analysis. Pass/fail status notifications based on predefined thresholds will indicate whether the code is ready to move forward in the application development cycle.
Here’s how to integrate a database compare into your build automation process using Toad DevOps Toolkit:
- Developers make their schema changes and check them into the version control system.
- As a part of the build automation process, prepare a script (using PowerShell or Visual Basic) that invokes Toad DevOps Toolkit to compare the source database environment with the target database environment. The script will generate a synchronization script, which checks whether any changes were made to the target database.
- If the comparison shows a discrepancy, a difference report is generated and posted to the build automation console.
- If the comparison shows the databases are identical, then schema changes within the build are potentially deployable to the target database. Toad DevOps Toolkit enables you to compare the data in individual tables or multiple tables and then generate a synchronization script and report for any differences noticed. The script can be run as part of the deployment process or saved to a file that can be checked in to the version control system.
Scripts can be run individually or all scripts in a directory can be run. You can also determine the type of output desired and various options for error handling. These are easily added to the PowerShell or Visual Basic scripts.
Click here to see the Toad DevOps Toolkit Technical Brief.
Toad DevOps Toolkit Example in Jenkins
The following code examples are from the Toad DevOps Toolkit marketing documentation. These illustrate how easy it is to include TDT features into your existing continuous integration workflows.
Jenkins Script Example
Toad code review as part of an automated build process in Jenkins.
Toad DevOps Toolkit in Bamboo
Toad PL/SQL development and schema deployment tasks in Bamboo
A compare and sync task illustrated in a Bamboo script.
Toad DevOps Code Review in Bamboo
Code review illustrated in Bamboo. The PL/SQL code review report from Bamboo can be in HTML, XML, or JSON format.
Toad DevOps Code Review in Microsoft PowerShell
Toad DevOps Code Review sample in PowerShell.
Toad DevOps Toolkit is a set of Toad functionality available in a Windows application for continuous flow application management environments. These tools bring necessary and useful code testing, code review, schema change management, and script execution based on successful technology available in Toad today.
I hope you can use these quality Toad tools in your full cycle application life cycle.