Agile teams work in short and frequent small releases, and even more frequent integration and building. Developers run Unit Tests and perform Private System Builds , and Smoke Tests before committing changes from their Private Workspace to the Active Development Line . Integration Builds must pass Regression Tests and may be rebuilt from scratch (to ensure build reproducibility ) before being required to pass functional acceptance tests. XP preaches continuous integration, in which changes are integrated many times a day or even several times each hour . Since the changes are very small and comprise the smallest possible set of consistent files for a testable chunk of functionality, the time to integrate and incrementally rebuild the system is very small. Non-XP agile teams tend to build and integrate every day or two, often running a daily or nightly build that checks for build failures and immediately reports the results. If a build breaks, fixing the build becomes development's top priority. Since all developers are typically required to do a Private System Build of their changes before check-in and ensure the code passes their unit and regression tests, broken builds tend to be infrequent due to such disciplined testing on such small sets of changes. |