다음을 통해 공유


데이터베이스 단위 테스트 개요

업데이트: 2007년 11월

데이터베이스 단위 테스트를 사용하여 데이터베이스의 기본 상태를 설정한 다음 데이터베이스 개체에 대한 후속 변경 내용을 확인할 수 있습니다. 첫 번째 단계는 특정 데이터베이스 개체를 연습하고 데이터베이스 개체가 제대로 작동하는지 확인하는 T-SQL 테스트 집합을 작성하는 것입니다. 그런 다음 기본 스키마를 변경할 때 이러한 테스트를 사용하여 변경 내용으로 인해 기존 기능이 손상되지 않았는지 확인합니다. 데이터베이스 디자인 변경 내용의 성공 또는 실패를 평가하는 단위 테스트를 작성하여 이러한 변경 내용이 오류 없이 예상대로 적용되는지 확인할 수 있습니다. 데이터베이스 단위 테스트는 소프트웨어 개발자가 만든 소프트웨어 단위 테스트를 보완합니다. 응용 프로그램에 대한 변경 내용을 전체적으로 관리하려면 두 단위 테스트 집합이 모두 필요합니다.

단위 테스트를 작성하려면 먼저 프로덕션 데이터베이스와는 별도로 격리된 데이터베이스 개발 환경을 만들어야 합니다. Visual Studio Team System Database Edition을 사용하여 다음과 같은 기본 단계를 수행합니다.

  1. 데이터베이스 프로젝트를 만듭니다.

  2. 프로덕션 데이터베이스에서 해당 프로젝트로 스키마를 가져옵니다.

  3. 데이터베이스 프로젝트를 배포하여 프로덕션 데이터베이스와 같은 스키마를 사용하는 데이터베이스를 만듭니다.

  4. 테스트 데이터로 해당 데이터베이스를 채웁니다.

격리된 데이터베이스 개발 환경을 설정하고 데이터로 채운 다음 해당 환경의 데이터베이스 개체를 평가하는 단위 테스트 작성을 시작할 수 있습니다. 데이터베이스 개체가 테스트된 경우 이러한 단위 테스트를 사용하여 데이터베이스 변경 내용으로 인한 기능 재발을 검색할 수 있습니다. 격리된 개발 환경에서 이러한 변경 내용을 테스트하면 프로덕션 데이터베이스가 손상되지 않습니다. 변경 내용을 완전히 테스트한 후 다른 팀 멤버의 변경 내용이 포함된 큰 테스트 환경에 단위 테스트를 다시 배포할 수 있으며, 여기서 추가 데이터베이스 변경 내용으로 인한 재발을 빠르게 식별하고 수정할 수 있습니다.

수동 배포 프로세스의 일부로 단위 테스트를 실행할 수도 있습니다. 이 경우 레이블이 지정된 소스 집합에서 빌드 스크립트를 생성하고 필요에 따라 빌드 스크립트를 편집합니다. 데이터베이스를 스테이징 서버로 배포한 다음 데이터베이스 및 소프트웨어 단위 테스트를 실행하여 데이터베이스 및 전체 응용 프로그램 상태를 확인합니다. 모든 테스트에 성공한 후 데이터베이스를 다시 프로덕션 환경으로 배포할 수 있습니다. 자세한 내용은 데이터베이스 변경 내용 관리를 참조하십시오.

데이터베이스 단위 테스트 만들기

데이터베이스 개체에 대한 변경 내용을 평가하는 데이터베이스 단위 테스트를 만들 수 있습니다. 하지만 Database Edition에는 데이터베이스 함수, 트리거 및 저장 프로시저에 대한 추가 지원이 포함되어 있습니다. 이러한 개체에 대한 테스트를 만들면 사용자가 사용자 지정할 수 있도록 데이터베이스 개체를 테스트하는 T-SQL 코드 스텁이 자동으로 생성됩니다. 자세한 내용은 방법: 함수, 트리거 및 저장 프로시저의 데이터베이스 단위 테스트 만들기방법: 빈 데이터베이스 단위 테스트 만들기를 참조하십시오.

참고:

데이터베이스 프로젝트를 열지 않고도 데이터베이스 단위 테스트를 만들고 실행할 수 있습니다. 하지만 테스트할 개체에서 T-SQL 스크립트를 생성하려면 해당 개체가 포함된 데이터베이스 프로젝트가 열려 있어야 합니다.

단위 테스트 디자인

Visual Studio Team System Test Edition에 빌드된 다른 테스트 형식과 마찬가지로 데이터베이스 단위 테스트도 Visual Studio에 통합되어 있습니다. 데이터베이스 단위 테스트 디자이너를 사용하여 데이터베이스 스크립트를 실행하는 T-SQL(Transact-SQL) 테스트 스크립트를 정의한 다음 스크립트 작업 성공 여부를 나타내는 테스트 조건에 대해 이러한 스크립트의 결과를 평가할 수 있습니다.

데이터베이스 단위 테스트 디자이너에는 다음 기능이 있습니다.

기능

용도

탐색 모음 - 테스트 이름 목록 상자

이름을 기준으로 테스트 프로젝트에서 개별 단위 테스트를 선택하거나 일반 스크립트를 선택하여 동일한 테스트 클래스의 각 단위 테스트 이전 또는 이후에 실행되는 스크립트를 개발합니다.

탐색 모음 - 테스트 목록 상자

테스트 전, 테스트 또는 테스트 후 옵션을 선택하여 단위 테스트 중 여러 시점에서 평가되는 T-SQL 스크립트 및 테스트 조건을 작성합니다. 테스트 전 스크립트를 사용하여 개발 데이터베이스 내에서 특정 상태를 설정할 수 있습니다. 또한 테스트 후 스크립트를 사용하여 테스트가 실행된 후 데이터베이스를 시작 상태로 되돌리거나, 필요한 사용 권한에 따라 테스트 성공을 평가할 수 있습니다.

T-SQL 편집기

이 편집기에서는 단위 테스트에서 사용되는 테스트 전, 테스트 및 테스트 후 T-SQL 스크립트를 작성합니다. 테스트 조건을 사용하는 대신 T-SQL RAISERROR 명령을 사용하여 테스트 스크립트에 T-SQL 어설션 문을 작성할 수도 있습니다. 테스트 조건과 마찬가지로 이 명령을 사용하여 심각도 값에 따라 테스트 성공 여부를 나타낼 수 있습니다. 자세한 내용은 데이터베이스 단위 테스트에서 T-SQL 어설션 사용을 참조하십시오.

테스트 조건 창

이 창의 테스트 조건을 사용하여 T-SQL 스크립트 실행 결과를 평가합니다.

테스트 조건 사용

테스트 조건 창은 결과 집합에 반환된 행 수, T-SQL 스크립트를 실행하는 데 필요한 시간, 결과 집합이 비어 있는지 여부 등을 테스트하는 미리 정의된 테스트 조건 집합을 제공합니다. 미리 정의된 각 테스트 조건에는 기본 TestCondition 클래스에서 정의되고 테스트 조건을 평가할 때 호출되는 하나의 Assert 메서드가 있습니다. 원하는 결과에 대해 실행 결과를 평가할 때 테스트 조건이 실패하면 조건에서 예외를 Throw하고 테스트 결과 창에 실패 결과가 반환됩니다. 테스트 조건은 예외를 Throw하지 않는 것으로 테스트에 성공했음을 나타냅니다.

테스트를 실행하는 경우 먼저 T-SQL 스크립트가 실행되고 결과를 반환합니다. 일반적으로 이것이 결과 집합입니다. 테스트 조건 구현에 따라 반환된 정보 중에서 성공에 대해 평가되는 부분이 결정됩니다. 예를 들어 실행 시간 테스트 조건은 T-SQL 스크립트를 실행하는 데 필요한 시간을 평가하고 스칼라 값 테스트 조건은 특정 행의 값을 평가합니다. 이 평가 결과에 따라 테스트 결과 창에 성공 또는 실패 표시기가 나타납니다. 성공/실패 표시기는 테스트 스크립트에 대한 모든 테스트 조건의 성공적인 평가에 따라 달라집니다. 하나의 조건에서 예외를 Throw하면 전체 테스트가 실패합니다.

미리 정의된 6개의 테스트 조건이 있지만 테스트 조건을 확장할 수 있으므로 필요에 따라 테스트 조건 목록에 다른 조건을 추가할 수 있습니다. T-SQL 스크립트 내에 T-SQL RAISERROR 함수를 사용하여 성공 또는 실패 결과를 생성하고 테스트 결과 창에 표시할 수도 있습니다. 자세한 내용은 데이터베이스 단위 테스트에서 T-SQL 어설션 사용을를 참조하십시오.

참고:

Visual Studio Test Edition에서 생성한 단위 테스트 및 Database Edition에서 생성한 데이터베이스 단위 테스트에는 결과 불충분 테스트 조건이 자동으로 추가됩니다. 이 테스트 조건이 평가되는 경우 테스트가 "결과 불충분"으로 표시됩니다. 결과 불충분 테스트 조건은 InconclusiveException을 throw합니다. 기본적으로 이 테스트 조건은 사용자에게 다른 어설션이나 테스트 조건을 추가하라는 메시지를 표시하기 위해 모든 테스트에 포함되어 있습니다. 테스트 조건 창에서 선택하고 테스트 조건 삭제 아이콘을 클릭하면 쉽게 이 테스트 조건을 제거할 수 있습니다.

미리 정의된 테스트 조건의 전체 목록은 데이터베이스 단위 테스트에서 테스트 조건 사용을 참조하십시오.

테스트 시간이 초과되거나 중단된 경우에도 테스트가 실패할 수 있습니다. 테스트 결과 창에 표시될 수 있는 결과에 대한 자세한 내용은 기본 테스트 결과를 참조하십시오.

단위 테스트 및 테스트 데이터

Team Edition for Database Professionals의 데이터 생성 기능을 사용하여 데이터베이스 환경에 테스트 데이터를 추가할 수 있습니다. 이 기능에는 특정 시드 값이 지정된 경우 동일한 데이터를 생성하는 데이터 생성기 그룹이 포함됩니다. 이 기능을 사용하여 데이터를 생성하고 생성된 데이터베이스를 검사하여 다양한 테스트에서 생성되는 결과를 확인한 다음 적절하게 테스트를 작성할 수 있습니다. 단위 테스트와 함께 데이터 생성을 사용하는 방법에 대한 자세한 내용은 연습: 데이터베이스 단위 테스트 생성 및 실행을 참조하십시오. 여러 데이터 생성기에 대한 자세한 내용은 데이터 생성 개요를 참조하십시오.

명령줄에서 테스트

IDE 내에서 또는 테스트 실행을 자동화하려는 경우 명령 프롬프트에서 데이터베이스 단위 테스트를 실행할 수 있습니다. 자세한 내용은 명령줄 테스트 실행을 참조하십시오.

참고 항목

작업

방법: 데이터베이스 단위 테스트에 테스트 조건 추가

개념

Transact-SQL 편집기 개요

Database Edition의 용어 개요