With the introducing of the software development practices that emphasize on a fast time-boxed delivery process, a lot of new challenges emerged in the areas of Quality Assurance. In many organizations, testing is being executed on composite applications via the user interface, once all pieces of the product have been developed and deployed on a testing environment. Although this approach allows identification of discrepancies in the end-to-end scenario as the user will execute it, it also introduces a lot of risks for the productions deployment as defects are found in the latest possible stage, when they are expensive to fix. Other than earlier defect identification, incorporating the testing into the development process gives a lot of other benefits for the development, testing and operation teams that allow better risk mitigation, thus ensuring shorter time to market.
Transforming the testing process is not at all an easy task especially in big organizations developing large and highly complex products. It is the mindset change (including Product Owners, Software Developers, QA professionals, System Engineers, etc.), but also some purely technical challenges such as dependency management and testability, as well as involving the test engineers earlier in the development process. Besides the actual implementation of new testing strategy, which is a journey itself, such a change would require a lot of preconditions to be met. Some of those could get to the extreme, for example, changes in the software architecture to a loosely coupled model in order to untie dependencies. Of course, those would take some time and the results of the shift left testing approach should appear immediately. How to manage it and prioritize? How to get tangible results of testing earlier? What are the right and wrong steps and brings us to success in this journey?
I will share my professional experience as a Test Manager in a large-scale project that is going through a major transformation in order to enable the shift left testing approach.