성능 테스트 기초

Soyean·2022년 12월 29일
0

비기능 테스트

목록 보기
1/3

성능 테스트란 ?

특정 워크로드에서 애플리케이션의 안정성과 속도, 확장성 및 반응성이 어떻게 유지되는지를 판별하는 비기능적 소프트웨어 테스트 기법입니다.
결함을 찾는 것이 아니라 응답 시간, 처리량 등을 중점적으로 테스트합니다.

테스트 시점

  • 기능 테스트 완료 후 / 코드 릴리즈 준비 완료 후

테스트 목적

  • 변경 전/후 성능 비교
  • 부하 상황에서의 결함 도출
  • 릴리즈 안정성 판단

테스트 장점

  • 시스템의 속도, 부하 용량, 정확도 및 기타 성능 보장
  • 어떤 일이 발생하면 문제를 식별, 모니터링 및 해결
  • 최적화 및 동시 사용성 보장

테스트 유형

  • Load testing : Peak 시점의 부하 상황에서 시스템의 성능을 검증
    Stress testing : Peak Load보다 훨씬 높은 부하 상황에서 시스템의 성능을 검증
    Endurance testing: 긴 시간 동안 시스템의 안정성을 확인
    Spike testing: 시스템의 갑작스러운 사용량 급증 상황에 대한 성능 검증
    Volume testing: 많은 데이터에 대한 성능 테스트
    Scalability testing: 사용자 부하, 트랜잭션 수, 데이터 볼륨 등과 같은 비기능 측면에서 확인하는 성능 검증, 시스템의 Peak가 어느 시점인지 확인하는 테스트

테스트 용어

동시 사용자 (real-time user/active user)
= 요청 사용자 ( 요청 후 응답 대기 사용자 ) + 비요청 사용자 ( 접속 후 대기하는 사용자 )

리틀의 법칙 I=λ×R
I는 프로세스 내에 대기하는 손님 숫자
λ는 손님의 평균 도착율
R은 손님이 프로세스 내에서 평균적으로 대기하는 대기시간

Troubleshooting
문제를 해결하기 위해 원인을 찾아가는 과정

HPS ( Hit Per Second )
초당 모든 웹 요청에 대한 처리량 (리소스에 대한 request 처리량 포함)

TPS ( Transaction Per Second )
초당 시스템 처리량

Saturation Point
더이상 TPS가 증가하지 않는 시점
Saturation Point가 넘으면서 사용자가 몰리면 TPS가 고정된 상태에서 응답시간이 길어짐

참고 :
https://www.geeksforgeeks.org/performance-testing-software-testing/
https://namu.wiki/w/%EB%A6%AC%ED%8B%80%EC%9D%98%20%EB%B2%95%EC%B9%99
https://www.toolsqa.com/software-testing/performance-testing/
https://engineering-skcc.github.io/performancetest/Performance-Testing-Terminologies/

profile
주니어 QA 🐥

0개의 댓글