For many organizations, one of the biggest bottlenecks in automating the delivery pipeline is related to an inability to automate testing as part of the deployment process. And as teams may have forged ahead to automate the deployment of software change that value can be quickly diminished when things stall due to a lack of test labs being available or when an excessive number of tests are being run manually. That of course, is once all the software changes have been made available.
While I have been evangelizing the integration of deployment and test automation for a while, one of the key findings in the “State of the Software Testing Profession Results 2016-2017” survey results, recently published by Techwell, is that it is an automated world and testers get to live in it. Meaning, the role of the tester is becoming more technical, testing must transform to meet the needs of modern software projects, and there is increasing need for more automation.
So, as more and more test professionals are working to bring automate testing capabilities into their organization, isn’t the next logical step to include those automated tests as part of the automated deployment process.
Let’s take a step back and assume that you have heard “better, cheaper, faster” at least once and for many it may be far too often. However, integrating automated testing with deployment automation delivers positive results with respect to better cheaper faster. Automated tests can be run repeatedly and consistently freeing up resources to execute other types of testing (e.g. exploratory testing) expanding the level of testing. Automated tests should be part of an automated deployment process to help close the feedback loop as the sooner test execution results can be shared across the delivery team, the sooner any issues can be identified and triaged. The faster defects are discovered, the cheaper they are to fix. So, better, cheaper, faster is still a great way to describe, at a “motherhood and apple pie” level, the end goal for many businesses. Deliver better software, faster than the competition, at a lower cost to the business.
This is where IBM UrbanCode can help. The blueprint designer functionality, available in UrbanCode Blue Print Designer, allows teams to treat test lab infrastructure as code. By creating blueprints or patterns of what the test lab needs to contain, new environments can be provisioned (or decommissioned) on demand. Middleware can be installed and configured. Testing across multiple environments can be run in parallel. There are no more excuses!
Application deployment processes, modeled in UrbanCode Deploy, can be triggered as part of the provisioning process ensuring the latest components are available for testing. And automated tests can be executed as a step in the deployment process providing instantaneous feedback on the functionality, performance and/or security of the application.
However, in an IT world where software changes are being implemented by multiple delivery teams and at different development/release cadences, all the pieces needed for testing may not be available. Deploying virtual services or “stubs”, created in IBM Rational Test Workbench, to IBM Rational Test Virtualization Server can make the unavailable available for the purposes of testing. And through the UrbanCode Deploy plug-in, these stubs can be remotely turned on and off simulating the missing software or system allowing applications to be tested end to end.
IBM UrbanCode’s extensive plugin ecosystem, offering support for many different test automation solutions along with many other technologies, makes adding automated testing to be part of a continuous delivery process easy. Simply download the test automation plugin you need, add it your UrbanCode Deploy server installation, and the ability to include test automation in your deployment process is at your fingertips.
Using the UrbanCode plugin means that you don’t have to deal with the complexity of command line syntax. All you need to do to get started is drag a test automation step to the deployment model from the step palette in UrbanCode Deploy’s graphical process designer, type in your specific parameter values, wire in the step, click save, and let UrbanCode Deploy do the rest – better, cheaper, and faster.