2013-10-22 3 views
4

Microsoft Test Manager 2012를 사용하여 자동 및 수동 테스트를 만들고 실행합니다. 필자는 SQL Server에서 실행해야하는 테스트와 Oracle에서 실행해야하는 테스트를 위해 2 가지 구성을 정의했습니다.자동화 된 테스트 및 다중 구성

테스트 케이스를 만들 때 MSTM은 자동으로 SQL Server와 Oracle 용의 두 가지 테스트를 만듭니다. 그들은 똑같은 신분증을 가지고 있습니다. 여태까지는 그런대로 잘됐다. 그것은 일어날 일입니다.

하지만 두 가지 테스트를 자동화하고 싶습니다. 코드를 만들어 테스트 케이스와 연관 시키면 두 테스트 모두 자동화 된 코드를 얻습니다. 테스트 1을 SQL에서 실행하고 테스트 2를 Oracle에서 실행하고 동일한 테스트 코드를 공유하기 때문에 좋지 않습니다.

내 테스트에 논리를 적용해야 데이터베이스를 실행할 수 있음을 알 수 있습니까? 이를 방지하기위한 더 나은 접근법이 있습니까?

+0

자동화 된 테스트를 실행하는 데있어 다른 환경이 있습니까? 하나는 SQLServer 용이고 다른 하나는 Oracle 용입니까? 두 가지 모두에 동일한 테스트 코드를 사용하고 싶습니까? (다른 DB 연결을 사용하는 것만 큼)? ("테스트 1과 테스트 2가 동일한 코드를 공유하고있다"는 말의 의미가 확실하지 않습니다.)이 테스트가 동일한 것은 무엇입니까? – Elena

+0

또 다른 질문은 어떻게 자동 테스트를 시작할까요? DefaultLabTemplate11 빌드 정의 템플릿을 사용하거나 tcm.exe를 호출하는 명령 줄 (배치 스크립트)에서? – Elena

+0

@ 엘레나 내 테스트를 실행하기위한 환경이 하나뿐입니다. 다른 DB 연결과 다른 기술을 사용하여 두 가지 모두에 동일한 테스트 코드를 사용하고 싶습니다. DefaultLabTemplate11을 사용하고 있지만 변경할 수 있습니다. –

답변

1

옵션 1
, SQLServer에 대한 하나의 오라클에 대한 한 후이 Test2를에 의해 Test1을 두 번째에 의해 최초의 자동화 다른 테스트 케이스를 작성합니다. 따라서 빌드 정의를 사용하여이 두 가지를 모두 실행할 수 있습니다.이 정의는 DefaultLabTemplate11을 사용합니다.

제안 된 접근 방식을 사용하면 테스트 코드는 실행할 데이터베이스를 인식하기 위해 추가 논리를 구현할 필요가 없습니다.

당신은 당신이 수동 및 자동화 된 테스트를 위해 테스트 케이스를 사용하고자했다, 그래서 나는 당신이 오늘 가지고있는 테스트 케이스 수동 테스트를 실행하는 방법을 설명하는 여러 테스트 단계로 구성되어 가정합니다. 이 경우
당신이 테스트 케이스 기존 복제 및 는 테스트 단계를 공유 사용하지만 당신은 여전히 ​​당신이 추가 할 때 모두 테스트 케이스를 업데이트해야합니다 수/일부 테스트 단계를 제거 ...이 유일한 것 제안 된 접근 방식의 단점. 위해

는, "수동 데이터베이스 테스트"테스트 케이스을 만들 당신이 이미 그것을 가지고 수동 테스트 만 사용이 개 구성을 할당 할 수 이러한 단점을 제거합니다. 이 테스트 케이스은 테스터에 대해 테스트 스텝을 모두 포함합니다.
그런 다음 두 개의 테스트 케이스를 만듭니다. 위에서 설명한대로 자동화하고 자동화 된 테스트에만 사용합니다.

옵션 2
테스트 환경은 두 테스트 케이스 만드는 피할 수있는 가상 머신의 경우 :

  1. 스토어 테스트 환경에있는 파일에 연결 문자열을 시험 읽기를 할 수는 이 파일.
  2. 두 개의 스냅 샷을 만듭니다. 첫 번째는 SQLServer 연결 문자열을 포함하고 두 번째 스냅은 Oracle 연결 문자열을 포함합니다.
  3. 두 개의 빌드 정의가 첫 번째 스냅 샷으로 환경을 되돌리고 두 번째 스냅 샷이 두 번째 스냅 샷으로 되 돌리는 빌드 정의를 만듭니다. 당신이 당신의 단일 테스트 케이스을 유지하지만, 빌드 정의가 테스트를 배포하고 실행하기 전에 소스 코드를 작성하도록되어있는 경우 손재주가 될 수있는 두 개의 빌드 정의를 갖는 반면에 수

이 방법.

음 ... 세 번째 옵션은 테스트에서 실행중인 데이터베이스를 인식하기 위해 추가 로직을 구현하는 것입니다.
구성이이고 빌드 정의 당 하나만 선택할 수 있으므로이 경우에는 두 개의 빌드 정의를 만들어야합니다.

(나는 그것을 잘 설명 할 수 있었으면 좋겠다. 어떤 것을 물어 보는 것을 망설이지 말고, 아직 명확하지 않다.)