👨🏻💻 QA이야기/📱 모바일자동화
Kotlin으로 ☕ Espresso UI 테스트 기반 잘 다지는 법 #2 - Matchers
Kotlin으로 ☕ Espresso UI 테스트 기반 잘 다지는 법 #2 - Matchers
2020.04.19🏤 나만의 관리소 만들기 Espresso에서 Matcher란 어플리케이션 내 element들의 패턴을 해석하여 원하는 작업을 수행하는 엔진이다. 이는 기본 Espresso 라이브러리에서 곧장 불러다가 사용이 가능하지만, 매번 패키지를 import 하고, 여러 가지 작업을 연달아 수행하다 보면 코드가 굉장히 지저분하고 길어질 수 있다. 베이스 Interface를 생성하여 이를 관리해주면, 테스트 코드가 보다 보기 쉽고 간편해지며, 관리 또한 수월해진다. BaseViewMatchers.kt interface BaseViewMatchers { fun onView(viewMatcher: Matcher): ViewInteraction = Espresso.onView(viewMatcher) fun onData(vi..
Kotlin으로 ☕ Espresso UI 테스트 기반 잘 다지는 법 #1 - 테스트 케이스
Kotlin으로 ☕ Espresso UI 테스트 기반 잘 다지는 법 #1 - 테스트 케이스
2020.04.12⚙️ 기본 설정 Espresso (에스프레소) 는 구글에서 제공하는 안드로이드 UI 테스트 라이브러리이다. 3.x 버전부터는 AndroidX Library에 통합되어 제공되고 있다. 기본적인 설정은 안드로이드 개발 코드 안에서 직접 환경설정할 수 있다. build.gradle android { defaultConfig { testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } } // https://developer.android.com/jetpack/androidx/releases/test def androidxTest = '1.2.0' def espresso = '3.2.0' dependencies { ... androidTestI..
Swift로 🍏 UI XCTest 기반 잘 다지는 법 #2 - Action
Swift로 🍏 UI XCTest 기반 잘 다지는 법 #2 - Action
2020.04.04💥 Extension 잘 사용하기 Swift의 extension을 잘 사용하면, 테스트 코드가 매우 깔끔해지고, 관리하기도 쉬워지며 새로운 테스트를 작성하기도 수월해진다. 기본적인 코드는 XCUIApplication().tabBars.buttons["Home"].tap() 이러한 방식이다. 매우 간단하지만, XCUIApplication().app()을 매번 불러야하며, Page Object 컨셉을 적용하면, 더욱 코드가 더러워진다. XCTest 라이브러리의 Action Extension을 만들어서 관리해주면, 매우 간편하게 코드를 만들수 있다: extension XCTest { struct UIApplication { static var app: XCUIApplication? } var app: XCUI..
Swift로 🍏 UI XCTest 기반 잘 다지는 법 #1 - 테스트 케이스
Swift로 🍏 UI XCTest 기반 잘 다지는 법 #1 - 테스트 케이스
2020.04.04❗ 처음 세우는 기둥이 중요하다 뭐든지 처음 기반을 잘 세워두면 이후가 안정적이고 편해진다. iOS/macOS 어플리케이션의 테스팅 프레임워크인 XCTest는 UI 테스팅도 가능하다. Xcode에서는 레코딩 툴도 갖춰져 있어, 자동으로 테스트 코드를 짜주는 기능도 있다. (물론 이 코드는 그리 안정적인 코드는 되지 못하지만 레퍼런스 정도로 사용하기에 좋다.) 🧱 첫 기둥이 되는 Base 테스트 케이스 XCTestCase 라이브러리를 사용하여 베이스를 잘 셋업 해놓으면, 추후 여러 테스트들을 관리하기가 수월해진다. class BaseTestCase: XCTestCase { override func setUp() { super.setUp() // 시스템 알림창이 뜰 경우를 대비해 핸들링 코드를 셋업에 입력해..
🥒 Cucumber 이해하고 잘 쓰는 방법
🥒 Cucumber 이해하고 잘 쓰는 방법
2020.04.03🥒 Cucumber Cucumber (큐컴버) 는 Behaviour-Driven Development (BDD) 지원용 툴이다. BDD는 소프트웨어 개발에서 비지니스와 테크니컬한 부분 사이의 문제를 줄이기 위해 시작되었다. 협옵을 통해 문제는 해결하고, 작은 주기의 빠른 흐름으로 피드백을 늘리는 동시에 문서화도 할수 있는 방식이다. 애자일 환경에서 많이 사용되며, 작지만 여러개의 User story들이 애자일 좋은 개발 환경을 구축하는데 도움을 준다. 보통은 Gherkin (절킨) 이라는 문법을 사용한다. 이는 Step Definition (스텝 데피니션) 시스템으로, '사람이 읽을 수 있는' 방식으로 적게된다. 명확한 실행 사양, Cucumber를 이용한 테스트 자동화 및 실제로 어떻게 동작하는지 문서..
🗳️ QA의 모바일 자동화를 위한 개발환경
🗳️ QA의 모바일 자동화를 위한 개발환경
2020.04.01🏁 시작하기 모바일 개발환경 및 테스트 환경은, iOS가 포함되지 않는 상황이 아니고선 macOS가 필수가 된다. 대부분의 개발 환경은 처음 셋업하고서는 크게 확인하거나 건드릴 일이 없지만, CI 환경을 구축할때 미리 정리해서 알아두면 좋다. 🍺 Homebrew macOS용 패키지 관리자이다. 홈브루를 설치해놓으면, 여러 어플리케이션을 command line에서 손쉽게 설치할 수 있다. /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" brew update && brew doctor 📦 Java & Node 왠만한 환경에서 많이 쓰이는 Java와 Node도 홈브루를 이용하여 ..
Appium + Kotlin = 🚀
Appium + Kotlin = 🚀
2020.03.31🗒️ 시작 Appium은 2012년 처음 오픈소스가 되었을 때부터 사용해왔다. 그동안 Appium만 사용해온 것은 아니다. 각 회사와 팀에 맞는 툴들이 있고, 그 옵션 중 하나일 뿐이다. 보통 Appium을 사용하게 되는 환경과 이유는 보통 다음과 같다. iOS와 Android 두 모바일 플랫폼에 대한 테스트 자동화 Selenium에 대한 지식 2019년 1월부터 회사에서 현재까지 진행하는 프로젝트 중 하나는 Appium을 사용하여 iOS와 Android 어플리케이션의 E2E 테스트 자동화 시스템을 처음부터 디자인하고 키우는 일을 하고 있다. Appium은 Selenium 베이스라 어떤 언어로도 사용 가능하지만, Java 클라이언트가 가장 사용량이 많고, 그만큼 서포트가 빠르며 안정된 클라이언트이기 때문..