Nowadays, most of the software development processes put more and more emphasis on the interaction of individuals with respect to the interaction between the customer and the developers and to the interaction between the development team. Prior the appearance of agile techniques, developers used to experience difficulties while integrating their solutions, especially in the late phase of the development cycle.
Continuous integration (CI) helps this interaction inside the team in such way that the integration is performed in a central, production-like environment and on a regular basis. So that the developers are notified of a build failure and usually this does not affect the whole team.
CI relies heavily on the automated build process, and utilizes automated tests well to detect test regression. However the tools of a CI server are not limited to these. Given a test suite, one can measure the code coverage respect to this, and the team can utilize the report of static analysis tools as well.
In my thesis, I examined several CI servers, for comparison I created a sample project. After experimenting with the servers, I configured a continuous integration job for a real project, namely the PetriDotNet2 project, which was currently being developed at the Department of Measurement and Information Systems.
Since continuous integration can be interpreted as a sort of regression testing (one would usually look for test regressions after a successful build), the field of regression test optimization relates to it, which is used in case of large test suites. One application of test optimization is to reduce test execution time. This can be achieved by either selecting the necessary test cases (test selection), or deleting the obsolete (test suite minimization). The other application of test optimization aims for minimizing the execution time for failures, which is done by prioritizing the test run. In my thesis, I also examined the availability of test tools referenced in research papers. I concluded that these tools are neither available, nor can be used in the studied CI servers. I further concluded that future work can target creating such tools.