데이터베이스 중심 서비스를위한 자동화 된 단위 테스트 스위트를 고려하십시오. 많은 소규모 부품은 데이터베이스 연결없이 단위 테스트가 가능하지만 실제 데이터베이스 스냅 샷 (또는 스냅 샷)을 플러그인하고 더 큰 통합 시나리오를 실행할 수있는 것도 유용합니다. 따라서 일부 주요 테스트에는 테스트 코드 자체와 별도로 사전 실행 및 사후 실행 데이터 스냅 샷의 형태가 포함됩니다.데이터베이스 중심 테스트 스위트 유지 보수
서비스가 빠르게 발전하고 데이터베이스 스키마도 발전합니다. 이는 테스트 데이터를 끊임없이 무효화하고 결함이있는 동작을 업데이트 된 스냅 샷에 넣지 않고 개발자가 테스트 스위트를 최신 상태로 유지하는 것이 어려워집니다.
일반적으로 이전 (테스트 데이터베이스) 스키마에 대해 새로운 버전의 서비스를 실행할 수 없습니다. 이는 초기화 (테스트 입력) 및 순전히 점검 (예 : 예상 테스트 출력)을 위해 사용되는 데이터베이스 스냅 샷의 두 가지 레이어를 가짐으로써 해결할 수 있습니다. 초기화 스키마/데이터는 응용 프로그램과 함께 자동으로 업그레이드 될 수 있지만 예상되는 출력 데이터는 아닙니다.
나는 몇 번이나이 글을 읽었지만, 사람들의 경험, 기술 및 방법론, 특히 자바, .NET 및 순수 데이터베이스 환경의 맥락에서 주제에 대한 더 많은 정보를 얻을 수있는 링크를 제공해 주시면 감사하겠습니다. .
이 질문은 내가 그것에서 배울 것을 모르기 때문에 의도적으로 다소 광범위하지만, 여기 또한 좁은 버전 :
을 만드는 어떤 널리 사용되는 Java 또는 .NET 프레임 워크가 있습니까 개발자가 동작 (데이터) 차이와 스키마 차이를 쉽게 알 수 있고 기존 테스트 데이터를 새 스키마로 반자동으로 쉽게 업데이트 할 수 있습니까?
1. 흥미로운 특별한 경우에 귀하의 접근 방식을 좋아합니다. 서비스가 데이터베이스의 유일한 소유자 인 경우 매우 매력적입니다. 다른 경우, 데이터베이스는 테스트 스위트가 다루고 자하는 서비스 또는 서비스 그룹 이외의 다른 에이전트에 의해 생성되고 부분적으로 채워집니다. 기술이 너무 이질적 일 때, 다른 모듈의 모의 구조 또는 다른 객체에 의해 생성 된 테스트 데이터가 어떻게 든 유지되어야합니다. 2. 이것은 일반적으로 사실이지만, 다른 사람들과 기술이 다를 수있는 테스트 스위트를 사람들이 쉽게 업데이트 할 수있게하려면 어떻게해야합니까? –
TeamCity 또는 Bamboo와 같은 테스트 통합 도구를 사용합니까?이 경우 사람들은 테스트가 잘못되었다는 알림을받습니다 (예 : 변경 사항의 작성자). 그리고 그것은 책임이 있거나 테스트 (또는 코드)를 고칠 수있는 사람에게 매우 빠르게 에스컬레이션 될 수 있습니다. –
우리는 사전 커밋 (pre-commit) 및 사후 커밋 (post-commit) TeamCity와 유사한 홈 메이드 프레임 워크를 사용합니다. 필자가 가지고있는 문제는 테스트 스위트를 잘못 업그레이드하는 것이 너무 쉽다는 것입니다 (차이점의 대부분이 예상과 같이 정확할 때 whoe 실제 결과를 옳게 선언하려는 유혹입니다). 이는 하나의 변경으로 수백 가지 테스트 케이스가 무효화되고 각 사례 및 변경된 데이터 행이 모두 수동으로 검사되지 않는 경우에만 문제가됩니다. –