The tools usage in Agile projects must supplement people interaction but should not replace it. In Agile software development projects, there are many tools that are being used in various situations. Few examples of tools are: Developers use tools like SONAR for static analysis and code coverage, JUnit for code coverage. Developers also use configuration management tools like SVN, where they can check in source code, unit tests. The configuration management tool will compile and build the code with test frameworks.
Examples of few tools that are commonly used with build automation are:
- Subversion etc
These common toolset and build scripts allows for customization when needed, giving their customers flexibility to configure the tools to their individual needs. They support centralized controls and reporting, decentralized execution (Identity-based security). They can be easily deployed on the existing infrastructure where possible.
The automated builds also include several functional tests at the integration and system levels. Sometimes functional test run separately from the unit test. The unit test may run more frequently than the functional tests. For example, an automated build is triggered when every time a new software code is checked in, while functional test need not run so frequently.
The goal of automated tests may also be to check the build function and its stabilization. Any build failure immediately warrants an action from the developers and testers. This can quickly help other developers not to get delayed due to build failure.
There are 3 kinds of builds, namely Fast builds, Full build, and Push-To-QA build.
- Fast build is triggered when it detects the source code changes, and it also detects complication, unit testing or packaging errors. It also performs the static code analysis and provides a web based build report on the code coverage. This build can be customized as per the team
- Full Build is scheduled usually twice a day, it is same as fast build, and it deploys into DEV server
- Push-To-QA build is scheduled On-demand and it deploy the latest DEV build to QA
There are frequent changes to software/application in Agile development, effective use of build tools and automated testing helps in managing and minimizing risks related to regression issues.