TL;DR
Continuous integration (CI) is last element that successfully kills your UI regression testing. In this post I will explain how CI system should fit in software development process.
There is always lively debate what should be automated in software development process. Pipeline elements of continuous integration should definitely be automated.
What are elements of pipeline continuous integration? Every command of operating system that you run as software tester is that element. And software tester usually run several of those commands in a pipeline as their daily task. Those os commands should be put in a script, and that script should become running element of your continuous integration tool (e.g. Jenkins).
Script can be Dockerfile or bash shell script. It depends on the technology that you use. The goal is to have one click button in your CI tool that will do following:
- get the latest code from git branch (e.g. integration)
- run development framework tests. Whole suite must run in less than 10 minutes. Otherwise, these are not development framework tests
- deploy the application
- run database migration and fixture files (hopefully, your development framework offers those features out of the box. Otherwise, find appropriate tool.)
Whole process must be done in less that 10 minutes.
Now you are ready to do you regression test strategy that includes:
- observing changed files from last deploy using git pull requests and commits
- investigating development framework test results, including test coverage report (be sure to know what that coverage means)
- decide which end to end tests should be executed.
That concludes How to kill UI regression testing series. You will probably say, but I can not implement that in my project. That is ok, but now you know where should your project streamline in order to have better quality.
You have measure points for your project that can you use when you are asked:
- Why we missed that critical bug?
- How can we improve quality of our project?
On the other side, you can use this information in your interview for testing position or you can get information about the quality of a project that you are starting with.