👨🏻💻 QA이야기
QA 직군의 대 혼란 🌀 나는 대체 뭘 하는 사람인가?
QA 직군의 대 혼란 🌀 나는 대체 뭘 하는 사람인가?
2020.04.05🤪 전 세계적으로 대 혼란의 QA QA란 Quality Assurance의 약자이다. 한국에서는 이를 품질 보증 이라고 얘기하는데, 이 말부터 틀렸다고 생각한다. '품질'은 'Product Quality'이다. Quality Assurance는 제품 자체만의 질을 확인하는 일이 아니기 때문에, 나는 Quality를 '품질'이라고 칭하는걸 굉장히 싫어한다. 그냥 '퀄리티'라고 칭하고 싶다. 한국에서 많이들 QA를 단순한 테스터로 받아들이는 경향이 있는 이유의 시작이 여기서 오는것이 아닐까 생각된다. Quality Assurance는 어떤 제품이든 매우 중요하며 빠질수 없는 과정이다. 유독 QA 쪽에 수많은, 그리고 말도 안 되는 직군들이 있으며, 이걸 좀 정리를 해야 어떤 포지션이 어떤 일을 하는지 확실하..
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() // 시스템 알림창이 뜰 경우를 대비해 핸들링 코드를 셋업에 입력해..
💫 애자일에서 항상 잊어버리는 것
💫 애자일에서 항상 잊어버리는 것
2020.04.04💫 애자일 Agile methodology (애자일 방법론) 은 소프트웨어 개발 주기 동안 개발과 테스트의 지속적인 반복을 추구하며, 워터폴과는 다르게 개발과 테스트가 동시에 수행되는 방법론이다. 애자일의 핵심은 다음과 같다: 공정/프로세스 및 도구보다는 🧑🤝🧑 개인 및 팀원 간의 상호작용 잘 정리된 서류/문서보다는 ⚙️ 실제로 작동하는 소프트웨어 회사의 계약 관계/협상보다는 🤝 유저와의 관계 계획에 발이 묶이기보다는 ♻️ 변화에 맞춰 대응 애자일은 소프트웨어 설계에 대한 점진적이고 반복적인 접근 방식을 제안해준다. 워터폴 모델과 비교했을 때 구조화되어있지 않다. 애자일 방법론 중 하나로, Scrum (스크럼) 을 가장 많이 쓴다. Sprint라는 주기를 이용하여 다음과 같은 주기를 반복한다: Bac..
🥒 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 클라이언트가 가장 사용량이 많고, 그만큼 서포트가 빠르며 안정된 클라이언트이기 때문..