Enterprises are at a technology crossroad. The business need to transform towards a digital model in order to better serve (and compete for) the next generation of customers has witnessed the rise of coding, or for most Independent Software Vendors (ISVs), the re-coding of a software product. This process of rewriting code by leveraging new technologies with modern infrastructure, user interfaces, and integrations is Platform Modernization.
There is a drastic increase in expectations from the next generation of customers, who demand the delivery of new capabilities and features faster.
Why is Test Automation core to this transformation? There is a drastic increase in expectations from the next generation of customers, who demand the delivery of new capabilities and features faster, along with higher expectations of reliability. The goal of delivering software meeting end-user expectations with a high level of confidence requires testing to be done sooner, consistently and with shorter feedback loops within the delivery lifecycle, all of which requires the adoption of automation testing. As business-critical features/functions are supplemented with automation checks, testers can focus on true value-added activities sooner, to ensure that the software is ultimately delivered with higher confidence.
In order to provide the maximum benefit to the team with automation, any platform modernization project should be approached in phases, and include activities that can be grouped into the following categories and performed iteratively: Planning, Transitioning, Operating.
• Planning should include iterative activities that will allow the testers to understand the user stories and intended feature/functionality expected to be delivered, so validations criteria and dependent tasks can be identified.
• Transitioning should include the ramping-up and completion of dependent tasks (such as building of custom tools, test data, environments, scripts, etc) that will enable the proper validation of the implemented features.
• Finally, Operating should include the execution of tests/observation of behavior of the implemented features. Please note that while these appear to be ‘sequential’, these phases are done iteratively (and in short durations), which fit well within any agile team.
Grouping automation activities into these phases will ensure testers are proactively identifying different tasks that need to be conducted, establish pre-requisite dependencies (and priorities) associated with those tasks, and iteratively delivering (with demonstrated progress). The primary outcome of these phases can be a gauge to measure the maturity of the testing activities (including automation) being done by the testers within the team.
When identifying the different test types that must be applied within teams working on Platform Modernization, I would recommend leveraging the following Quality Criteria Categories and Test techniques from James Bach’s Test Strategy Model that typically fits most projects:
When applying the above mentioned quality criteria and test techniques, always leverage automation tools that can supplement your testing at the API, Database & UI levels (in that order) – this will ensure that testers can integrate into the build & deployment process applied by the developers in the team (regardless whether the team is traditionally setup applying just Agile practices or leveraging tools tied to DevOps) very quickly, and provide feedback in an extremely short feedback loop. Testers should always look at validating component/feature/application performance & security along with leveraging monitoring tools that can re-use their business critical workflow scenarios, and not just be content with validating functional scenarios.
Finally, ensuring that testers are leveraging visual discussion techniques, such as mind maps, when reviewing their test strategy and feature validation criteria with developers and business owners, will foster effective collaborations and risk discussions – bringing ultimate success to the team delivering the modernized application!