We left off with you in a confirmed correct edition in a sqlplus session. At this point you run your regular deploy scripts and re-compile any invalid objects. Now you are ready to test the new release.
Since you deployed to the non-default edition, all your live sessions are still running the same as before, you are the only session that sees the new code. In order to test, you want some other sessions to use this non-default edition. You will need to decide how you want to control this, but I will assume you will use cluster-ready services. To do that, create two new services, one for each edition and set the edition for each service with the -t option to srvctl. Then change the service name your app uses to connect to the one that uses the non-default edition. Then test as long as you wish, you are still in this isolated environment and your regular connections are still unaffected by all of your deploy and testing operations.
When you are finally ready to “go live”, simply change the default edition in the database. There are, of course, considerations outside the database, in upgrading other code and making sure it matches the code in the edition that you are connecting to. Give some thought to how the various parts work together when devising your deploy procedures.
Rollback is pretty obvious here, you simple switch the edition back and you are where you were before the deploy started. It doesn’t get much simpler than that!
