Software Project Survival Guide

Daily Build and Smoke Test Procedure*

  • Merge code changes. The developer compares his or her private copy of the source files with the master source files, checking for conflicts and inconsistencies between recent changes made by other developers and the new or revised code to be added. The developer then merges his or her code changes with the master source files. Merging is usually supported by automated source code control tools, which warns the developer of any inconsistencies.
  • Build and test a private build.The developer builds and tests a private release to be sure that the newly implemented feature still works as expected.
  • Execute the smoke test.The developer runs the current smoke test against the private build to be sure the new code won’t break the build.
  • Check in.The developer checks his or her private copies of the source code into the master source files. Some projects establish times during which new code can and can’t be added to the daily build; for example, new code must be added no later than 5:00 p.m. and no earlier than 7:00 am.
  • Generate the daily build.The build team (or build person) generates a complete build of the software from the master sources.
  • Run the smoke test.The build team runs the smoke test to evaluate whether the build is stable enough to be tested.
  • Fix any problems immediately!If the build team discovers any errors that prevent the build from being tested (that break the build), it notifies the developer who checked in the code that broke the build, and that developer fixes the problem immediately. Fixing the build is the project’s top priority.

* This process starts at the point the developer is ready to check in code at Step 10 in Table 14-1’s Recommended Integration Procedure. It assumes that the developer has checked out source code files that need to be changed and possibly created new files.