Digital transformation must happen faster than anticipated. These days, there is more dependency on applications to perform, with more customers consuming services concurrently and teams working remotely. Customer experience, communication and security are major factors in businesses’ ability to provide quality products to their customers.
As mentioned above, this rushed digital transformation brought on by the current world situation has caused many changes that require urgent attention.
One of the biggest barriers for organizations’ to be able to ensure the quality their users expect is to have reliable and adequate test environments.
Test environments consist of three components:
Quality assurance processes are severely impaired when any of these three elements is defective.
To execute adequate QA practices, the environments used require:
Manual setup
Test environments are usually set up manually. This means needing to wait for someone to provision, set up the infrastructure, install needed software or apply the right solution versioning, and configure the environment.
This is a considerable bottleneck that also creates several issues. Most of them stem from the dependence of human interaction and manual execution of the tasks needed.
The first limitation is speed, as the manual processes are bound by human bandwidth limits. The second is the proneness to human error, as often steps are forgotten or erred. And third, not to mention the difficulties this approach poses for repeatability.
Even as some organizations tend to move environments to the cloud, they still work on them as if they were an on a prem solution. In other words, static environments.
This counters most of the extended benefits of having your solutions on cloud environments. Since those static environments still pose the above-mentioned difficulties and error prone tasks that limit any added benefit.
The other solution is to try to implement some automation processes to the environment creation. Without an organized framework and a solution that eases this automation process, the task can become quite complex.
Done ad-hoc, this task will require specialized knowledge, advanced coding skills, maintenance tasks that are hard to sustain, and the list goes on.And for all practices, the decommission tasks for the environments need to be clean and easy as well in order to be sustainable.
As well as environment management, multiple organizations are following obsolete QA practices that provide impaired results. These practices urgently require to be modernized to fulfil project needs leveraging as well as modern technologies and practices.
Some of these obsolete practices focus on manual executions, excessive amounts of front-end automations, intense focus on execution/defect counts, almost no attention to unit and service test automations, limited test environments that have considerable conflicts to be shared by different QA efforts, and the list goes on.
Most of these obsolete practices decrease the productivity of the QA areas and their capacity to produce meaningful results. In addition, these practices become unmanageable when the project is being managed under any agile methodology. The time and effort required is unmaintainable sprint by sprint and even a hardening sprint will prove to be insufficient.
QA needs to be tackled in a different way, a modern way that requires a different mindset, available environments, tests integrated on the solution and many more.
All the mentioned practices and limitations above are considerably affecting the productivity and capacities of multiple organizations, worsened by the current pandemic situation around the world.
Organizations nowadays need more than ever to catch up on these best practices and environment capabilities. This will boost their productivity and fortitude towards change during these difficult times.
Modern QA practices and available automated on demand environments are key elements for a successful digital transformation and even digital survival.
Some of those modern QA practices that should be implemented are:
These best practices rely heavily on quick and efficient environment availability with fidelity of their replication patterns.
There are multiple requirements as well for these environments:
Traditionally, to go through the whole cycle that has been described, the step flow consists of three phases.
Each one of these phases tends to be long, complicated, and painful.
The process to achieve this status and best practices is:
1. Set up (only once!). To get started, you need access to the infrastructure, which is the basis of infrastructure automation, whether on-premise on in the public cloud. This is not always trivial – if you do not own the infrastructure you need to get the owner involved or get ownership.
2. Environment blueprint creation. Developing the automation plan for setting up an environment. The more repeatable the blueprint is, the better value is achieved from the automation It is possible to significantly increase reusability
3. Test environments on demand. Leveraging the blueprints, you will be able to instantiate any environment you need. Being from production, the latest version of dev or any intermediate state that you might need to use.
4. Execute tests. With modern QA practices, your environments will be instantiated with QA automations integrated that can start executions immediately. Even manual or production test
5. Fix-pass criteria. As the tests are executed, the pass and fail validations are automatically processed, even from manual executions, these can be typed and added as input for automated pass-fail processes.
6.Blueprint update. If the testing processes detect that any changes need to be done to the tested environment, the fixes are applied, and the respective blueprint gets updated with any relevant fix. In an advanced state, the blueprint is kept together with the code. It needs to be changed when the environment architecture changes, but by following best practices this would not happen very frequently – since the blueprint should not hold hard coded information or artifacts.
7.Decommission. The environment is automatically decommissioned. Erasing and turning off any component used, stopping there any further resource waste of any kind.
To be able to tackle modern QA best practices and optimize their quality processes, organizations must evolve in multiple manners. They must let go of obsolete QA practices and optimize their efforts. But to complement those modern practices it is useful to be able to make them on demand, quickly, parallel with other QA processes if needed – all done in a fast paced and automated flow of steps.