How to setup an Industrious drupal QA system
You are developing drupal sites but a lot of effort is going down the drain in deploying and manual testing. A lot of regression is creeping in your applications. Maintenance costs grow when projects gets older. Nobody exactly knows how the project is really doing. How to resolve this?
You need to start monitoring and testing your applications. Every time somebody introduces a change into an application this application can become unstable without you knowing it.
A Quality Assurance system is the hart of your development. Building QA into the process itself is the only way you can assure quality in the long run. The process consists of:
- A version control system
- Staging of code and configuration on dedicated environments. (dev-staging-live)
- Continuous integration
- Automatic testing
- Training of the developers
- Structured project management
Version control is indispensible to be able to work in team on code. You need this to have a history record of all changes. You need to be able to compare changes of other people. You must have this or you can not garanty not overriding other peoples work.
We recommend Git as version control system. It is used on drupal.org and it is for now the most flexible tool for having version control.
Staging of code and configuration on dedicated environments is essential because the application must be able to evolve once in production. Developers must be able to introduce changes and test these changes without affecting the live application.
We strongly believe that a qa system needs to apply the continuous integration principle. This means that on each deploy tests must be executed. This is the only way you can garanty that the application keeps working.
Continuous And Automatic Deployment
A qa system should deploy automaticaly to reduce errors and to reduce time waisted with manual deployment. A tool like jenkins can help us to achieve this level automation for deploying our drupal site.
A department that has been automated will be able to deliver applications faster. This way they can concentrate on the details and the features that make good applications great.
Automatic testing reduces the uncertainty and the regression when introducing changes. By executing a batch of tests on the application on each change, errors are detected soon and can be fixed fast. This reduces the bugfixing process. Automatic tests reduces bugs going to production undiscovered.
Automatic tests save hours and hours of manual testing. Can you imagine click every link, button, submitting each form in a large application?
Automatic tests are an investment but once inplace the mean a huge return on investment.
This system must be used by developers. So developers need to be trained to use this system. Check our training program to see how we think about training drupal developers.
Structured Project Management
Of course structured project management is mandatory. Working agile is probably the most suited way of working. Actually if you want to work truely agile you need a quality assurance system or you will not be able to garanty if your work, accept by your clients wont regress.