30.06.2013 Views

SQL Server Team-based Development - Red Gate Software

SQL Server Team-based Development - Red Gate Software

SQL Server Team-based Development - Red Gate Software

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Continuous integration server<br />

Chapter 3: Change Management and Source Control<br />

When there are a lot of dependencies between teams or applications, it might be a good<br />

idea to check those dependencies a lot more frequently, maybe even constantly. This<br />

is the purpose of a continuous integration (CI) server. With a CI server, you'll want to<br />

automate a build <strong>based</strong>, either on code being checked into source control, or on a regular,<br />

but frequent schedule. The key word to associate with a CI server is "automation." You<br />

need to set up automatic deployment and automatic testing, so that you can validate<br />

the build and deployment without involving a single human being. This provides a solid<br />

early warning system for integration issues. The CI process is discussed in more detail in<br />

Chapter 4.<br />

Security shouldn't be a problem on a CI server, because no one from a development team<br />

should be allowed access to it.<br />

Quality Assurance<br />

Quality Assurance (QA) is a standard practice whereby, as each new build is deployed, the<br />

general quality of the code is repeatedly validated through a combination of automated<br />

and manual testing. The QA process usually includes verifying that the code meets the<br />

documented business requirements and Service Level Agreements (SLAs). Deployments<br />

to a QA server are either done on an ad hoc basis, as milestones within the code are met,<br />

or on a scheduled basis, so that QA is constantly checking the status of the code.<br />

Deployments are <strong>based</strong> on a known version of the code, and can take the form of<br />

differential (incremental) builds, or full builds. In a differential build, only the code or<br />

structures that have changed are deployed; in a full build, all of the code, including the<br />

database, is completely replaced each time.<br />

The importance of repeatable tests in a QA environment suggests the need for realistic<br />

test data, as supplied by data generation tools such as the Data Generator in Visual Studio<br />

<strong>Team</strong> System Database Edition, or <strong>SQL</strong> Data Generator from <strong>Red</strong> <strong>Gate</strong>.<br />

67

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!