안드로이드 연구소

[연봉 5000 넘는 안드로이드 개발자 되는 법] 안드로이드 테스트코드 종류 본문

안드로이드 연구소/테스트코드

[연봉 5000 넘는 안드로이드 개발자 되는 법] 안드로이드 테스트코드 종류

안드로이드 연구원 2023. 5. 18. 17:17

지난 포스트에서 DI 의존성 주입 라이브러리에 대해서 살펴보았습니다.

그리고 오늘부터 챕터3의 핵심이 될 안드로이드 테스트코드에 대해서 배워볼 예정입니다.

 

많은 안드로이드 개발자 채용 공고 시장에서

DI와 더불어 테스트코드를 사용할 수 있는 인재를 원하는 것을 종종 확인할 수 있습니다.

그 채용 공고는 3, 4, 5년차 개발자 채용을 대상으로 하는걸 보아서

러닝커브가 다소 높은 편이고 구현해낼 수 있는 초급 개발자는 많다는 것을 추론할 수 있겠지요?

 

그렇다면 테스트코드를 사용할 줄 안다면

3년차 이상의 중급 개발자로 들어가는 신호탄이라고 저는 조심스럽게 생각합니다.

그렇다면 테스트코드가 무엇인지 한번 알아볼까요?

 

Q1. chatGPT, 테스트 코드가 뭐야?

테스트 코드는 소프트웨어 응용 프로그램 또는 시스템을 테스트하기 위해
작성된 일련의 지침 및 스크립트입니다.
소프트웨어가 올바르게 작동하고 품질 표준을 충족하는지 확인하는 데 도움이 됩니다.

테스트 코드는 개발자 또는 품질 보증 엔지니어가 작성하며
테스트 프로세스를 자동화하는 데 사용됩니다.
여기에는 테스트 사례 생성, 예상 결과 정의 및 테스트 실행이 포함됩니다.

 테스트 코드는 버그와 오류를 식별하는 데 도움이 되므로
개발자가 소프트웨어를 출시하기 전에 문제를 수정할 수 있습니다.

즉 버그와 오류를 식별하기 위해 테스트 프로세스 자동화하는 코드 프로그램 정도겠네요

 

 

Q2. 안드로이드 테스트 코드에 대해 설명해줘.

안드로이드 테스트 코드는 안드로이드 애플리케이션을 구체적으로 테스트하기 위한 일련의 지침 및 스크립트를 나타냅니다. Android 앱의 기능, 성능 및 사용자 경험을 평가하는 데 중점을 둡니다.

Espresso와 Mochito과 같은 라이브러리들을 사용하여
사용자 상호 작용을 시뮬레이션하고, UI 요소의 유효성을 검사하고, 앱 구성요소가 올바른 동작하는지
자동화된 테스트를 작성할 수 있습니다.

안드로이드도 다른 테스트와 다를 껏 없이 오류와 버그를 찾아내기 위해 테스트 프로그램이네요.

테스트 코드를 위한 다양한 라이브러리들이 존재하는 것으로 보입니다.

 

 

Q3. 안드로이드 테스트코드에는 어떤 종류가 있어?
("안드로이드 공식 문서: 테스트의 기초"를 바탕으로 작성하였습니다.)
https://developer.android.com/training/testing/fundamentals

Unit Tests(단위 테스트)
: 특정 메서드 또는 클래스의 정확성을 확인하기위해 작성한다.
일반적으로 JUnit 또는 Mockito와 같은 프레임워크를 사용하여 작성됩니다.

Instrumentation Tests(계측 테스트, 안드로이드 테스트) 
: 에뮬레이션된 안드로이드 디바이스에서 실행되는 테스트입니다.
앱은 명령을 삽입하고 상태를 읽는 테스트 앱과 함께 빌드 및 설치됩니다.
주로 사용자와 상호작용하는 유저 인터페이스를 테스트를 진행합니다.
Espresso와 UI Automator 등이 있습니다.
Instrumentation Tests에는 아래와 같은 항목들의 테스트들이 있습니다.
- UI Test
- Component Integration Tests
- Database Test
- Network Tests
- Permission Tests
- Background Service Tests
- Broadcast Receiver Tests
- Unit Tests for Non-UI Classes

안드로이드에서 테스트 하는 방법은 크게 두가지입니다.

단위 테스트와 계측 테스트. 둘 다 테스트 해본 경험이 없다면 크게 들어본 적이 없을겁니다.

 

간단하게 설명하면 단위테스트는 JVM위에서 사용자가 동작하려는 로직과 일치하는지를 테스트합니다.

그렇기 때문에 메서드나 함수같은 작은 단위를 테스트합니다.

 

반대로 계측테스트는 안드로이드 디바이스에 애플리케이션을 빌드 후

스크린 터치, 스크롤 같은 유저 인터페이스 행위까지 코드로 명령하여 테스트합니다.

이렇게 하여 안드로이드의 외부에서 주는 이벤트까지 고려하여 모든 요소들을 테스트하는 것입니다.

 

이렇게 비교했듯이 단위테스트는 작게 테스트하고

계측테스트(즉, 안드로이드 테스트)는 크게 모든 것들을 테스트한다.

정도로 이해하시면 될 것 같습니다.

 

그럼 앞으로 단위테스트와 안드로이드 테스트를 하는 방법을 시작해보겠습니다.

감사합니다.

Comments