My team is working on an App that will eventually be on the App Exchange. Our normal SDLC is that our developers use git to retrieve code into their dev environment. We have a QA environment where their code is integrated using ant.
This QA environment is where we do our testing for each User Story. Deployment is quick with ant/jenkins.
However, once we get our code into our Packaging org and perform testing (every couple weeks or so), we encounter some issues that did not surface in our QA environment mentioned above. We'd prefer to catch any issue much sooner.
Therefore, we are trying to figure out the best way to set up a 'QA' environment that is Managed such that we find these issues sooner. What I've currently come up with is:
- Move code to Packaging Org
- Create new Beta Version from the Packaging Org
- Uninstall prior Beta Version from Test Org (this requires removing profile assignments from users, Delete records that have used Record Types, and a few other things.
- Install new Beta Version in Test Org. This requires several manual steps such as setting up profiles, custom settings, loading data for testing.
The steps above are quite cumbersome. We may try automating as much as possible. Ideally, I'd love to have a Test Org, where we can just keep installing our new builds. Problem is, we don't want to increase our Version Number.
What is your experience and best practice of testing managed packages as I've described?