이 질문에 대한 완전한 답변은 매우 길 것입니다. 나는 요점을 언급하려고 노력할 것이다.
우려를 분리하기 위해 다음과 같은 테스트를 살펴볼 수 있습니다.
A-데이터베이스 디자인을 검증하십시오.
B-프로그램이 데이터베이스와 올바르게 상호 작용하는지 확인하십시오.
데이터베이스 설계 검증은 데이터베이스를 설계 한 사람이 수행해야합니다. 개발자 (단위 테스트 중)는 (B) 부분에 더 관심을 가져야합니다. 두 가지 유형의 테스트간에 가장 큰 차이점은 사용 된 도구입니다. (A)의 경우 프로젝트 코드와 독립적 인 환경을 사용하고 (B)의 경우 물론 프로젝트 코드를 사용합니다. 다음 본문에서는 두 가지를 혼합합니다.
특정 질문에 대답하려면 다음을 수행하십시오.
열 도메인 값 규칙
각 열에는 관련 데이터 형식이 있습니다. 각 열은 올바른 데이터 유형을 나타내는 비즈니스 규칙에 따라 유효성을 검증해야합니다. 열 데이터 형식이 비즈니스 요구 사항과 호환되지 않거나 코드가 데이터베이스에 정의 된 방식과 다른 데이터 형식을 사용하는 경우 문제가 발생할 수 있습니다.
예를 들면 다음과 같습니다.
열 기본값 규칙
일부 컬럼은 DDL (Data Def. Language)의 기본값 스펙과 연관되며, 삽입 중 삽입이 값을 제공하지 않으면 데이터베이스가 기본값을 가정합니다. 값을 전달하지 않고 데이터베이스가 저장 한 결과 값을 관찰하여 테스트 할 수 있습니다. 이 테스트에는 Nullable 열 검사가 포함될 수도 있습니다. 고유 인덱스가 컬럼에 빌드되지 않으면 DDL에서 확인할 수 있으므로 테스트가 거의 필요하지 않습니다.
가치 존재 규칙
이 내용을 이해하면 데이터베이스에 삽입 또는 업데이트 된 데이터가 예상대로 표시되는지 확인합니다.
행 값 규칙
나는 이것이 정확히 무엇을 의미하는지 명확하지 않습니다.
크기 규칙
각 열은 DDL에서 정의 된 방식에 따라 데이터베이스의 크기를 갖습니다. 요구 사항에 맞는 값 (GUI에서 입력하거나 계산 결과로 생성됨)이 열에 올바르게 저장되도록해야합니다. 예를 들어 Small Integer 데이터 형식을 사용하면 50 억의 값을 저장할 수 없습니다. 또한 VARCHAR2 (30)로 정의 된 이름에는 40자를 사용할 수 없으므로, 특히 열이 데이터 집계에 사용될 때 비즈니스 규칙이 매우 명확해야합니다. 그러한 상황에서 발생하는 상황을 테스트하려고합니다.
시작 방법 / 장소에 대한 지침
이를 수행하는 한 가지 방법은 테스트 계획을 세우는 것입니다. 요구 사항 문서 및 사용 사례와 같은 올바른 버전의 사양과 소프트웨어를 사용하고 싶습니다. 또한 단위 테스트 (있는 경우)에서 수행 한 테스트로 테스트 테스트를 조정해야합니다. 다시 수행 할 필요가없는 중복 테스트가있을 수 있습니다. 필요한 경우 특정 테스트를 반복 할 수 있도록 테스트하기 전에 데이터베이스 사본을 작성하려고합니다. DBA가 이에 도움이 될 수 있습니다. 또한이 테스트를 어떻게 문서화하고 테스트 범위를 검증하는지 팀과 확인해야합니다. 데이터베이스를 논리적 부분으로 나누고 각 논리적 부분의 테스트를 개별적으로 시작할 수 있습니다. 테스트 프로세스는 데이터베이스의 DDL을 연구하고 비즈니스에서 요구하는대로 컬럼이 올바르게 정의되었는지 검증하여 시작할 수 있습니다. 대부분의 테스트를 수행하기 위해 다른 도구가 아닌 응용 프로그램의 소프트웨어를 사용해야합니다. 예를 들어 다음과 같이 질문하십시오.
다음으로, 테스트 케이스를 설계하여 위의 테스트를 수행 할 수 있습니다. GUI를 사용하여 대부분의 테스트를 수행 할 수 있습니다.
언급하지 않은 다른 중요한 데이터베이스 테스트가 있습니다. 그들은 다음을 처리합니다.
1-기본 키가 비즈니스 관점에서 실제로 고유한지 테스트합니다.
2-PK 이외의 고유 인덱스가 비즈니스 관점에서 실제로 고유한지 테스트합니다.
3-외래 키 제약 조건 테스트가 작동합니다.
4-행이 삭제 될 때 발생하는 상황 및 관련 행에 미치는 영향 테스트
5-CHEKC, 트리거 (있는 경우)와 같은 특수 데이터베이스 구성에 관한 기타 테스트
6-올바른 테이블 정규화 및 정규화 된 열이 올바른 값을 보유합니다.
위의 전체 목록은 아니지만 시작해야합니다.