2014-09-29 3 views
0

응용 프로그램에 대한 자동화 된 테스트를 작성 중이며 현재 약 150 개의 테스트 사례가 있습니다. 모든 것이 잘 실행되지만 테스트가 계속 커질수록 테스트 케이스를 구성하는 방법을 파악하는 문제가 계속 발생합니다.자동 테스트 구성에 대한 우수 사례?

일부 테스트는 이전 테스트에 의존합니다 (예 : 응용 프로그램을 열 때까지 로그인 할 수 없으며 로그인 할 때까지 작업을 수행 할 수 없습니다). 런타임에는 사용자가 실행할 테스트 케이스를 선택할 수있는 UI가 있으며,이 목록이 있으면 정렬하기가 까다로워집니다.

모든 시간이 매번 실행되지는 않을 것이기 때문에 테스트 케이스에 미리 정의 된 순서를 지정하는 것이 가치가 없을 것이라고 생각합니다. 새 테스트를 추가 할 때마다이 목록을 업데이트해야합니다.

자동 테스트 또는 일반적으로 테스트 한 경험이있는 사람이라면 누구에게 권장 사항이 있습니까?

참고 : 각 테스트에 정수 플래그를 추가하고 그런 식으로 순서를 지정하려고했지만 많은 문제가 발생했으며 중간에 발생한 새 테스트를 추가 할 때마다 일부 테스트를 이동해야했습니다. (150 개 이상의 테스트 케이스에 대한 통증).

편집 난 그냥, 서로에 의존하는 단지에 로그인하거나 응용 프로그램을 열 수 없습니다 시험에 대한 또 다른 예를 명확히하고자

. 이 소프트웨어의 경우 사용자는 응용 프로그램에서 데이터를 업로드 할 수 있습니다. 그런 다음이 데이터에 대한 보고서를 다운로드 할 수 있습니다. 분명히 사용자가 '다운로드'테스트 만 선택하면 할 수있는 일이 없습니다. 그러나 사용자가 '업로드'와 '다운로드'를 선택하면 업로드가 먼저 이루어 지도록해야합니다.

+2

테스트를 실행하려면 이전 테스트를 사용해서는 안됩니다. "오픈 앱"테스트를 실행하지 않고 "로그인"테스트를 실행하려면 어떻게해야합니까? 각 테스트에는 테스트가 자체적으로 실행되도록 모든 설정을하는 고유 한 설정이 있어야합니다. – artm

+0

정말 좋은 지적입니다. 로그인하고 응용 프로그램을 여는 등의 작업을 막아야합니다. 그러나 테스트를 서로 의존 할 수있는 다른 예제를 명확히하기 위해 질문을 편집했습니다. – AdamMc331

+0

다시 편집 한 후에 테스트는 독립적이어야합니다. 업로드를 테스트하려면 응용 프로그램이 파일을 서버에 성공적으로 업로드하는지 테스트합니다. 다운로드를 테스트하려면 먼저 테스트 설정에서 파일을 서버에 업로드 한 다음 서버에 업로드 된 파일을 다운로드 할 수 있는지 테스트하십시오. – artm

답변

3

테스트는 이전 테스트를 실행해서는 안됩니다. "오픈 앱"테스트를 실행하지 않고 "로그인"테스트를 실행하려면 어떻게해야합니까? 각 테스트에는 테스트가 자체적으로 실행되도록 모든 설정을하는 고유 한 설정이 있어야합니다. 업로드를 테스트하려면 응용 프로그램이 파일을 서버에 성공적으로 업로드하는지 테스트합니다. 다운로드를 테스트하려면 먼저 테스트 설정에서 파일을 서버에 업로드 한 다음 서버에 업로드 된 파일을 다운로드 할 수 있는지 테스트하십시오.

테스트는 그 전에 일어날 일에 신경 쓰지 않아야합니다. 그렇지 않으면 코드가 작동하지 않아 테스트가 실패 할 수 있지만 테스트가 작동하지 않기 때문에 테스트가 실패 할 수 있습니다. 그러면 코드가 실패하는 이유를 알아 내려고 노력하는 시간을 낭비하게됩니다. 실제로 실패한 테스트 일 것입니다. testsetup과 testclear를 살펴보면 모든 테스트가 실행에 필요한 모든 것을 설정하고 완료되면 모든 테스트가 끝난 후에 모든 테스트가 다른 테스트에서 제외됩니다.

+0

확실히이 모든 것을 리펙토링하려고합니다. 지금은 고통 스럽지만 확실히 앞으로 나아갈 것입니다. 나는 리팩터링을 많이 할 수도있다. 예를 들면 몇몇 테스트는 공유 된 셋업과 클리어를 가질 것이므로 재사용 성은 충분하다. 다시 한번 감사드립니다. – AdamMc331

+0

@ McAdam331 또한 TestFixtureSetup/TearDown 및 TestSetup/TearDown을 살펴보십시오. 하나는 모든 테스트가 클래스에서 실행되도록 환경을 설정하고, 다른 하나는 개별 테스트 케이스에 대해 환경을 설정합니다. 따라서 TestFixtureSetup에서 임시 폴더를 생성 할 수 있습니다. 각 테스트는 임시 폴더에 파일을 만들고 TearDown에서 파일을 삭제합니다. 마지막으로 TestFixture가 종료되면 temp 폴더가 삭제됩니다. 따라서 각 테스트에서 임시 폴더를 만들 필요가 없습니다. 테스트를 리펙토링 할 때 명심하십시오. – artm

+0

많은 테스트를 테스트 설정하는 동안 구성하는 데 도움이되는 또 하나의 일은 일반적인 단계가 있음을 알 수 있습니다. 이런 경우가 발생하면 테스트를 제외하고 이러한 작업을 수행 할 별도의 프로젝트를 만드는 것이 좋습니다. 테스트에서는 이러한 작업을 호출 할 것입니다. 예를 들어 artm이 다운로드 기능을 테스트하는 것에 관해서 말하면, 필자는 별도의 프로젝트에서 파일을 업로드하는 방법을 만들 것입니다. 이는 테스트의 전제 조건이기 때문에 다른 테스트에서는 확실히 재사용 할 것입니다. – andreadi