In this cutting edge world of technology, many organizations around the globe have opted for Continuous Integration (CI) process because of the benefits it provides. CI is effective only when perform properly. Without consistent monitoring of CI, no effective outcomes can be achieved.
With Continuous Integration, frequent integration is being done by developers and codes are committed often in a day. Every new code is merged with the existing codes and tested automatically, therefore automated testing plays an important role in the whole process of CI because allowing CI automated testing reveals many problems during CI process and fix the issue immediately. just check this out http://tetranoodle.com/things-to-remember-while-performing-ci-testing/
Here I have covered some best practices that you might need to run smooth and effective CI testing:
INTEGRATED TESTING: THE FIRST MOVE
An integration test exhibits that distinctive bits of the system are working together. Integration tests cover entire applications therefore it requires more exertion. The purpose behind running integrated testing first is that it detects and resolves big issues earlier. It basically uses system dependent values that change dynamically and test multiple things over the span of one test case.
UNIT TESTING: THE NEXT MOVE
Unit tests must not be mixed with the integrated test, testing business rationales goes under unit tests that are speedier and pursue every change activated. It tests a small bit of code. Running this test very frequently can successfully lead to bug-free code. On the other hand, integrated testing is slower and run only for the purpose of error-free integration of all the builds so far on daily basis.
Need additional tools
Do not need any additional tool
Commit code on every single build
Not committed frequently
Simple to write because of distinct bits
Complex, need tools to write
KEEP THEM SEPARATE
Both integrated and unit test are completely different with entirely different purpose so developers must keep then separate from each other while running CI testing to avoid any sort of conflict in Continuous Integration process. Failure in unit test means there is a bug in the business logic while in case of integrated test, you do not need to look into the business logic but some changes might have made in the environment.
A unit test has a particular scope and tests a little bit of your application, so when it falls flat, the reason is usually quiet easy to understand and fix the issue. Coordination tests are very unique. Their degree may pass through a various software modules. Therefore, if an integrated test falls flat, it might be more complex and unpredictable to recognize the cause.
DON'T STOP AT INTEGRATION TESTING
Testing does not end with how your software modules function with each other, or even how they work with other, outsider modules. It is something beyond. The continuous deployment of you software will be performed complete system that might include some virtualization tools, databases, mail servers, stack balancers, DNS servers, intermediary servers, and more. Your clients' encounter depends on your application environment, as well as on how it is deployed in your production environment and how it functions with each one of those other fringe parts. These are the parts that you ought to target, so once you have validated or in process of validating your high-level architecture with integration testing, make sure you also run system tests that accurately simulate your production environment.