d2 open seminar - 개발자에 의한, 개발자를 위한 테스트

67
UI 테테테

Upload: naver-d2

Post on 15-Apr-2017

2.546 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: D2 OPEN SEMINAR - 개발자에 의한, 개발자를 위한 테스트

UI 테스트

Page 2: D2 OPEN SEMINAR - 개발자에 의한, 개발자를 위한 테스트

UI 테스트 = UI 테스트

Page 3: D2 OPEN SEMINAR - 개발자에 의한, 개발자를 위한 테스트

블랙박스 테스트

Page 4: D2 OPEN SEMINAR - 개발자에 의한, 개발자를 위한 테스트

= 앱의 로직에 접근하지 않음블랙박스 테스트

Page 5: D2 OPEN SEMINAR - 개발자에 의한, 개발자를 위한 테스트

커버리지 100%?

Page 6: D2 OPEN SEMINAR - 개발자에 의한, 개발자를 위한 테스트

UIAutomation

Page 7: D2 OPEN SEMINAR - 개발자에 의한, 개발자를 위한 테스트

UIAutomation인스트루먼츠

Page 8: D2 OPEN SEMINAR - 개발자에 의한, 개발자를 위한 테스트

UIAutomation인스트루먼츠자바스크립트

Page 9: D2 OPEN SEMINAR - 개발자에 의한, 개발자를 위한 테스트

엑스코드 7 에 통합

Page 10: D2 OPEN SEMINAR - 개발자에 의한, 개발자를 위한 테스트

AccessibilityXCTest

Page 11: D2 OPEN SEMINAR - 개발자에 의한, 개발자를 위한 테스트

XCTest

OCUnit

Page 12: D2 OPEN SEMINAR - 개발자에 의한, 개발자를 위한 테스트
Page 13: D2 OPEN SEMINAR - 개발자에 의한, 개발자를 위한 테스트
Page 14: D2 OPEN SEMINAR - 개발자에 의한, 개발자를 위한 테스트

요구사항iOS 9.0 이상

Page 15: D2 OPEN SEMINAR - 개발자에 의한, 개발자를 위한 테스트

설정

Page 16: D2 OPEN SEMINAR - 개발자에 의한, 개발자를 위한 테스트
Page 17: D2 OPEN SEMINAR - 개발자에 의한, 개발자를 위한 테스트
Page 18: D2 OPEN SEMINAR - 개발자에 의한, 개발자를 위한 테스트
Page 19: D2 OPEN SEMINAR - 개발자에 의한, 개발자를 위한 테스트

API

Page 20: D2 OPEN SEMINAR - 개발자에 의한, 개발자를 위한 테스트
Page 21: D2 OPEN SEMINAR - 개발자에 의한, 개발자를 위한 테스트

예제

Page 22: D2 OPEN SEMINAR - 개발자에 의한, 개발자를 위한 테스트
Page 23: D2 OPEN SEMINAR - 개발자에 의한, 개발자를 위한 테스트
Page 24: D2 OPEN SEMINAR - 개발자에 의한, 개발자를 위한 테스트
Page 25: D2 OPEN SEMINAR - 개발자에 의한, 개발자를 위한 테스트

XCUIApplication

Page 26: D2 OPEN SEMINAR - 개발자에 의한, 개발자를 위한 테스트

테스트 대상 애플리케이션

Page 27: D2 OPEN SEMINAR - 개발자에 의한, 개발자를 위한 테스트

별도의 프로세스로 실행테스트 대상 애플리케이션

Page 28: D2 OPEN SEMINAR - 개발자에 의한, 개발자를 위한 테스트

별도의 프로세스로 실행테스트 대상 애플리케이션

launch()

Page 29: D2 OPEN SEMINAR - 개발자에 의한, 개발자를 위한 테스트

별도의 프로세스로 실행테스트 대상 애플리케이션

launch()엘리먼트 탐색의 시작점

Page 30: D2 OPEN SEMINAR - 개발자에 의한, 개발자를 위한 테스트

XCUIElement

Page 31: D2 OPEN SEMINAR - 개발자에 의한, 개발자를 위한 테스트

타입엘리먼트 계층 구조

식별자

Page 32: D2 OPEN SEMINAR - 개발자에 의한, 개발자를 위한 테스트

엘리먼트는 유일해야 한다

Page 33: D2 OPEN SEMINAR - 개발자에 의한, 개발자를 위한 테스트

쿼리 실행 시점에 발생엘리먼트마다 쿼리 존재

exists 는 예외

Page 34: D2 OPEN SEMINAR - 개발자에 의한, 개발자를 위한 테스트

이벤트

Page 35: D2 OPEN SEMINAR - 개발자에 의한, 개발자를 위한 테스트

tap()사용자 인터랙션

swipeUp()

Page 36: D2 OPEN SEMINAR - 개발자에 의한, 개발자를 위한 테스트

XCUIElementQuery

Page 37: D2 OPEN SEMINAR - 개발자에 의한, 개발자를 위한 테스트

count다수 엘리먼트 매칭식별자 - [“foo”]

인덱스 - elementAtIndex()

Page 38: D2 OPEN SEMINAR - 개발자에 의한, 개발자를 위한 테스트

FilteringRelationships

Page 39: D2 OPEN SEMINAR - 개발자에 의한, 개발자를 위한 테스트

Relationships

Page 40: D2 OPEN SEMINAR - 개발자에 의한, 개발자를 위한 테스트

Descendants

Page 41: D2 OPEN SEMINAR - 개발자에 의한, 개발자를 위한 테스트

Children

Page 42: D2 OPEN SEMINAR - 개발자에 의한, 개발자를 위한 테스트

Containment

Page 43: D2 OPEN SEMINAR - 개발자에 의한, 개발자를 위한 테스트

Filtering

Page 44: D2 OPEN SEMINAR - 개발자에 의한, 개발자를 위한 테스트

식별자타입

Predicate

Page 45: D2 OPEN SEMINAR - 개발자에 의한, 개발자를 위한 테스트
Page 46: D2 OPEN SEMINAR - 개발자에 의한, 개발자를 위한 테스트
Page 47: D2 OPEN SEMINAR - 개발자에 의한, 개발자를 위한 테스트

app.tables.staticTexts쿼리 체인

Page 48: D2 OPEN SEMINAR - 개발자에 의한, 개발자를 위한 테스트

쿼리 실행

Page 49: D2 OPEN SEMINAR - 개발자에 의한, 개발자를 위한 테스트

엘리먼트 - 프로퍼티 접근 등실제 사용시점에 실행됨

쿼리 - 결과 접근 등

Page 50: D2 OPEN SEMINAR - 개발자에 의한, 개발자를 위한 테스트

URL 과 유사

Page 51: D2 OPEN SEMINAR - 개발자에 의한, 개발자를 위한 테스트
Page 52: D2 OPEN SEMINAR - 개발자에 의한, 개발자를 위한 테스트

assertion

Page 53: D2 OPEN SEMINAR - 개발자에 의한, 개발자를 위한 테스트

XCTAssert()XCTAssertTrue()XCTAssertFalse()XCTAssertEqual()

Page 54: D2 OPEN SEMINAR - 개발자에 의한, 개발자를 위한 테스트

자주 사용하는 패턴

Page 55: D2 OPEN SEMINAR - 개발자에 의한, 개발자를 위한 테스트

목록이 비어있는지 여부

Page 56: D2 OPEN SEMINAR - 개발자에 의한, 개발자를 위한 테스트
Page 57: D2 OPEN SEMINAR - 개발자에 의한, 개발자를 위한 테스트

테이블뷰 스크롤 여부

Page 58: D2 OPEN SEMINAR - 개발자에 의한, 개발자를 위한 테스트
Page 59: D2 OPEN SEMINAR - 개발자에 의한, 개발자를 위한 테스트

테스트 결과

Page 60: D2 OPEN SEMINAR - 개발자에 의한, 개발자를 위한 테스트
Page 61: D2 OPEN SEMINAR - 개발자에 의한, 개발자를 위한 테스트
Page 62: D2 OPEN SEMINAR - 개발자에 의한, 개발자를 위한 테스트

UI 레코딩

Page 63: D2 OPEN SEMINAR - 개발자에 의한, 개발자를 위한 테스트

언제 사용할것인가

Page 64: D2 OPEN SEMINAR - 개발자에 의한, 개발자를 위한 테스트

제한사항

Page 65: D2 OPEN SEMINAR - 개발자에 의한, 개발자를 위한 테스트

프레임 오류새로고침

타이머

Page 66: D2 OPEN SEMINAR - 개발자에 의한, 개발자를 위한 테스트

UI Testing in Xcode - WWDC 2015

참고 자료

Page 67: D2 OPEN SEMINAR - 개발자에 의한, 개발자를 위한 테스트

감사합니다