Continuous Integration and Automation Testing

Continuous Integration and Automated Testing where modules taken up by different members of the Software Development Team

DESCRIPTION

Whenever we plan a software project, we divide it in many modules. Each module is then separately prepared and then later it is integrated with other modules to form one complete project.

jquery

However this process of disintegration and integration is not that simple as we might think it to be. Some projects are so long that they may take several months to get integrated. The process of integration becomes even more complex when after adding each component you have to test it for bugs and errors. Then what is the convenient path to do it?

The answer to this lies in Continuous Integration and Automated Testing where modules taken up by different members of the Software Development Team commit to integrating their modules several times a day. This is a faster process of System Integration and also every time integration is done, Automated Testing takes place, which reduces the work of developers to a great extent.

How can I integrate my Software on a daily basis?

I can follow these practices to ensure a smooth sail: –

  • Maintain a Single-Source Repository
    Software Projects need large number of files that need to be organized together to build a product. Over time software developers have come up with some wonderful tools like Source Code Management tools, Configuration Management, version control systems and repositories that have become an integral part of the System Development.
  • Automate the Build
    turning sources into a running system can be very hectic if not for Automation. Compilation, moving files around, loading schemas into databases are data monsters that can collapse my system. Automated environments have been in use since decades. Make software used by UNIX, Ant by the Java community, the .Net community has had Nant and now has MSBuild are some Automated systems.
  • Make your build self-testing
    modern statically typed languages are vulnerable to slipping out many bugs while running the test code manually. Therefore I should integrate the automated test in my build process. Extreme Programming (XP) and Test Driven Development (TDD) are two methods widely used in self-testing.
  • Everyone commits to the main-line everyday
    exchanging information about the progress of each of the modules is essential for tracking down the overall progress of the product. Members of SDFC (Software Development Life Cycle) must commit to sharing their developments on a regularly basis, this will help them resolve any conflicts with other developers. Besides, it will help them remove the compilation and textual conflicts.
  • Every commit (to the mainline) should be built
    the system should build commits to the current version to validate that they are integrated correctly. There are two methods to do it – one is by doing it manually and the other and most common method is Automated Continuous Integration.
  • Keep the build fast
  • Test in a clone of the Production Environment
    in Production Environment, service virtualization is commonly used to obtain on-demand access to dependencies that are beyond the team’s control.

CURRICULUM

Mauris justo felis, mollis sit amet purus eu, aliquam interdum ligula.+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque dignissim ante dignissim nulla sodales, ut pellentesque velit varius. Phasellus finibus nec felis eget lobortis. Proin luctus et quam at venenatis.
Quisque laoreet odio consectetur, efficitur ante sit amet+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque dignissim ante dignissim nulla sodales, ut pellentesque velit varius. Phasellus finibus nec felis eget lobortis. Proin luctus et quam at venenatis.
iPivot Training