[Android] 자동테스트

정상준·2023년 1월 19일
0
post-thumbnail

📝 자동테스트

✏️ 소프트웨어 관점에서 테스트는 소프트웨어가 예상대로 작동하는지 확인하는 구조화된 방법입니다. 자동 테스트는 개발자가 작성한 코드의 또 다른 부분이 올바르게 작동하는지 확인하는 실제 코드입니다. 수동 테스트는 대부분 계속 사용할 수 있지만, Android의 테스트가 자동화되는 경우도 많습니다.

📝 자동 테스트가 중요한 이유

✏️코드베이스를 확장하려면 새 코드를 추가할 때 기존 기능을 테스트해야 하는데, 이는 기존 테스트가 있는 경우에만 가능합니다. 앱의 규모가 커지면 수동 테스트를 할 때 자동 테스트보다 훨씬 많은 노력이 필요합니다. 또한 프로덕션 버전의 앱 작업을 시작했을 때, 사용자층이 넓은 경우 테스트를 진행하는 게 더욱 중요합니다. 예를 들어 다양한 버전의 Android를 실행하는 여러 유형의 기기를 고려해야 합니다.

자동 테스트는 소프트웨어를 통해 실행된 테스트입니다. 이와 달리 수동 테스트는 기기와 직접 상호작용하는 사람이 실행합니다. 자동 테스트와 수동 테스트는 제품 사용자에게 쾌적한 환경을 제공하는 데 중요한 역할을 합니다. 그러나 자동 테스트가 더 정확하고 팀의 생산성을 최적화할 수 있습니다. 테스트를 실행하는 데 사람이 필요하지 않고 수동 테스트보다 훨씬 빠르게 실행할 수 있기 때문입니다.

📝 자동 테스트 유형

로컬 테스트

로컬 테스트는 소수의 코드를 직접 테스트하여 제대로 작동하는지 확인하는 자동 테스트의 유형입니다. 로컬 테스트를 사용하여 함수, 클래스, 속성을 테스트할 수 있습니다. 로컬 테스트는 자바 가상 머신에서 실행됩니다. 즉, 기기나 에뮬레이터 없이도 개발 환경에서 실행됩니다.

ex)

@VisibleForTesting
internal fun calculateTip(amount: Double, tipPercent: Double, roundUp: Boolean): String {
   var tip = tipPercent / 100 * amount
   if (roundUp)
       tip = kotlin.math.ceil(tip)
   return NumberFormat.getCurrencyInstance().format(tip)
}
app -> src -> test -> java -> com.example -> tiptime -> 클래스 생성
@Test
fun calculate_20_percent_tip_no_roundup() {
   val amount = 10.00
   val tipPercent = 20.00
   val expectedTip = "$2.00"
   val actualTip = calculateTip(amount = amount, tipPercent = tipPercent, false)
   assertEquals(expectedTip, actualTip) //어설션
}
  • 어설션 : 예상값과 실제값이 같은지 비교

계측 테스트

Android 개발에서 계측 테스트는 UI 테스트입니다. 계측 테스트를 사용하면 Android와 플랫폼 API 및 서비스에 종속된 앱 일부를 테스트할 수 있습니다.

로컬 테스트와 달리 UI 테스트는 앱이나 앱의 일부를 실행하고 사용자 상호작용을 시뮬레이션하여 앱이 적절하게 반응했는지 확인합니다. 이 과정 전반에 걸쳐 UI 테스트는 실제 기기 또는 에뮬레이터에서 실행됩니다.

profile
안드로이드개발자

0개의 댓글