2012-07-23 2 views
2

안녕 자동화/아이폰 OS 전문가. 이제 우리는이 작업을위한 매우 기본적인 틀을 가지고 있습니다. 이 프레임 워크는 Apple에서 제공하는 JS 기능 (Java에서 일부 디버깅 기능 제공)을 캡슐화하고 Junit이 테스트를 수행합니다. 이 테스트는 iPhone Simulator에서 실행됩니다.아이폰 앱 UI 자동화 테스트 디자인

그래서 배경은 Instruments + Eclipse + Java + Junit + iPhone 시뮬레이터입니다.

테스트를 작성하면서 테스트가 응용 프로그램의 "상태"에 크게 영향을 받는다는 것을 알았습니다. 예 : 처음 실행하면 앱에 "이용 약관"페이지가 표시되지만 iPhone 시뮬레이터가 재설정 될 때까지 다시 표시되지 않습니다. 사용자가 "이용 약관"을 수락하면 그녀는 "홈"페이지로 이동하여 검색 기준을 입력하고 "검색"을 누르고 결과 페이지를 검색 할 수 있습니다. 그런 다음 "세부 정보보기"페이지로 이동할 수 있습니다.

TOU -> 홈 -> 검색 결과 -> 세부 정보보기.

이것은 실제 앱의 단순화 된 버전 일뿐입니다.

여기에 질문입니다. 보기 세부 기능을 자동으로 테스트하려면 이전 테스트를 거쳐야합니까? (상태가 저장되지 않아도 항상 새로 시작되는 것으로 가정) 내 테스트에서 내 앱이 '검색 결과'에 있다고 가정 할 때 일부 세부 조건 (예 : '세부 정보보기'테스트)을 가정해야합니까?

이유를 말씀해주십시오. 그리고 내 영어가 모국어가 아니기 때문에 이해하기가 어렵다면 미안합니다.

감사합니다.

빈스

답변

0

"사전 조건"/ "알려진 기준"/ "알려진 상태"자동화를위한 황금이다. UI 테스트에는 테스트가 수행 한 것과 관련이없는 문제에 대해 테스트 실패를 유발할 수있는 변형이 더 많으므로 더욱 그렇습니다.

자동화 관점에서 직접 '세부 정보보기'테스트로 이동하십시오. 자동 테스트 스크립트의 대부분은 이러한 유형의 기능 영역에 있습니다. TOU 등은 한 번 재설정/설치됩니다. 그래서 두 가지 옵션 :

  1. 먼저 ... 또는 등, 검색, 홈페이지를 다루는 다른 모든 시험 다음에 TOU 종료를 취소하는 자동화 된 스크립트를 실행
  2. 취소 TOU 수동으로 , 다른 모든 테스트가 이어졌다.
  3. 보너스 옵션 : TOU 이 재설정 당 1 회 이상 번 표시되지 않는지 테스트 할 수도 있습니다. 그것은 항상 매번 실행되는 첫 번째 및 두 번째 테스트 일 수 있습니다. 그런 다음 나머지 테스트를 실행하십시오.

자동으로 TOU가 나타나면 첫 번째 테스트 후 다음 재설정/테스트주기까지 TOU가 나타나지 않으므로 다른 테스트가 실패합니다. 조건부로 TOU 페이지를 관리하기 위해 모든 자동화 된 테스트의 시작 부분에 '처리기'를 넣을 수 있습니다. 이 상황에서는 위의 옵션 # 1을 사용합니다.

+0

답장을 보내 주셔서 감사합니다. 이미 TOU를 지우는 스크립트가 있습니다.그리고 모든 테스트에 'TOU 처리기'를 추가하는 것은 내게 적합하지 않습니다. 테스트가 자체 기능에 초점을 맞추어야하기 때문입니다. 옵션 # 1의 경우, '세부 사항보기'테스트가 결국 너무 많은 의존성을 가질 수 있다고 우려하고 있습니다. – vince

+0

동의 함, TOU 핸들러를 추가하면 테스트 포커스에서 멀리 이동합니다. 하지만 '세부 사항보기'에 너무 많은 의존성이있을 것이라는 점에 우려를 표하는 경우 해당 테스트와 다른 테스트에서는 이와 같은 핸들러가 필요할 것입니다. 그렇다면 종속성에 대해 걱정할 필요가 없습니다. 공통의'manage_dependencies' 핸들러를 콜렉션으로 생성하여 모든 테스트에 적용 할 수 있습니다. 또는 실행 순서를 제어하지만 여전히 '종속성 체인'을 제공합니다. – aneroid