Before we delve into the various categories of testing, it's important to understand the context of testing within the build process. A solid testing strategy is an integral part of your development process. Microsoft's philosophy, which is deeply entrenched in all its product groups and consulting organizations that develop large mission-critical solutions, is that the build process is the heartbeat of a project. Without a steady heartbeat, you don't know the health of your project. For all you know, it could be dead. The build process is run on a daily schedule, typically starting between midnight and 2 A.M., and consists of the following steps:
The source code is synchronized from the source code repository.
The source is compiled.
The binaries are packaged ready for deployment, be it scripts or MSIs.
The solution or product is deployed to a test rig.
A series of build verification tests (BVTs) is run. (These are, of course, automated tests.)
The results of the build (including results from the compilation, static code analysis, and a comprehensive set of test results) are published to all members of the team.
Typically, the process will have completed by around 6 A.M., in time for the first members of the team to start work on the new day's build (assuming that the daily build is good). If the build is bad, the team must fix it as soon as possible. If you are using an agile methodology, your build process will be initiated for every check-in to the source ...