
테스팅툴
Appium
Android, iOS, 하이브리드 등과 같은 플랫폼에서 테스트 자동화를 가능하게 해주는 제공하는 오픈 소스 모바일 자동화 프레임워크
StackOverflow 질문 수: 7851
Github Stars : ★ 19555
사용 기업

직방

버킷플레이스

라인

네이버

위대한상상

우아한형제들

드라마앤컴퍼니

카카오

쿠팡

비바리퍼블리카

무신사

야놀자

카카오페이

카카오뱅크

하이퍼커넥트

쏘카

옴니어스

카카오스타일
더 보기
SK텔레콤
에이닷 UI 테스트 자동화 이야기: 우리의 도전, 선택, 그리고 미래
에이닷은 모바일 앱의 품질을 효과적으로 관리하기 위해 UI 테스트 자동화 도입을 검토하게 되었습니다.이전 글에서는 XCTest를 이용한 iOS 앱 테스트와 Espresso를 이용한 Android 앱 테스트에 대해 다루었고,이번 글에서는 테스트 자동화 도구 선정 과정과 그 결과를 공유하고자 합니다.우리는 QA 프로세스의 효율성 향상을 위해 다양한 자동화 도구와 방법론을 검토했습니다.이 과정에서 현재 QA 방식의 한계점을 파악하고, 이를 개선하기 위한 여러 방안을 검토하며 실질적인 해결책을 찾고자 했습니다.이 글에서는 테스트 자동화 도입을 검토하면서 마주한 과제들과 이에 대한 해결 방안을 다룹니다.구체적으로는 내부 현황 조사, 외부 사례 연구, 자동화 전략 수립 과정, 그리고 파일럿 테스트 결과까지 실제 경험을 바탕으로 상세히 설명하겠습니다.이 글에서는 에이닷의 UI 테스트 자동화 도입 검토 내용을 다음과 같이 살펴보겠습니다.• None• None QA 프로세스 통합과 중간 점검 결과이 글과 관련된 기존 글도 함께 공유합니다.에이닷 UI 테스트 자동화이야기: Espresso를 이용한 Android 앱 테스트에이닷 UI 테스트 자동화이야기: XCTest를 이용한 iOS 앱 테스트에이닷 UI 테스트 자동화이야기: Appium을 이용한 모바일앱 테스트UI 테스트 자동화 도입을 검토하기 위해, 우리는 먼저 현재 상황을 파악하고 가능한 옵션들을 탐색했습니다.이 과정은 다음과 같이 진행되었습니다.• None 우리 회사 내에서 이미 사용 중인 QA 자동화 도구들을 면밀히 조사했습니다. 각 도구의 기능, 장단점, 그리고 우리 서비스에 적용 가능성을 평가했습니다.• None 회사의 다른 서비스에서 활용 중인 QA 자동화 도구들도 함께 검토했습니다. 이를 통해 다양한 도구의 실제 적용 사례와 효과를 파악할 수 있었습니다.• None 발견한 도구들을 우리의 서비스에 적용할 수 있는지 심층적으로 분석했습니다. 각 도구의 기능, 호환성, 확장성 등을 고려하여 종합적인 평가를 진행했습니다.• None 기존 도구들을 우리의 특수한 요구사항에 맞게 고도화하거나 개선할 수 있는지 검토했습니다. 이 과정에서 각 도구의 유연성과 커스터마이징 가능성을 심도 있게 평가했습니다.• None 다각도의 분석과 고민 끝에, 기존 도구들을 참고하되 우리의 고유한 요구사항을 충족시키기 위해 직접 테스트 자동화를 구현하는 것이 최선이라는 결론에 도달했습니다.• None QA 자동화의 대상을 선정하는 과정에서 UI 테스트와 서버 API 테스트 중 어떤 것이 더 효율적이고 효과적일지 깊이 고민했습니다.• None 최종적으로 UI 테스트를 선택했습니다. API 테스트만으로는 실제 사용자 경험을 완전히 검증하기 어렵다고 판단했기 때문입니다. UI 테스트를 통해 API 응답이 화면에 올바르게 표시되는지까지 포괄적으로 확인할 수 있어, 더 전체적인 품질 보증이 가능하다고 결론 내렸습니다.이러한 철저한 조사와 분석 과정을 거쳐, 우리는 자체적인 UI 테스트 자동화 솔루션을 개발하기로 결정했습니다.이는
appium
SK텔레콤
에이닷 UI 테스트 자동화이야기: Appium을 이용한 모바일앱 테스트
에이닷의 모바일 앱 품질 향상을 위해 UI 테스트 자동화를 도입하는 과정에서, 크로스 플랫폼 테스트 도구인 Appium의 가능성과 효용성을 검토하게 되었습니다.iOS와 Android 양쪽 모두를 효과적으로 테스트할 수 있는 방법을 찾던 중,Appium이 어떤 장점을 가지고 있는지, 어떤 범위의 테스트를 수행할 수 있을지 직접 경험하며 이 블로그 글을 작성하게 되었습니다.이 글에서는 모바일 앱 테스트 자동화의 중요성과 함께, Appium을 이용한 크로스 플랫폼 UI 테스트에 초점을 맞추어 다양한 테스트 기법과 노하우를 소개하고자 합니다.Appium의 기본 설정부터 시작하여, iOS와 Android 앱에 대한 테스트 스크립트 작성 방법, 그리고 다양한 UI 요소 검증 기법에 대해 살펴보겠습니다.또한, 네이티브 앱과 하이브리드 앱 테스트의 차이점, 디바이스 다양성 대응 전략,그리고 CI/CD 파이프라인 통합과 같은 실제 적용 시 고려사항에 대한 팁도 포함하여 보다 포괄적인 테스트 전략을 제시하고자 합니다.Appium을 이용한 UI 테스트 자동화 과정에서 얻은 경험과 인사이트를 공유하며, 실제 적용 시 마주칠 수 있는 상황들과 그에 대한 대응 방법을 소개하고자 합니다.또한, 테스트 스크립트 작성에 도움이 될 수 있는 코드 예제를 함께 제공하여 여러분께 실질적인 도움이 되는 정보를 전달하려고 합니다.이 블로그 글을 통해 Appium을 이용한 UI 테스트 자동화에 대한 기초적인 이해부터 실제 적용 시 고려해야 할 점들까지 폭넓게 다루어,크로스 플랫폼 모바일 앱 개발 과정에서의 테스트 전략 수립에 참고가 되기를 바랍니다.이 글과 관련된 기존 글도 함께 공유합니다.• None 에이닷 UI 테스트 자동화이야기: Espresso를 이용한 Android 앱 테스트• None 에이닷 UI 테스트 자동화이야기: XCTest를 이용한 iOS 앱 테스트에이닷 개발팀은 현재 UI 테스트 자동화 도입을 위해 다양한 솔루션을 검토하고 있습니다.이는 서비스 품질 향상과 개발 생산성 증대를 위한 노력의 일환입니다. 주요 목표는 다음과 같습니다:• None 개발 및 검증 과정에서 효과적으로 활용할 수 있는 UI 테스트 자동화 솔루션 선정• None 에이닷 서비스의 특성에 맞는 최적의 테스트 자동화 전략 수립• None 다양한 솔루션의 장단점을 비교 분석하여 최적의 선택 도출현재 시장에서 주목받고 있는 세 가지 주요 UI 테스트 자동화 솔루션에 대해 프로토타입 테스트를 진행하고 있습니다:• None Appium: 크로스 플랫폼 테스트가 가능한 오픈 소스 프레임워크각 솔루션 평가 시 중점적으로 고려하고 있는 요소들은 다음과 같습니다:• None CI/CD 파이프라인과의 통합 용이성• None 에이닷 앱의 특수한 요구사항 충족 여부궁극적으로, 이러한 검토 과정을 통해 우리는 다음을 목표로 합니다:• None 에이닷 서비스에 가장 적합한 UI 테스트 자동화 솔루션 선정이 문서가 UI 테스트 자동화를 고려하고 있는 다른 개발자들에게도 도움이 되기를 바랍니다.Appium은 모바일 애플
appium
여기어때컴퍼니
Robot framework와 QA팀 동행 : 시작과 도전(1)
Robot Framework와 QA팀 동행기: 시작과 도전(1)여러분의 테스트 자동화는 어떻게 시작하고 준비하셨나요?안녕하세요, 오늘은 저희 QA팀이 겪었던 테스트 자동화의 도전과 새로운 시작에 대해 이야기해보려고 합니다.혹시 여러분은 테스트 자동화에 도전하시나요? 아니면 이미 구축까지 완료를 했나요? 저희 여기어때 QA팀도 테스트 자동화에 대해 끊임없이 도전하고 있답니다. 그 동안 저희는 “TestProject”라는 도구를 사용하여 테스트 자동화를 구축해왔고, 여기어때 기술 블로그에도 소개가 되었습니다.그런데… 사건이 발생했습니다!어느 날, 저희가 잘 사용하던 “TestProject” 도구가 서비스 종료를 한다는 소식이 들어옵니다. “뭐지? 무슨 일이야?”라는 생각이 들었지만, 저희는 당황하지 않았습니다. 왜냐하면, 언제나 예기치 않은 상황에 대비하는 것이 우리의 일이기 때문입니다.새로운 도전의 시작도구가 사라졌다고 해서 테스트 자동화가 멈출 수는 없습니다. 저희는 새로운 도구와 방법을 찾기 시작했습니다. 새로운 도구를 선택하고, 기존의 테스트 케이스를 이전하고, 새로운 환경에 맞게 최적화하는 과정은 쉽지 않았지만, 저희는 한 발 한 발 나아갔습니다. 이 글은 그 여정의 시작과 도전의 이야기를 전하기 위해 작성하게 되었습니다.자~!! 이제 같이 시작해 보겠습니다.Let’s QA go~!!!!!!테스트 자동화 도구는 너무 많다.. 우리한테 맞는 건 무엇일까?STEP 1. 처음 두 개의 테스트자동화 툴을 비교 분석했습니다.두 도구 모두 유료 도구로 codeless의 레코딩 방식으로 쉽게 테스트 자동화를 구축할 수 있는 도구들입니다. 앱 개발과 테스트 자동화 분야에서 인기 있는 도구들은 처음에 무료로 배포되다가 일정 시점 이후에 라이선스를 요구하는 모델을 채택하고 있습니다. 이러한 모델은 초기에는 사용자 기반을 빠르게 확보하는 데 효과적일 수 있지만, 장기적으로는 몇 가지 문제점을 야기할 수 있습니다.유료 테스트 자동화 도구의 문제점위 문제점을 고려하여 우리가 스스로 개발하고 우리 기술로 만들어야겠다는 생각을 하게 되었습니다.STEP 2. 다음으로는 어떤 Open Source 기술로 개발을 해야할까 결정해야 했습니다.Open source의 테스트 자동화 도구들위 그림에서 본 것처럼 Open Source 도구들이 다양한 점과 개발 언어도 다른 점이 문제가 되었고, 그래서 찾은 도구가 바로~ Robot Framework입니다.여기서 간단하게 Robot Framework에 대해서 설명 드리겠습니다.Robot FrameworkPython 기반의 도구로 웹/앱/API/DB까지 테스트 자동화를 구축할 수 있는 도구이며, 키워드 기반으로 사전 정의된 키워드를 사용해서 테스트케이스를 작성하고 테스트를 실행 할 수 있습니다.Robot Framework의 ArchitectureRobot Framework Architecture1. Test Data (테스트 데이터) : 테스트 데이터는 테스트 시나리오의 입력값과 기대 결과를 포함하며, 테스트의 정확성과 신뢰성
appium
카카오스타일
UI 테스트 자동화
테스트를 거치지 않은 소프트웨어는 없습니다. 하지만 많은 기능을 가져 복잡해진 현대의 소프트웨어를 온전히 테스트하는 것은 굉장히 어려운 일입니다.이러한 테스트를 자동화하지 않은 채 소프트웨어를 지속적으로 배포하는 것은 불가능에 가깝다고 할 수 있습니다. 이번 글에서는 카카오스타일에서 진행하는 UI 테스트 자동화 시스템에 대해 설명해보겠습니다.• 주요 기능 검증: 회귀 테스트(regression testing), 스모크 테스트(smoke testing)를 포함한 단순하고 반복적인 테스트를 대체해, 수동 테스트를 진행하는 QA 인원은 좀 더 복잡하고 찾기 어려운 문제에 집중할 수 있게 합니다• 주요 지면 상시 모니터링: 모니터링 도구(예, 데이터독)의 지표로는 드러나지 않지만, 사용자가 체감할 수 있는 문제를 신속히 발견 및 전파하는 도구로 사용합니다• 코드 관리 및 작성: IntelliJ와 같은 IDE를 활용하여 코드를 작성하고, GitHub를 통해 코드를 관리합니다.• Jenkins: Jenkins는 CI/CD 파이프라인의 핵심으로, 스케줄링을 통해 테스트를 주기적으로 수행합니다.• 장치 연동 및 운영: 다양한 실제 장치(Android, iOS, 웹 브라우저 등)와의 연동을 통해 원격으로 테스트를 모니터링하고 실행합니다.• Appium을 통한 테스트 실행: 연결된 실제 장치에서 Appium을 통해 자동화 테스트를 수행합니다.• 결과 분석 및 보고: Jenkins 및 Appium Dashboard를 통해 상세 로그를 확인하고, Extent Reports로 테스트 결과를 시각화하여 개발팀에 제공하며, Slack Notification으로 실시간 알림을 전송합니다.지그재그 애플리케이션은 네이티브와 웹을 혼합한 하이브리드 구조를 채택하고 있습니다. Appium을 사용하여 주요 기능 및 네이티브와 웹 간의 상호작용을 테스트하여 전체 사용자 경험을 검증하고, 조화롭게 작동하는지 확인합니다.실제 사용자가 애플리케이션을 사용할 때의 시나리오를 기반으로 테스트를 진행합니다. 사용자의 경로를 따라 애플리케이션의 주요 기능이 의도대로 작동하는지 확인합니다. 예를 들어, 로그인, 데이터 입력, 결과 확인 등의 사용자 흐름을 포함합니다.네이티브와 웹 간의 상호작용을 테스트애플리케이션의 하이브리드 구조에서 네이티브와 웹 간의 상호작용이 올바르게 이루어지는지 검증합니다. 이 과정에서는 웹 콘텐츠와 네이티브 컴포넌트 간의 데이터 전달과 이벤트 처리가 정확한지 확인합니다.Jenkins를 사용해 코드를 자동으로 빌드하고 테스트를 수행합니다. Pipeline 스크립트를 통해 이 과정을 정의합니다.Git 저장소에서 최신 코드를 자동으로 체크아웃합니다. 소스 코드 파일이 로컬 작업 디렉토리로 다운로드됩니다.코드를 체크아웃한 후, Maven을 사용하여 프로젝트를 빌드합니다. 이후 테스트를 실행하여 결과를 검증합니다.Extent 리포트를 생성하여 테스트 결과를 시각적으로 확인할 수 있습니다. 이 리포트는 웹 페이지 형식으로 제공되며, 테스트의 상태를 한눈에 확인할 수 있도록 도
appium
jenkins
slack