클라이언트 성능 테스트 의미와 목적, 준비하기

2024. 8. 5. 12:38·QA성장하기/테스팅 전문 지식 쌓기
  1. 클라이언트 성능 테스트
    1. 클라이언트 성능 테스트란?
      • 클라이언트 성능 테스트는 제품 개발이 완성되는 시점에 진행되는 기술 검증 테스트를 의미한다.
      • 애플리케이션 사용 중 FPS,CPU 사용량, GPU 사용량, 배터리 사용 전력량, 디바이스 온도, 메모리 사용량, 네트워크 사용량 등을 측정한다.
      • 측정한 데이터를 분석하여 애플리케이션 응답성, 안정성, 신뢰성, 부하 발생 병목구간을 확인하고 성능 문제점을 보고한다.
    2. 클라이언트 성능 테스트의 목적
      • 애플리케이션 자체 성능과 제품으로 인해 디바이스 성능을 위해하는 요인을 찾아 개선한다.
      • 특히 모바일 애플리케이션의 경우 디바이스 성능 저하 혹은 악영향을 끼치는 것을 원하지 않는다.
      • 동시에 사용성 측면에서 좋은 응답을 원하기 때문에 성능적인 측면을 고려해야 한다.
    3. 클라이언트 성능 테스트 벤치마크 도구
      • 성능 테스트 도구와 성능 테스트 벤치마크 도구 차이
        • 성능 테스트 도구는 애플리케이션과 시스템 성능을 평가하여 병목 현상, 확장성 문제, 안정성 등을 파악하는 데 사용된다.
        • 성능 테스트 벤치마크 도구는 하드웨어나 소프트웨어의 성능을 정략적으로 평가하여 다른 시스템 또는 이전 버전과의 비교를 목적으로 한다.
      • 성능 테스트 벤치마크 도구 목록
        • 안투투 벤치마크 : 기기의 성능을 종합적으로 테스트하는 도구로, 디바이스 성능비교에 주로 사용된다.
        • 긱벤치 : 다양한 플랫폼에서 CPU, GPU 성능을 평가하는 크로스플랫폼 벤치마크 도구이다.
        • PC마크 : PC의 종합적인 성능을 평가하는 도구로, 일상 작업 성능을 측정하고 비교한다.
        • GFX 벤치 : GPU의 그래픽 성능을 측정하는 도구로, 모바일, PC의 그래픽 처리 능력을 비교한다.
        • 게임벤치 : 게임 성능을 평가하고 분석하기 위한 도구로, 주로 모바일 게임 및 앱 성능을 측정한다.
    4. 벤치마크 도구 사용 시 유의사항.
      • 테스트할 애플리케이션만 활성화된 상태로 진행한다.
        • 타 애플리케이션도 실행중인 상태로 테스트하면, 성능 지표가 오염될 수 있다.
        • 열려있는 애플리케이션을 모두 닫고 테스트 대상만 포그라운드 상태에서 프로세스를 실행한다.
      • 성능 측정은 최소 한 시간 이상 진행한다.
        • 평균 성능 데이터 수집, 장시간 사용시 발생하는 병목구간을 찾기 위해 충분한 테스트 시간이 필요하다.
      • 제품 출시 전 개발이 어느정도 완성된 상태에서 테스트를 진행한다.
        • 애플리케이션 유지보수를 거치면서 메모리는 지속적으로 축적된다.
        • 출시 초기에 성능을 개선하지 못한다면, 성능 과부하가 지속적으로 발생할 수 있다.
        • 추후에 애플리케이션을 개선하면 더 많은 비용과 시간이 소모되고, 장애요인이 발생할 수 있다.
  2. 모바일 애플리케이션 성능으로 발생할 수 있는 문제점.
    1. 화면 로딩 느림 현상과 버벅거림
      • 화면 구성이 복잡하거나, 대량의 고화질이미지를 사용할 때 메모리를 과도하게 사용하면서 발생 가능하다.
      • 최근 개발되는 애플리케이션은 클라이언트 저장 데이터를 최소화하고 API서버를 통해 응답을 받아온다.
      • 이러한 구조가 대량의 고화질 이미지를 호출하고, 클라이언트에 다운로드하면서 위 현상이 발생할 수 있다.
      • 모바일 게임에서도 고화질 이미 사용으로 인한 화면 지연, 프리징 혹은 FPS 안정성이 떨어지면 동일현상이 발생할 수 있다.
    2. 발열이슈
      • 애플리케이션 강제 종료 및 프리징 현상, 프레임 드랍, 디바이스 배터리 수명 단축의 원인이 될 수 있다.
      • 트랜지스터, 전원 관리 직접 회로, 통신 프로세서, 송수신 처리 등의 원인으로 발열 이슈가 생길 수 있다.
    3. 병목 현상
      • 애플리케이션 사용 시간이 길어질수록 메모리, CPU, GPU의 병목이 발생할 수 있다.
      • 설계 단계에서 병목이 발생하지 않도록 메모리를 자체 해제하도록 설계하거나, 메모리 효율성이 높은 코드로 구성해야 한다.
      • 병목은 유저들의 사용성에 불편을 줄 수 있고, 디바이스 성능을 제한하거나 CPU에 악영향을끼치는 등의 문제를 발생할 수 있다.
    4. 한계와 해결방법
      • 품질 검증 단계 이전에 개발 설계 단계부터 성능을 고려하여 개발해야 한다.
      • 다만 모든 조직에서 성능을 고려하며 작업하는것을 당연시 할수는 없다. (경험 부족 등)
      • 품질 관리 담당자로서 문제점을 찾을 수 있는 테스트 방법을 알고 예방할 수 있도록 안내해야 한다.
  3. 테스트 범위 선정 및 수행 계획 설계
    1. 테스트 콘텐츠 선정
      • 제품의 전체 기능보다는 성능 문제를 발생시킬 것으로 예상되는 콘텐츠를 대상으로 범위를 선정한다.
      • 이커머스 애플리케이션에서 성능 문제를 발생시킬 수 있는 콘텐츠
        • 대량의 상품 목록을 호출하는 상품 조회 또는 검색 목록에서의 로딩 축적
        • 고사양 이미지와 동영상을 출력하는 상품의 상세 페이지
        • 다량의 유저 유입이 순간적으로 증가하여 트래픽이 급증할 수 있는 이벤트 페이지.
      • 모바일 게임에서 성능 문제를 발생시킬 수 있는 콘텐츠
        • 앱 설치 시 다운로드하는 대용량 데이터
        • 네트워크 및 서버 부하가 높은 실시간 대전 콘텐츠
        • 이미지 렌더링 속도에 영향을 주는 확률형 아이템 뽑기
        • 이펙트 효과가 많이 적용된 콘텐츠 등
    2. 테스트 디바이스 선별
      • 안드로이드와 iOS 를 구분하여 최저사양, 권장 사양, 최고 사양 디바이스와 운영체제 버전을 선정한다.
      • 제품의 타깃 서비스 국가가 글로벌일 때, 해당 국가의 주 사용 디바이스를 고료한다.
    3. 테스트 시나리오 준비
      • 선정된 테스트 디바이스와 운영체제별로 테스트 스위트를 구분한다.
      • 콘텐츠 플레이 진행순서로 시나리오 흐름을 만들어 콘텐츠별 측정수치를 입력하도록 설계한다.
    4. 테스트 유의 사항
      • 테스트 수행 시간
        • 각 테스트 콘텐츠별로 20분이상 애플리케이션을 사용하는 것을 권장한다.
        • 테스트 스위트의 전체 테스트 수행은 1시간 이상 진행한다.
      • 애플리케이션 기능 설정
        • 사운드 볼륨, 그래픽, 화질, 채도 등의 기능 설정을 의미한다.
        • 애플리케이션에서 기본으로 제공하는 설정 상태와 최댓값으로 설정한 상태 2가지로 테스트를 진행한다.
      • 디바이스 제공 설정
        • 화면 밝기, 사운드 볼륨, 절전모드, 블루투스 등의 기능 활성 등이 포함된다.
        • 애플리케이션 성능 측정 시, 디바이스 하드웨어 기능 연동에 의한 영향도 확인을 위해 필요하다.
      • 콘텐츠별로 녹화를 끊지 말고 전체 테스트 스위트를 이어서 기록한다.
      • 다만, 콘텐츠별 녹화된 분량을 분리하여 분석이 필요하기 때문에 해당 시간을 기록해둔다.
    5. 클라이언트 성능 품질 기준 수립 (테스트 통과 기준)
      • 측정한 데이터를 기반으로 제품 상태를 분석하고문제의 원인과 정확한 개선 요구 사항을 전달해야 한다.
      • 한 개의 테스트 스위트에서 측정한 데이터의 평균값이 일정 수준을 만족하는 지 확인한다.
      • 테스트 스위트 안의 각각 콘텐츠에 대한 측정 데이터가 일정 수준을 만족하는 지 확인한다.
  4. 테스트 시나리오 작성
    1. 테스트 시나리오 설계하기
      • 클라이언트 성능 테스트 시나리오는 체크리스트 형태로 생성하여, 디바이스별로 테스트 스위트를 구분한다.
      • 테스트 범위를 비즈니스 시나리오 또는 유저 행위 절차를 기반으로 테스트 진행 흐름 순서로 나열한다.
      • 테스트를 진행하며 각 기능 또는 콘텐츠별 측정 성능 수치를 입력하고 특이사항을 시나리오에 기록한다.
      • 일반적인 기능TC처럼 사전조건과 기대 결과가 없고, 테스트 진행 콘텐츠와 측정 데이터만 입력한다.
      • 클라이언트 성능 품질 지표 기준과 비교 분석하기 위한 자료로 사용된다.

'QA성장하기 > 테스팅 전문 지식 쌓기' 카테고리의 다른 글

측정한 성능 데이터를 기반으로 분석 및 개선하기  (0) 2024.08.07
게임 벤치 스튜디오 프로 데스크탑 설치 및 사용해보기  (0) 2024.08.06
네트워크 에뮬레이터 키트 (NEWT for windows) 설치 및 사용방법.  (0) 2024.08.02
네트워크 테스트 준비사항 및 도구  (0) 2024.08.01
ISO/IEC 25010 품질 특성 정리  (0) 2024.07.17
'QA성장하기/테스팅 전문 지식 쌓기' 카테고리의 다른 글
  • 측정한 성능 데이터를 기반으로 분석 및 개선하기
  • 게임 벤치 스튜디오 프로 데스크탑 설치 및 사용해보기
  • 네트워크 에뮬레이터 키트 (NEWT for windows) 설치 및 사용방법.
  • 네트워크 테스트 준비사항 및 도구
몽자비루
몽자비루
코딩공부 정리용 블로그입니다.
  • 몽자비루
    공부하는 블로그
    몽자비루
  • 전체
    오늘
    어제
    • 분류 전체보기 (170)
      • python (30)
        • python_selenium (16)
        • python_pygame (3)
      • appium (0)
      • 쿠버네티스 (60)
        • linux (8)
        • shell programming (8)
        • docker (18)
        • cka (23)
      • postman&API (16)
      • QA성장하기 (30)
        • 개발자에서 아키텍트로 스터디 (6)
        • 소프트웨어 공학 이해도 높이기 (6)
        • 테스팅 전문 지식 쌓기 (18)
      • 에러일기 (1)
      • Server&load (32)
        • AWS (27)
        • Jmeter (0)
        • load test (5)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    LOSTARK
    .cpu
    vi에디터
    로스트아크api
    도커
    테스트 계획서 만들어보기
    사드웨어리소스
    테스트 계획서
    e2c
    공존성테스트
    k8s
    qa
    리눅스
    application log
    cka
    포스트맨
    postman
    쿠버네티스
    앱공존성
    테스트 결과보고서
    QAKOREA
    개발자에서아키텍트로
    스터디
    API
    linux
    애플리케이션로그
    테스트스크립트
    python
    로스트아크
    네트워크 테스트
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
몽자비루
클라이언트 성능 테스트 의미와 목적, 준비하기
상단으로

티스토리툴바