소프트웨어 성능 테스트
소프트웨어 성능 테스트는 부하 상황에서 시스템의 성능을 검증하는 비기능 테스트다. 응답 시간, 처리량, 자원 사용률이 목표를 만족하는지 확인한다. 기능이 맞는지는 기능 테스트가, 얼마나 빠르고 많이 처리하는지는 성능 테스트가 본다. 먼저 핵심 용어를 정리한다. 응답시…
주요 장면
대본
정의
소프트웨어 성능 테스트는 부하 상황에서 시스템의 성능을 검증하는 비기능 테스트다.
응답 시간, 처리량, 자원 사용률이 목표를 만족하는지 확인한다.
기능이 맞는지는 기능 테스트가, 얼마나 빠르고 많이 처리하는지는 성능 테스트가 본다.
핵심 용어
먼저 핵심 용어를 정리한다.
응답시간은 요청부터 응답 도착까지 걸린 시간이고, 처리량은 단위 시간당 처리 건수다.
처리량은 TPS 단위로 쓴다.
동시 사용자는 등록 사용자보다 훨씬 적은 것이 일반적이다.
처리량 산정식
처리량은 동시 사용자 수를 응답시간과 Think Time의 합으로 나눠 구한다.
N은 동시 사용자 수, RT는 평균 응답시간, TT는 평균 Think Time이다.
이 식은 이상적 가정의 계산이므로 실제 시스템은 검증 테스트로 보정한다.
계산 예제
예를 들어 동시 사용자 500명, 응답시간 2초, Think Time 8초라고 하자.
활성 사용자 수는 동시 사용자에 응답시간을 곱하고, 응답시간과 Think Time의 합으로 나눠 구한다.
이 조건의 활성 사용자 수를 직접 구해 보자.
정답은 화면에서 확인한다. 이 값을 TPS 식에 넣으면 초당 처리 건수가 된다.
성능 테스트 유형
성능 테스트는 부하의 크기와 목적에 따라 여러 유형으로 나뉜다.
부하 테스트는 목표 수준 안에서 성능을 확인한다.
스트레스 테스트는 목표를 넘어 시스템의 용량 상한과 한계를 찾는다.
답안에서는 유형을 먼저 나누고 각 유형의 대상을 쓴다.
흔한 실수
시험에서 자주 나오는 실수를 짚어 보자.
동시 사용자는 같은 순간 활동 중인 사용자 수이며, 등록 사용자보다 훨씬 적은 것이 일반적이다.
처리량 목표만 쓰고 응답시간 목표를 빠뜨리면 목표 설정이 불완전하다.
루프백 테스트는 신호를 원점으로 되돌려 연결성을 확인하는 진단이므로 부하 테스트가 아니다.
정리
마지막으로 핵심을 정리한다.
성능 테스트는 응답시간, 처리량, 자원 사용률을 부하 상황에서 검증한다.
처리량은 동시 사용자를 응답시간과 Think Time의 합으로 나눠 구한다.