In this step, any team member can perform a self-service deployment. On most projects, certain people might be authorized to approve this stage – such as a tester or QA person. This self-service deployment will launch an environment and deploy the software into the environment. This environment is isolated from other members of the project so that the person verifying aspects of the system can perform data changes, SSH into instances and verify anything that needs verifying.
After you’ve performed your manual tests, you can go back to the production line and select the approve/reject job. If your manual tests failed, you’d select reject and if they passed, you select approve. If it’s rejected, it stops the line and doesn’t go to the next stage. If it’s approved, it automatically transitions to the next stage in the production line.
What usually occurs in the exploratory stage is someone will manually run tests to verify certain behavior in the application as I did. One of the benefits with this approach is that testing can be performed on the software close in proximity to when the change was made rather than batching the changes and testing – say – once a week, once a month or even less frequently. All of this means that feedback loops are increased and amplified and it provides a way of incorporating these types of manual verifications into a fully-automated process.