클라이언트 성능 검증으로 사용자 경험 개선하기

클라이언트 성능 테스트(Client Performance Test)는 제품 개발이 완성되는 시점에 진행되는 기술 검증 테스트 중 하나로, 앱 사용 중 FPS / CPU사용량 / GPU사용량 / 사용전력량Battery / 단말기 온도 / 메모리 사용량 / Network 사용량을 측정하고, App의 응답성, 안정성, 신뢰성, 부하가 발생되는 병목구간을 측정하여 어플리케이션 성능 문제점을 확인하고 어플리케이션으로 인해 고객의 단말기 성능을 위해(危害)하는 요인을 찾아 이를 개선하는데 목적이 있습니다. 


                                                            -------- ✪ --------


모바일 어플리케이션을 사용할 때 고객은 사용성 측면에서 좋은 응답을 기대합니다. 또한 어플리케이션이 단말기 성능을 저하시키거나 악영향을 끼치는 것을 원하지 않습니다. 따라서 모바일 어플리케이션 개발자들은 어플리케이션을 개발하는 동안 성능적 측면도 고려해야하며, QA의 품질 검증 활동에도 모바일 어플리케이션의 성능 테스트를 진행하여 고객이 느린 응답과 같은 성능 문제를 직면하지 않도록 해야합니다. 


  클라이언트 성능 테스트의 가장 주요한 품질 활동은 모바일 어플리케이션의 성능을 측정하는 데만 있지않습니다. 측정된 자료를 기반으로 QA는 제품 상태를 분석하고 분석된 지표를 이용하여 정확한 개선지점을 지정하고 명확한 품질 개선 요구사항을 전달해야합니다. 



✤ 클라이언트 성능 테스트 벤치마킹 tool

가장 보편적인 tool로 Antutu Benchmark, Geekbench, PCMark, GFXBench Benchmark, Game Bench 등이 있습니다. 


✤ 클라이언트 성능 테스트 진행시 유의사항 

  • 테스트 할 어플리케이션만 활성화된 상태로 테스트를 진행하는 것이 좋습니다. 다른 어플리케이션도 실행중인 상태로 테스트 할 경우 테스트 하고자 하는 앱의 성능 지표가 오염될 수 있어서 테스트시 열려있는 다른 어플리케이션은 모두 닫고 테스트할 대상만 포그라운드 상태에서 프로세스를 실행하도록 합니다. 

  • 성능 측정은 최소 1시간이상 진행합니다. 모바일 어플리케이션의 평균적인 성능 데이터 수집과 오랜 시간 사용했을 경우 발생되는 병목구간을 찾기 위해 충분한 테스트 시간이 필요합니다. 


✤ 클라이언트 성능 저하로 발생될 수 있는 이슈 사례

1) 화면 로딩 느림현상 & 버벅임 

2) 발열 (발열로 인한 배터리 수명 단축, CPU 성능 저하 발생)

3) 앱 실행 중 크래시(앱이 강제로 종료되는 현상)되거나 프리징(앱이 멈춤)되는 현상 등



클라이언트 성능 테스트 수행을 위한 품질 기준 선정 및 테스트 절차를 소개해드리겠습니다. 테스트용 도구는 저자가 실제 사용한 Game Bench를 기준으로 사용법을 가이드하겠습니다.


1) 테스트 범위 선정 

클라이언트 성능 테스트의 경우, 테스트할 제품의 기능 전체를 대상으로 테스트하지 않습니다. 어플리케이션에서 성능상 문제를 발생시킬 수 있을 예상 요인을 확인하고 예측되는 문제가 발생될 수 있는 기능으로 테스트 범위를 선정합니다. 

ex) e-commerce의 경우, 카테고리별 상품조회/검색/결제/인증 프로세스로 선정 


2) 테스트 단말기 선정 

최신 디바이스에서만 성능 테스트를 진행할 경우 미처 테스트하지 못한 저사양 디바이스나 OS에서 문제가 발생될 수 있습니다. 회사 또는 제품이 권장하는 최소사양부터 ~ 최고사양까지 다양한 사양의 단말기와 OS에서 테스트를 반복 수행 하도록 합니다.


3) 테스트 시나리오

클라이언트 성능 테스트의 테스트 시나리오는 기존의 테스트 케이스의 구성과 다릅니다. 즉 실행 절차와 기대 결과가 존재하지 않습니다. 클라이언트 성능 테스트의 테스트 케이스는 '체크리스트' 형태로 생성하여 테스트하는 단말기와 테스트 구간(기능)별로 측정된 수치값을 입력하고 테스트 수행 중 확인되는 특이사항(화면 버벅임, 발열 등)을 기록하도록 합니다. 측정된 수치값과 클라이언트 성능 품질 지표를 비교 분석하기위한 자료로 테스트 시나리오가 사용됩니다. 

(#첨부된 예시 시나리오 이미지 1 참고)


4) 테스트 실행 

   (a) Gamebench 설치 및 실행

       PC의 OS환경에 맞는 최신 게임벤치 다운로드 및 설치

       https://docs.gamebench.net/downloads/ (사용을 위해 비용지불 및 회원가입이 필요합니다.)


   (b) AOS/iOS 단말기를 PC에 연결 

      (1) 연결된 단말기 확인 후 테스트 대상 앱 선택 (#첨부 이미지 2 참고)


(3) 데이터 수집 시작 (테스트 시작)

      (a) App 실행 후 빨간색 레코드 버튼 클릭 

      (b) 준비된 테스트 시나리오 따라 테스트 진행

         : 테스트 진행 중 확인되는 현상(앱 크래시, 버벅임, 발열 등)은 테스트 시나리오에

         빠짐없이 기록한다.

      (c) 레코드는 1시간 이상 진행 
         : 한 대의 단말기에서 테스트를 진행하는 동안 recording 을 끊지 않고 이어서 녹화

         (#레코딩 중 화면 첨부된 이미지 3 참고)


(4) 테스트 종료

      (a) 한 대의 단말기에서 테스트 수행이 완료되면 stop 버튼 클릭
         ★ 선정한 테스트 단말기별로 테스트를 반복 수행(recoding → stop)합니다.

      (b) 게임벤치에서 녹화한 데이터를 자동으로 게임벤치 웹으로 동기화 처리한다 

            ‣ recording 종료 후 게임벤치 웹 대시보드에서 데이터 확인
               https://web.gamebench.net/dashboard/user/home 

              (웹 대시보드 > Sessions 탭 > 목록에서 녹화한 Sessions 클릭 > 데이터 확인)    

      (c) 각 측정된 수치값을 테스트 시나리오에 기록한다


(5) 측정된 데이터 분석  

    (a) 필터 목록에서 테스트 한 애플리케이션 선택 (#첨부 이미지 4 참고)

    (b) 수집된 데이터와 성능 품질 기준을 비교하여 결과를 기입한다

            ▪︎ App의 응답성, 안정성, 신뢰성, 부하가 발생되는 병목구간 측정

            ▪︎ 어플리케이션 성능 문제점 확인 (품질 기준에 부합되지 않은 영역 확인)

            ▪︎ 어플리케이션이 단말기 성능을 위해(危害)하는 요인 확인

            ▪︎ 테스트 단말기별로 테스트 반복 수행 후 측정된 데이터를 비교 분석


[클라이언트 성능 품질 기준]

  • FPS - Median FPS : 30, FPS Stability : 평균 75% 이상 (최소 20 이상)

  • CPU - Android 평균 사용량 60% 미만 / iOS 평균 사용량 70% 미만

  • GPU - 평균 GPU 사용량 30%미만 (중간 사용량 - 60%, 높은 사용량 - 80%)

  • MEMORY - 권장사양 - 100~200MB / 최고사양 - 500MB 까지 허용

  • PACKET - 게임 플레이를 기준으로 10분에 3MB미만 데이터

  • Temperature - 최고 온도 40도 미만

  • Battery - 100% 충전된 상태에서 5~7시간 앱 사용 가능 / 배터리 소모 시간당 30% 이하

  • Launch Time - 앱 아이콘을 탭한 순간부터 첫번째 상호작용 화면에 도달하기까지 10~15초 소요


5) 테스트 결과 공유

측정된 자료와 테스트한 단말기 전체의 수치를 비교 분석하여 개선이 필요한 단말기 또는 구간을 정확하게 지정하고 명확한 품질 개선 요구사항을 전달합니다.

  1. 측정 성능 항목별 결과를 요약해서 문제가 발생될 수 있는 영역과 예측되는 이슈를 공유
    예를들어, 

    1) FPS가 튀거나 드랍되는 영역을 확인하여 애플리케이션의 어느 위치에서 이상 현상이

    발생되는지 & FPS가 튀거나 드랍되는 순간 화면상 버벅임이나 딜레이 등 현상이 나타나지

    않는지 체크하여 공유    
    2) 테스트 시간(=앱 사용시간)이 길어질수록 병목되는 구간이 발생됨으로 인해 (1)화면상

    딜레이가 발생 또는 (2)Memory 사용량 증가로 CPU 악영향을 미침 또는 (3)발열 온도

    상승으로 어플리케이션이 crash 등의 현상 공유 

    3) 단말기 사양별로 이상 현상이 발생되는 구간 분석하여 공유
    ex) 권장~최고 사양은 이상없으나 최저 사양에서 어플리케이션 실행 불가

  2. 문제가 발생될 수 있는 영역에 대한 개선 포인트를 가이드 
    ex) FPS 성능 불안정으로 앱 딜레이/버벅임/프리징 상태의 끊김이 앱 사용 중 지속적으로 발생되고 있음. OS별 UI 렌더링 구조에 발생되는 문제가 없는지 확인 필요

  3. 빌드 마감이 n차로 진행되는 경우 마감 차수별로 클라이언트 성능 테스트를 진행하고 차수별 결과를 비교분석하여 개선된 지점에 대한 결과를 공유

  4. 개선 또는 수정작업 없이 빌드를 라이브로 배포하기로 결정될 경우 이슈가 발생될 수 있는 포인트에 대한 사후대응을 사전 준비할 수 있도록 가이드


[데이터 분석 예시]

  1. Memory 사용량

    1. 분석방법

      1. Chart에서 메모리를 많이 사용하는 구간 확인하여 결과 공유

      2. 테스트 시간(어플리케이션 사용 시간)이 길어질수록 병목되는 구간 발생으로 인해 특이사항 또는 이슈가 발생되지 않는지 확인 후 결과 공유

      3. 테스트 단말기(최저/권장/최고사양)별 특이사항 확인

    2. 불안전한 Memory Chart 예시 (#첨부 이미지 5 참고)

: 애플리케이션 사용시간이 길어질수록 메모리가 중첩되어 사용량이 늘어나는 현상 확인됨.

화면전환 또는 일부구간에서 메모리가 병목되지 않도록 개선이 필요함을 확인할 수 있음


다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2023년 10월 10일 오전 8:28

 • 

저장 8조회 1,745

댓글 1

함께 읽은 게시물

일 잘하는 사람은 AI를 어떻게 쓸까?



... 더 보기

《전업 소설가로서 방법을 찾지 않으면 안 되었다》

... 더 보기

《아무튼 잘한 일》

... 더 보기

[2025 원티드 하이파이브 후기]

... 더 보기

2025 원티드 HIGH FIVE 후기

Brunch Story

2025 원티드 HIGH FIVE 후기

《선택 사항으로서의 고통》

P

... 더 보기

< 당신이 바쁜데도 성과가 없는 이유 >

1. '바쁘다'는 건 열심히 많은 일을 하고 있다는 뜻이다.

... 더 보기

 • 

댓글 1 • 저장 16 • 조회 1,574