성능 테스팅

성능테스팅 개요

딸기케잌🍓 2020. 8. 22. 15:32

성능테스트

실제 어플리케이션 및 실 환경 인프라 하에서 현실 세계의 부하량으로 모델링하여 성능을 측정하여,

적정한 용량 및 확장성, 예상 트랜잭션 수용 가능여부를 판단하기 위해 수행하는 프로세스

 

성능테스트의 목적

  • 시스템 오픈 후 성능병목 없이 안정적인 운영 가능 여부 판단
  • 고객과 합의한 성능 목표 충족 여부 판단
  • 주요 성능 결함 및 아키텍처 병목 식별
  • 시스템 임계치 파악을 통한 확장 대상 자원 계획 수립 지원
  • 도출한 성능결함 제거 및 시스템 최적화를 통한 비용 최소화
  • 사용자 관점의 품질개선 및 신뢰 제고

성능 테스트 종류

 

 

응답 시간

  • 사용자가 체감하는 시스템의 성능 지표로 가장 영향력이 큰 지표
  • 시스템에 Request를 요청하고 Response를 받을 동안 소요되는 시간

 

 

응답시간 구성

Client Time + Network Time + Server Processing Time으로 구성된다.

  • Network Time = RTT(Round Trip Time) 요청이 갔다 오는 시간
  • Server Processing Time = Queuing Time(큐에 대기하는 타임) + Process Time(서버에서 요청을 처리하고 응답하는 시간)
  • 오픈 환경에서 통제가 되지 않은 N/W구간을 최대한 배제하기 위해 서버망에 부하발생기를 설치하여 수행 및 응답시간을 측정함
  • 시스템 및 기타 여러 가지 원인으로 인해 순간적으로 왜곡된 10%의 응답시간을 제외한 90% 응답시간과 평균 응답시간을 가장 의미 있는 응답시간으로 인정함
    예) 20번의 측정 회수 중에 90% 응답시간은 전체 중 가장느린10%를 제외한 가장 느린 응답시간, 즉 20번의 측정 회수니까 가장느린 2개의 응답시간을 빼고 3번째로 느린 응답시간이 90% 응답시간임(평균 내고 그런계산 따로 없음)

 

 

성능측정 지표

Think Time

시스템으로부터 Response를 받은 후 다음 Request를 발생시킬 때까지 간격

 

Request Interval

Request를 발생시키고 다음 Request를 발생시킬 때까지 간격으로 

Response Time + Think Time으로 구성됨

 

Pacing Time

성능테스트 도구에서 Request를 발생시키는 간격시간으로 Pacing 시간 내에 이전
Transaction 이 진행중인 경우 Request 는 Skip 됨 . 안정적으로 목표 TPS 부하를 달성하기 위해
Pacing Time 을 TPS * 110% 혹은 Pacing Time * 90% 로 설정함

 

 

 

처리량 Throughput

단위 시간당 시스템에 의해 처리되는 업무 처리량

업무처리량은 대상 시스템 및 지표에 따라 다양하게 측정될 수 있으며 N/W 에서는 주로 bps 사용
- MIPS(Millions of Instructions Per Second), PPS(Packet Per Second), BPS(Bits Per Second),
TPMC(Transaction Per Minute type C), TPS(Transaction Per Second) 등

 

TPS(Transactino per Second) : 사용자의 요청 (Request)에 대한 초당 처리 건수

사용자가 시스템에 요청하여 수행하는 최소 업무처리 단위로 응답시간 측정 대상

단위시간당 트랜젝션 수행수가 대표적인 성능측정 지표이며 , 일반적으로 TPS 를 사용

Transaction 은 내부적으로 여러 개의 Request 를 발생 시킬 수 있으나 사용자가 인식하는 Action
기준으로 함

 

 

부하발생주체

  • 사용자 : 인터넷 모바일 환경에서 불특정 다수 사용자가 시스템 접속하면서 대부분의 부하를 발생시킴
  • 프로그램 : Batch 등 일괄처리 프로그램이 주로 야간에 수행되나 일부 주간에 부하를 발생시킴
  • 장비 : 출입통제 단말기나 센서와 같은 장비에서 특정 이벤트가 발생시 트랜젝션을 발생시킴

 

사용자 구분

특정 기간을 기준으로 시스템을 사용하고 있는 상태에 따라 사용자를 구분할 수 있다.

 

 

총 사용자 (Named Users)

  • 대상 시스템에 접속(PC, 모바일 등)하여 사용할 수 있는 사용자수
  • 별도의 로그인을 하지 않는 대국민서비스 Web Site : 불특정 다수로 큰 의미가 없음
  • 계정이나 ID기반의 패쇄형 기업시스템 : 로그인 계정 수 또는 실제 조직원 수
  • License기반 시스템 : CRM, ERP 등 사용자 제한이 있는 경우 계약한 License 수
  • 시스템 접근 가능한 PC수가 제한된 경우 : 접근 가능 PC 대수

동시사용자 (Concurrent USer)

  • 해당 시간에 시스템을 실제로 사용 (조건입력 , 결과조회 , Request 발생) 하고 있는 사용자
  • 대상 시스템에 Connection 을 지속적으로 유지하고 있는 사용자
  • Web(HTTP) : Connectionless 방식으로 시스템에 로그인한 사용자 수와 불일치
  • Mainframe, C/S, TP Monitor 기반 시스템 : 시스템 접속 로그인 사용자 수

부하 사용자(Active User)

  • 해당 시간에 Request 를 발생시키거나 Response 를 기다리는 사용자
  • 현재 시스템이 처리하고 있는 Request 의 사용자로 실제 서버에 부하를 발생시키고 있는 사용자
  • 목표 TPS 를 달성하기 위해 Think Time 없이 계속 적으로 부하를 발생시키는 사용자

 

부하 산정 관련 공식

 

Concurrent User = Active User + Inactive User

 

n개 업무 전체 처리량 = (1/(

    a업무 비율             +    ...     +      n업무 비율    

a업무 최대처리량                          n업무 최대처리량

))

 

 

품질 특성 ISO 25010

Quality Characteristics

주특성

부특성

설명

기능성

기능 성숙도

Functional Completeness

명시된 요구사항 구현 정도

기능 정확도

Functional Correctness

정의된 정밀도에 따라 정확하게 결과를 제공하는 정도

기능 타당성

Functional Appropriateness

사용자의 목적 달성에 소프트웨어가 도움을 주는 정도

효율성

시간 반응성

Time-behavior

기능 수행 시 응답, 처리 시간과 처리율이 요구사항을 충족시키는 정도

요소 활용

Resource Utilization

기능 수행 시, 사용되는 자원의 유형 및 양이 요구사항을 만족 시키는 정도

기억 용량

Capacity

제품 혹은 시스템 파라미터(최근 사용자 수, 통신 대역폭, 데이터베이스가 저장할 수 있는 데이터 양 등)의 최대 한계가 요구사항을 만족시키는 정도

상호 운영성

공존성

Co-existence

다른 소프트웨어에 유해한 영향을 주지 않고 환경 및 자원을 공유하면서 요구된 기능을 효과적으로 수행하는 정도

상호 운영성

Interoperability

둘 혹은 그 이상의 시스템, 제품 혹은 구성요소가 정보를 교환하거나 교환된 정보를 이상 없이 사용할 수 있는 정도

사용성

타당성 식별력

Appropriateness recognisability

사용자의 요구에 적절한 기능인지 식별할 수 있는 정도

학습성

Learnability

사용자가 소프트웨어의 사용법을 배워 명시된 목적을 달성할 수 있는 정도

운용성

Operability

제품 혹은 시스템이 작동 및 제어를 쉽게 할 수 있는 정도

사용자 오류 보호

User error protection

소프트웨어가 발생한 오류로부터 사용자를 보호하는 정도

( 버튼 비활성화, 알림 창 등)

사용자 인터페이스 미학

User interface aesthetics

사용자 인터페이스가 사용자에게 만족스러운 정도

접근성

Accessibility

연령과 장애에 관계없이 사용될 수 있는 정도

신뢰성

성숙성

Maturity

소프트웨어 구성요소가 표준적 환경에서 신뢰도 요구를 충족 시키는 정도

가용성

Availability

사용자가 원하는 시간에 사용 및 접근이 가능한 정도

결점 완화

Fault tolerance

시스템, 제품 및 구성요소가 하드웨어 혹은 소프트웨어에 결함이 존재하더라도 이를 극복하고 의도한대로 작동해야 함

회복 가능성

Recoverability

중단 및 실패 발생 시, 제품 혹은 시스템이 데이터를 복구할 수 있는 정도

보안성

기밀성

Confidentiality

제품 혹은 시스템은 반드시 권한이 있는 데이터에만 접근 가능하도록 해야 함

무결성

Integrity

시스템, 제품 혹은 구성요소가 컴퓨터 프로그램 혹은 데이터에 대해 무단으로 접근 혹은 변경되는 것을 방지하는 정도

부인 방지

Non-repudiation

사건 및 행위 후에 부인하지 못하도록 행동 및 사건에 대해 입증되는 정도

책임성

Accountability

시스템 내의 각 개인을 유일하게 식별하여 언제 어떠한 행동을 하였는지 기록하여 필요 시 그 행위자를 추적할 수 있는 능력

진본성(인증성)

Authenticity

사건 및 행동에 대해 행위자임을 증명할 수 있는 능력

유지보수성

모듈성

Modularity

최소의 영향을 가진 개별 구성요소로 구성된 정도

재사용성

Reusability

자신이 하나 이상의 시스템에서 사용될 수 있고, 기타 자신을 구축하 수 있는 정도

분석성

Analyzability

시스템 변화에 대해 어떠한 영향을 받는지 평가 할 수 있는 보고서를 제공하는 정도

수정 가능성

Modifiability

제품 혹은 시스템이 장애 없이 효과적이고 효율적으로 수정될 수 있는 정도

시험 가능성

Testability

제품 사용전, 사용에 필요한 검증 기능 제공 여부

이식성

적용성

Adaptability

제품 혹은 시스템이 다른 하드웨어, 소프트웨어 혹은 기타 사용 환경에 효과적이고 효율적으로 적용될 수 있는 정도

설치성

Installability

제품 또는 시스템이 성공적으로 설치 및 제거될 수 있는 정도

대치성

Replaceability

제품이 동일한 환경에서 동일한 목적을 위해 다른 지정 소프트웨어 제품으로 대처될 수 있는 정도

'성능 테스팅' 카테고리의 다른 글

성능테스트 설계  (0) 2020.09.20
성능테스트 계획/분석  (0) 2020.09.17
테스트 개요  (0) 2020.09.17
로드러너 관련  (0) 2020.08.25