Subscribe
  • Home
  • /
  • Software
  • /
  • Service virtualisation, continuous testing: setting the foundation for DevOps enabling continuous delivery

Service virtualisation, continuous testing: setting the foundation for DevOps enabling continuous delivery


Johannesburg, 30 Sep 2016

Commoditisation of software development has been a CIO's dream for many years. Many major enterprises are investing heavily in pursuit of this dream. Emerging trends in software development, such as DevOps, continuous delivery and agile models, aim at running software development as a factory that produces quality applications quickly, with less defects and at lower costs.

DevOps provides a set of principles and practices that enable development and operations teams to communicate and collaborate more effectively. High-performance teams that embrace DevOps have been demonstrating they can deliver quality systems with amazing speed and agility.

Many DevOps teams focus on scripting the application build, package and deployment process, resulting in an automated framework, known as the "deployment pipeline". Deployment automation enables the organisation to enjoy the benefits of continuous integration and continuous delivery, significantly enhancing productivity and agility.

Improving any process inevitably involves an apparent trade-off between speed and quality. Understanding opportunities for acceleration is key for process improvement. But speeding up the process without understanding the impact to quality opens up a distinct risk. In the same vein, organisations that are looking to accelerate their software delivery cycle need to ensure the DevOps initiative is balanced with achieving the organisation's definition of quality.

Software organisations are learning that quality assurance is a continuous process and must be utilised throughout the entire software development life cycle. Robust testing practices enable the organisation to meet the challenging demands of today's fast-paced technology-driven world. The good news is that there are methodologies and tools available today that can empower you and your team to implement effective testing strategies that meet the demands of even the most complex IT systems by embracing DevOps.

When an organisation is looking at "continuous everything", continuous testing becomes a critical component in the overall process, and service virtualisation enables continuous testing by providing anytime, anywhere access to a complete simulated test environment.

The diagram below outlines the relationship between the emerging trends in software development.

Why continuous testing?

Delivering large-scale application systems can be a challenging endeavour. The pressures of meeting time-to-market demands and testing more complex systems make it increasingly difficult to deliver reliable systems in a timely manner, and almost impossible to commoditise the software development process.

Until recently, testing has been slow to catch up with other agile methodologies. A strong motivator to meet the demands of today's business environment is to commence with testing from the very beginning of the software and systems development process. This approach should include testing requirements and designing systems that can be tested through automated procedures.

This is the justification for continuous testing, which, until now, has been the missing link in achieving continuous delivery. Continuous testing provides no compromise on the speed of testing activities. You can automate your testing and integrate it into the build process as early as possible. A continuous testing platform runs in the background, while automatically executing the tests and ensuring that issues are identified almost immediately, thus reducing the time-to-release and closing the circle to ensure a successful continuous delivery process.

There is, however, another challenge in the continuous delivery paradigm; with the convergent trends of agile/parallel development and increasing system complexity/interdependency, it has become extremely rare for a team to have ubiquitous access to all of the dependent applications required to execute the type of complete end-to-end tests outlined above. This is where the importance of service virtualisation is realised; by leveraging service virtualisation to remove these constraints, an organisation can gain full control over the test environment, enabling continuous testing to occur as early and often as needed.

Service virtualisation enables rapid iterative development by providing simulated test environments that can help scale continuous testing. The goal of service virtualisation is to simulate interfaces and resources that may not always be available for testing due to cost or other real world constraints. This emerging industry best practice promises to provide a much more robust and comprehensive approach to ensuring we can continuously deliver defect-free code.

So, do you want to start testing the component you just built, even though not much else is completed, or you don't have 24/7 access to all the dependencies involved in your testing efforts - with all the configurations you need to feel confident that your test results are truly predictive of real-world behavior? Are you tired of delaying performance testing because access to a realistic environment is too limited (or too expensive)? Service virtualisation can remove all these constraints.

In4Group is a level 1 B-BBEE technology-driven organisation offering service virtualisation and continuous testing services to client. It leverages industry-leading toolsets, with a view to assisting the internal IT teams to commoditise the software development process and move towards to a continuous delivery model. It can push quality code at the right cost, at the right time. Feel free to contact In4Group on info@in4group.com or +27 (10) 045 0320 for more information and assistance in your continuous delivery initiatives.

Share

Editorial contacts

Deepak
In4Group
deepak@in4group.com