A software development practice where code changes from multiple developers are merged into a shared repository frequently, and automated tests are run to catch errors early in the development cycle.