From that perspective, the software testing process will start from the moment when the first line of code is created and submitted to the code repository, to ensure that success criteria and quality requirements will be met and will be compliant with the agreed Definition of Done. A continuous testing platform runs in the background, 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 or Deployment process.
The key benefits of this technique include:
- Helping extend agile and lean practices across the delivery lifecycle
- Enabling teams to test earlier and with greater coverage at lower cost
- Test scripts reusability on different environments
- Providing teams with continuous feedback on software quality to reduce business risk
- Committing working code frequently making roll-back easier in case of major new defects
Our test strategy is based on a proactive approach to build, maintain and regularly check the code quality throughout the entire software lifecycle. It builds on current best practices, aiming to extend and refine the project requirements as much as possible in the direction of test automation. Tests are automated and integrated into the build process as early as possible. For this purpose, we have developed our own Test Automation Framework (ISON).
ISON outlines the overall structure for automated test environments, defines common functions, standard tests, provides templates for test structure, and defines ground rules for how tests are named, documented and managed, leading to a maintainable and transferable test library. To customize this framework to a suitable solution, a clear test strategy is defined and a detailed implementation plan is developed for the necessary infrastructure setup to enable automation of deployments. Thereby Test Automation is one of the main enablers of Continuous Delivery, an industry-proven method for a safer and more frequent release cycle, leading to cost reduction and faster-time-to-market.
Moreover, we see testing as an integral part of Agile Software Development. Multi-functional Scrum teams always include Test Developers, who are involved in the development process from day 1. Thereby we bring the pain forward by involving them in backlog refinement sessions, enabling them to contribute to the discussion around the Definition of Done. Unlike Software Developers, Test Developers focus on less “happy” flows, which makes them best suited to identify potential risks. Since they are included in project from the beginning, our testers help out build better requirements and understanding of the system overall. By doing this they are preventing rather than detecting any potential issues and reducing overall cost.