개요
소프트웨어 품질은 신뢰성, 기능 및 성능을 포함하여 다양한 차원으로 평가됩니다(개념: 품질 차원
참조). 워크로드 분석 모델(중간 산출물: 워크로드 분석 모델 참조)은 응용프로그램 및 시스템 성능에 적용하거나 영향을 주는 다양한 변수와 성능을
평가하는 데 필요한 척도를 식별하고 정의하기 위해 작성됩니다. 모델을 구성하는 워크로드 프로파일은 하나 이상의 테스트 환경 구성 하에 테스트 대상 항목에 대하여 시뮬레이트할 조건의 후보를 나타냅니다. 워크로드 분석
모델은 다음 역할에 사용됩니다.
-
테스트 분석가(역할: 테스트 분석가 참조)는 워크로드 분석 모델을 사용하여 테스트 아이디어를 식별하고 다양한 테스트의 테스트
케이스를 정의합니다.
-
테스트 디자이너(역할: 테스트 디자이너 참조)는 워크로드 분석 모델을 사용하여 적절한 테스트 접근 방식을 정의하고 다양한 테스트에
대한 테스트 용이성 요구를 식별합니다.
-
테스터(역할: 테스터 참조)는 워크로드 분석 모델을 사용하여 테스트 목적을 더 잘 이해한 후 테스트 실행을 적절히 구현,
실행 및 분석합니다.
-
사용자 대표(역할: 이해 당사자 참조)는 워크로드 분석 모델을 사용하여 워크로드의 적절성 및 해당 워크로드 분석 모델에 대하여
시스템 동작을 효과적으로 평가하는 데 필요한 테스트를 평가합니다.
워크로드 분석 모델에 포함된 정보는 다음 기본 영역에서 특성 및 속성에 중점을 둡니다.
-
테스트 중에 실행하고 평가해야 할 유스 케이스 시나리오(또는 인스턴스. 중간 산출물:
유스 케이스 참조)
-
테스트 중에 시뮬레이트/에뮬레이트해야 할 액터(중간 산출물:
액터 참조)
-
워크로드 프로파일 - 동시 액터 인스턴스의 수 및 유형, 해당 액터 인스턴스에 의해 실행된 유스 케이스 시나리오 및 각 유스 케이스 시나리오와 연관된 온라인 응답 또는 처리량을 나타냄
-
테스트 실행 및 평가 시 사용되는 실제, 시뮬레이트 또는 에뮬레이트된 테스트 환경 구성(중간 산출물: 테스트 환경 구성 참조). 또한 중간 산출물: 소프트웨어 아키텍처 문서에서 테스트 환경 구성의 기초를 형성하는 배치 보기를 참조하십시오.
다양한 워크로드 하에서 기능할 때 테스트 대상의 특성 및 동작을 측정하고 평가하기 위한 테스트를 고려해야 합니다. 이 테스트를 성공적으로 디자인, 구현 및 실행하기 위해서는 이 워크로드 프로파일에 대한 실제적 및
예외적 데이터를 모두 식별해야 합니다.
이 테스트 유형에 대한 시나리오 선택 시 유스 케이스의 두 가지 측면을 고려합니다.
-
핵심 유스 케이스는 테스트에서 측정 및 평가해야 할 핵심 유스 케이스 시나리오를 포함합니다.
-
중요한 유스 케이스는 핵심 유스 케이스 시나리오의 동작에 영향을 줄 수 있는 유스 케이스 시나리오를 포함합니다.
테스트 대상에 구현되는 유스 케이스 시나리오가 모두 이 테스트에 필요하지는 않습니다. 핵심 유스 케이스는 해당 동작을 측정 및 평가하는 데 테스트의 초점을 둔 유스 케이스 시나리오를 포함합니다.
핵심 유스 케이스를 식별하기 위해 다음 기준을 하나 이상 만족시키는 해당 유스 케이스 시나리오를 식별하십시오.
-
워크로드 프로파일에 따른 측정 및 평가를 필요로 함
-
하나 이상의 최종 사용자(액터 인스턴스)에 의해 자주 실행됨
-
높은 시스템 사용률을 나타냄
-
중요한 시스템 자원을 이용함
테스트에 포함할 핵심 유스 케이스 스캐너 목록을 작성하십시오. 이 유스 케이스 스캐너가 식별됨에 따라 유스 케이스 이벤트 플로우를 검토합니다. 유스 케이스 시나리오가 실행될 때 액터(유형)와 시스템 간에 특정
이벤트 시퀀스 식별을 시작하십시오.
또한 다음 정보를 식별하거나 확인하십시오.
-
유스 케이스의 전제 조건(예: 데이터 상태(존재하거나 존재하지 않는 데이터) 및 테스트 대상의 상태)
-
한 유스 케이스 시나리오부터 다음 유스 케이스 시나리오까지 변함없이 동일한 데이터 또는 달라야 하는 데이터
-
유스 케이스와 다른 유스 케이스 간에 관계(예: 유스 케이스가 수행되는 시퀀스)
-
유스 케이스의 동시 인스턴스 수 및 각 시나리오가 시스템에 주는 총 로드 백분율과 같은 특성을 포함한 유스 케이스 시나리오의 실행 빈도.
테스트의 기본 초점에 해당하는 핵심 유스 케이스 시나리오와는 달리, 중요한 유스 케이스 시나리오는 핵심 유스 케이스 시나리오의 성능 동작에 영향을 줄 수 있는 시나리오입니다. 중요한 유스 케이스 시나리오는 다음
기준을 하나 이상 만족시키는 시나리오를 포함합니다.
-
핵심 유스 케이스(종속자 전제 조건 또는 사후 조건)를 실행하기 전이나 후에 실행해야 함
-
하나 이상의 액터 인스턴스에 의해 자주 실행됨
-
높은 시스템 사용률을 나타냄
-
중요한 시스템 자원을 요구함
-
핵심 유스 케이스 시나리오가 실행되는 동안 배치된 시스템에서 일상적으로 실행됨(예: 전자 우편 또는 배경 인쇄)
중요한 유스 케이스 시나리오가 식별되어 나열됨에 따라 위의 핵심 유스 케이스 시나리오에 대해 수행된 유스 케이스 이벤트 플로우 및 추가 정보를 검토하십시오.
성능 테스트를 성공적으로 완료하기 위해서는 핵심 및 중요한 유스 케이스 시나리오를 실행하는 액터를 식별하는 작업 뿐만 아니라 액터 동작을 시뮬레이트/에뮬레이트하는 작업도 필요합니다. 다시 말해서, 액터의 한
인스턴스는 동일한 유스 케이스 시나리오를 해당 액터의 또 다른 인스턴스로 실행하는 동안 프롬프트에 응답하기까지 더 오래 걸리고 다른 데이터 값 입력하는 등 테스트 대상과 다르게 상호작용할 수 있습니다. 아래의 단순
유스 케이스를 고려하십시오.
ATM 시스템의 액터와 유스 케이스.
유스 케이스 시나리오를 실행하는 "고객(Customer)" 액터의 첫 번째 인스턴스는 숙련된 ATM 사용자일 수 있고, 한편 "고객" 액터의 제2의 인스턴스는 ATM 사용 경험이 없을 수 있습니다. 숙련된 고객은
ATM 사용자 인터페이스를 신속하게 탐색하고 각 프롬프트를 읽지 않아도 단추를 훤히 알고 누르기 때문에 시간을 거의 소비하지 않습니다. 하지만 서투른 고객은 각 프롬프트를 읽고 응답하기까지 정보를 해석하는 데
시간이 더 걸립니다. 실제적 워크로드 프로파일은 테스트 대상 동작에 대한 정확한 평가를 보장하기 위해 이 차이를 반영합니다.
위에서 식별된 각 유스 케이스 시나리오에 대해 액터를 식별하는 작업부터 시작하십시오. 그 다음, 각 유스 케이스 시나리오를 실행할 수 있는 다양한 액터 프로파일을 식별하십시오. 위의 ATM 예제에서 다음 액터
스테레오타입을 포함할 수 있습니다.
-
숙련된 ATM 사용자
-
서투른 ATM 사용자
-
ATM 사용자의 계정은 ATM의 은행 네트워크 "내부에" 있습니다(사용자의 계정은 ATM을 소유하는 은행의 계정임).
-
ATM 사용자의 계정은 ATM의 은행 네트워크 외부에 있습니다(경쟁 은행).
각 액터 프로파일에 대해 다음과 같이 다양한 속성 및 값을 식별하십시오.
-
대기 시간 - 액터가 테스트 대상의 개별 프롬프트에 응답하는 데 걸리는 기간
-
입력 비율 - 액터가 인터페이스와 상호작용하는 비율
-
요청 속도 - 액터가 테스트 대상에게 요청하는 속도
-
반복 계수 - 유스 케이스 또는 요청이 차례로 반복되는 횟수
-
상호작용 방법 - 액터에 의해 사용되는 상호작용 방법(예: 키보드를 사용한 값 입력, 필드에 기록, 단축키 사용 또는 마우스를 사용한 "지시하여 클릭하기", "잘라내어 붙여넣기" 등).
또한 각 액터 프로파일에 대해 해당 워크로드 프로파일을 식별하고 실행한 모든 유스 케이스 시나리오와 이 시나리오를 실행하는 액터가 들인 시간의 백분율 또는 노력의 비율을 지정하십시오. 이 정보 식별은 실제적인
로드를 식별하고 작성하는 데 사용됩니다(아래의 로드 및 로드 속성 참조).
또한 환경을 고유하게 식별하는 테스트 환경 구성의 특정 속성 및 변수도 동작의 측정 및 평가에 영향을 주므로 식별해야 합니다. 이 속성은 다음을 포함합니다.
-
실제 하드웨어(CPU 속도, 메모리, 디스크 캐싱 등)
-
배치 아키텍처(서버의 수, 처리의 분배 등)
-
네트워크 속성
-
테스트 대상에 동시에 설치 및 실행될 수 있는 기타 소프트웨어 및 유스 케이스
테스트에 포함 사항으로 고려해야 할 시스템 속성 및 변수를 식별하고 나열하십시오. 이 정보는 다음과 같이 여러 소스에서 얻을 수 있습니다.
이전에 설명한 대로 워크로드는 테스트 대상의 동작에 영향을 주는 중요한 요인입니다. 대상 동작을 평가하는 데 사용할 워크로드 프로파일을 정확히 식별해야 합니다. 일반적으로 워크로드를 수반하는 테스트는 각각 아래에
설명된 속성의 변동을 나타내는 다양한 워크로드 프로파일을 사용하여 여러 번 실행됩니다.
-
테스트 대상과 상호작용하는 동시 액터 인스턴스의 수
-
테스트 대상과 상호작용하는 액터의 프로파일
-
각 액터 인스턴스에 의해 실행된 유스 케이스 시나리오
-
각 핵심 유스 케이스 시나리오의 실행 빈도 및 실행 반복 빈도
테스트 대상의 성능을 평가하는 데 사용된 각 워크로드 프로파일에 대해 위의 각 변수의 값을 식별하십시오. 다양한 로드의 각 변수에 사용된 값은 액터를 관찰하거나 인터뷰함으로써 파생되거나 사용 가능한 비즈니스 유스
케이스 모델 에서 파생될 수 있습니다. 다음 워크로드 프로파일 중 하나 이상 정의하는 것은 흔히 있는 일입니다.
-
최적 - 가장 가능성이 많은 배치 조건을 반영하는 워크로드 프로파일(예: 시스템과 상호작용하고, 핵심 유스 케이스 시나리오만 실행하고, 테스트 중에 최소 추가 소프트웨어 및 워크로드가 실행되는 최소 액터
인스턴스 수).
-
평균(또는 정상) - 예상 또는 실제 평균 사용법 조건을 반영하는 워크로드 프로파일.
-
순간 최대 - 정상 조작 중에 단기간 동안 일어나는 예상 또는 실제의 일시적인 대량 사용 조건을 반영한 워크로드 프로파일.
-
최대 - 예상 또는 실제 대량 사용 조건을 반영하는 워크로드 프로파일(예: 고용량의 유스 케이스 시나리오를 실행하고 테스트 중에 많은 추가 소프트웨어 및 워크로드가 실행되는 최대 액터 인스턴스 수).
워크로드 테스트가 스트레스 테스트를 포함하는 경우(개념: 성능 테스트
및 기법: 테스트 유형 참조) 여러 개의 추가 로드가 식별됩니다. 이때 각 로드는 배치된 시스템에서 예상되는 정상 용량을 초과하여 비정상적이거나 예상치
못한 상태로 시스템의 특정 측면을 대상화합니다.
성공적인 워크로드 테스트는 테스트 판정 및 워크로드 동작 평가가 완료된 경우에만 달성될 수 있습니다. 워크로드 측정 및 기준을 식별할 때는 다음 요인을 고려해야 합니다.
-
수행해야 하는 측정은 무엇입니까?
-
테스트 대상 또는 유스 케이스 실행에서 주요 측정점은 어디/무엇입니까?
-
허용 가능한 성능 동작을 판별하는 데 사용되는 기준은 무엇입니까?
성능 측정
테스트 실행 중에 많은 다른 측정을 수행할 수 있습니다. 수행할 중요한 측정을 식별하고 해당 측정이 가장 중요한 측정인 이유를 입증하십시오.
모니터되거나 캡처된 비교적 공통된 성능 동작이 아래에 나열되어 있습니다.
-
테스트 스크립트 상태 - 테스트 실행 현재 상태 또는 진행상태의 그래픽 표시
-
응답 시간/처리량 - 응답 시간 또는 처리량(일반적으로 초당 트랜잭션으로 나타냄)의 측정 또는 계산.
-
추적 - 액터(테스트 스크립트)와 테스트 대상 간에 메시지/대화 또는 실행 중 데이터 플로우/프로세스 플로우 캡처링.
추가 정보는 기법: 테스트의 주요 척도를 참조하십시오.
주요 성능 측정점
위의 유스 케이스 및 유스 케이스 속성 섹션에서 유스 케이스 및 관련 시나리오가 모두 성능 테스트용으로 실행되지는 않는다는 점을 지적했습니다. 마찬가지로, 실행된 각각의 유스 케이스 시나리오에 대해 성능 척도가
모두 작성되는 것은 아닙니다. 일반적으로 특정 유스 케이스 시나리오만 측정을 위해 대상화되거나, 유스 케이스 시나리오 내에 성능 동작을 평가하기 위해 측정할 특정 이벤트 시퀀스가 있을 수 있습니다. 성능 동작
측정을 위해 가장 중요한 시작 및 종료 "점"을 선택하는 데 주의하십시오. 가장 중요한 것은 일반적으로 가장 명백한 이벤트 시퀀스 또는 소프트웨어나 하드웨어의 변경을 통해 직접 적용할 수 있는 이벤트 시퀀스입니다.
예를 들어, 위에서 식별된 ATM - 현금 인출 유스 케이스에서 액터가 인출을 시작하는 지점부터 유스 케이스가 종료되는 지점까지 전체 유스 케이스 인스턴스의 성과 특성을 측정할 수 있습니다. 즉, 액터가 은행
카드를 받으면 아래 다이어그램에 검은색 "총 경과 시간" 선으로 표시된 바와 같이 ATM은 이제 다른 카드를 승인할 준비가 되어 있습니다.
그러나 총 경과 시간의 원인을 제공한 이벤트 시퀀스는 많다는 사실에 주목하십시오. 개중에는 제어할 수 있는 이벤트 시퀀스도 있지만(예: 카드 정보 읽기, 카드 유형 확인, 은행 업무 시스템과 통신 시작 등, 위의
항목 B, D 및 E) 제어할 수 없는 시퀀스도 있습니다(예: 액터가 PIN을 입력하거나 인출액을 입력하기 전에 프롬프트를 읽는 이벤트, 항목 A, C 및 F). 위의 예제에서 총 경과 시간 측정 외에도 시퀀스
B, D 및 E에 대한 응답 시간을 측정합니다. 이 이벤트는 액터에게 가장 명백한 응답 시간이고 배치용 소프트웨어/하드웨어를 통해 적용할 수 있기 때문입니다.
성능 측정 기준
주요 성능 척도 및 측정점이 식별되면, 성능 기준을 검토하십시오. 성능 기준은 보충 스펙에 지정되어 있습니다(중간 산출물: 보충 스펙을 참조). 필요한 경우 기준을 개정하십시오.
흔히 성능 측정에 사용되는 몇 가지 기준은 다음과 같습니다.
-
응답 시간(또는 온라인 응답)
-
처리량 비율
-
응답 백분위수
초당 측정된 온라인 응답 시간 또는 처리된 트랜잭션 또는 메시지 수별로 측정된 트랜잭션 처리량 비율은 주 기준입니다.
예를 들어, 현금 인출 유스 케이스 사용 시 기준은 "이벤트 B, D 및 E(위의 다이어그램 참조)는 각각 3초(도합 9초) 이내에 발생해야 함"으로 지정됩니다. 테스트 중에 B, D 또는 E로 식별된 이벤트 중
어느 하나라도 지정된 3초 기준보다 더 오래 걸리는 것을 관찰한 경우, 실패임을 나타냅니다.
백분위수 측정은 응답 시간 및/또는 처리량 비율과 결합하여 지정된 기준을 벗어난 측정을 "통계적으로 무시"하는 데 사용됩니다. 예를 들어, 유스 케이스의 성능 기준은 "90번째 백분위수에 해당하는 이벤트 B, D
및 E는 각각 3초 이내에 발생해야 함..."으로 지정되었습니다. 테스트 실행 중 모든 성능 측정의 90%가 지정된 기준 내에서 발생한다고 측정한 경우, 실패 없음으로 표시됩니다.
|