As previously discussed, I've spent quite a bit of time going over all the code to determine if it's really needed and how it fits into the rest of the product. As you can imagine this was quite a bit of work. Therefor, to make this process easier for the next time (each time any development is done) I have created a regression test tool.
this tool does three things:
- Run several different user activities - repeatedly, and ensures the app behaves as expected.
- Check the memory usage (looks for memory leaks, invalid references, etc...) against each test.
- Performs a code coverage analysis across all the tests.
Therefor by running this we will be able to prove that all activities use all the code and do not leave any leaks, while maintaining required functionality.
I know this has put back the release of the re-factored code-base, but I think this is essential going forward in producing a stable and robust product.