830 likes | 1.74k Views
웹 기반 소프트웨어 테스트. 웹 기반 프로그램의 테스트. 개인용 PC 와 인터넷 사용의 급증 전자 상거래의 발달 웹과 비즈니스의 연관성 사용자의 입장에서 웹 테스트가 필요하다 . 안전성과 편리성 제공. 웹 어플리케이션 테스트 분류 (1/2). 기능 테스트 (functionality testing) 명세서에 명시된 동작에 맞게 동작 하는가를 테스트 링크 , 폼 , 쿠키 , 웹 인덱싱 , 데이터베이스 , 자바 애플릿 , 액티브 X 등에 대한 테스팅
E N D
웹 기반 프로그램의 테스트 • 개인용 PC와 인터넷 사용의 급증 • 전자 상거래의 발달 • 웹과 비즈니스의 연관성 • 사용자의 입장에서 웹 테스트가 필요하다. • 안전성과 편리성 제공
웹 어플리케이션 테스트 분류(1/2) • 기능 테스트(functionality testing) • 명세서에 명시된 동작에 맞게 동작 하는가를 테스트 • 링크, 폼, 쿠키, 웹 인덱싱, 데이터베이스, 자바 애플릿, 액티브 X 등에 대한 테스팅 • 성능 테스트(performance testing) • 요구되는 성능에 대해 시스템의 감내 능력을 테스트 • 로드 테스트와 스트레스 테스트가 성능 테스트의 범주에 속한다 • 많은 사용자의 동시 접속, 많은 양의 데이터 유입, 실행 시간, 반응 시간, 커넥션 속도, 다운 시간 • 사용성 테스트(usability testing) • 다른 대부분의 산업에서는 규격이나 가이드 라인의 형태로 존재한다 • 웹 어플리케이션의 사용성은 사용자의 숙련도에 많은 영향을 받기 때문에 편리성 보증이 어렵다. • 웹 사이트에 기입 해야 할 사항 중 사용자가 필수 항목을 기입하지 않았다면, 에러 메시지를 출력
웹 어플리케이션 테스트 분류(2/2) • 적합성 테스트 (Compatibility testing) • 서로 다른 구성이나 배열, 예를 들어 클라이언트와 서버 (또는 외부 DB)에 대한 서로의 적합성을 테스트 • 완벽한 제어가 어렵고 또한 모든 가능한 조합을 테스트한다는 것은 불가능하기 때문에 테스트가 난해해진다. • 웹 페이지가 버전이 다른 브라우저나 운영체제에서 올바르게 동작하는가를 체크하는 것 등 • 보안 테스트 (security testing) • 정보 접근 규제, 사용자 신원에 대한 인증 등의 총괄적인 보안을 통해 사용자의 신원 정보가 안전하게 전송 • SSL, logfile, firewall, login에 대한 테스트
네비게이션 테스트 • 네비게이션 • 사용자가 얼마나 쉽고 빠르게 원하는 정보를 찾아 낼 수 있는가를 고려한 웹 페이지의 구성 • 네비게이션 테스트의 중요성 • 사이트의 성공과 실패의 중요한 열쇠- 사용자를 오래 머물 수 있게 • 기능과 성능에 대한 문제점도 발견
네비게이션 테스트 • 네비게이션의 종류 • 링크와 URL • 내부 링크 • 같은 웹 사이트의 웹 페이지의 링크 • 외부 링크 • 다른 웹 사이트의 웹 페이지를 참조하는 링크 • 앵커 • 방문자가 페이지 안의 특정한 위치로 바로 이동할 수 있게 해주는 것
네비게이션 테스트 • 깨진 링크를 방지하기 위한 지침
네비게이션 테스트 • 네비게이션의 종류 • 간접 링크 • 링크가 존재하지 않는 페이지 대신 나타내는 페이지 • 간접링크의 종류 • 공손한 표현 • 요청한 웹 페이지가 존재 하지 않을 때 검색 엔진을 연결하여 페이지를 검색 • 요청 페이지는 존재하지 않지만 같은 웹 사이트 안에서 근접한 것을 검색해서 제공 • 단점 • 꾸준한 관리가 필요하며, 기대 하지 못한 이벤트에 대해서 제어하기 어렵다
네비게이션 테스트 • 네비게이션의 종류 • 북마크 • 웹을 사용해서 특정 웹 페이지로 쉽게 찾아갈 수 있도록 페이지에 해당되는 링크를 목록 형태로 저장해 둔 것 • 해당 페이지의 주소를 입력하지 않고도 그 사이트로 빠르게 이동하기 위해 • 북마크 테스트를 위한 체크 리스트
네비게이션 테스트 • 네비게이션의 종류 • 프레임과 프레임 셋 • 프레임 • 하나의 화면에 여러 개의 문서가 나타날 때 각 문서가 나타나는 영역 • 프레임 셋 • 한 페이지에 한 개 이상의 프레임이 존재하는 것 • 로딩에 따르는 대역폭을 줄인다 • 사용자 인터페이스에 유연성을 제공하지만 잠재적인 사용성 문제점 • 프레임의 사용은 방문객에게 그들이 가진 행동이나 기술적 습관을 바꿀 것을 요구
네비게이션 테스트 • 프레임 테스트를 위한 체크 리스트
네비게이션 테스트 • 사이트 재구성 • 사이트 확장으로 인해 무질서가 증가하고 웹 페이지에 대한 네비게이션이 힘든 경우 실행 • 무질서의 정도에 대한 평가 방법 • 사용자에게 특정 정보를 찾게 함 • 도구를 이용 • Watchfire사의 Linkbot: 웹 페이지가 얼마나 깊게 연결되어 있는지를 테스트 • 네비게이션의 효율성 • 사용자가 최소한의 페이지를 이동해서 원하는 곳에 도착 하는가 • 효율성의 평가는 비슷한 컨텐츠의 다른 웹 사이트와 비교해 같은 일을 수행하기 위해서 얼마나 적은 페이지를 거치는 가로 파악
네비게이션 테스트 • 사이트 재구성 • 효율성 평가 B-Trade B&D
사용자 구동 홈페이지 자동 가격 조회 심볼 탐색 쇼핑카트 디스플레이 가격 디스플레이 심볼 선택 네비게이션 테스트 • 네비게이션 문서화 • 모든 카테고리에 대한 테스트와 네비게이션 테스트가 용이하도록 문서화 • 사이트 네비게이션 다이어그램 • 사이트 코딩 전후 모두 사용 가능 • 웹 사이트 네비게이션의 요구를 파악하기 용이 • 시나리오를 작성해서 사용자가 목적한 일을 마치기 위해 무엇이 필요한지 알 수 있다 • 접근하기 쉽지 않은 페이지, 방문객이 없을 페이지,긴 경로, 전체적인 네비게이션이 불편하고 서투르게 작성 된 것 을 찾아냄 • 보통 다이어그램은 20개의 페이지를 넘지 않아야 한다
네비게이션 테스트 • 네비게이션 문서화 • 사이트 네비게이션 매트릭스 • 계층적이지 않은 웹 사이트에서는 네비게이션 다이어그램 보다 효율적 • 체크 표시: 시작(from)의 페이지 리스트를 따라서 도착(to)에 이르는 접근 가능한 페이지를 의미 • 100개를 넘지 않는 페이지에 적합
사용성, 접근성 테스트 • 사용성(usability)테스트 • 잠재적인 웹 사이트의 사용자가 적당한 노력과 시간 안에 그들이 원하는 것을 찾을 수 있는 가를 측정하는 것 • 처음 또는 자주 사용하지 않는 사용자가 얼마나 쉽게 웹사이트 사용법을 습득하는가 • 몇 번의 시도를 통해서 방문자가 웹사이트의 특정 페이지를 찾는데 얼마나 시간이 걸리는지를 측정 • 접근성(accessibility) 테스트 • 얼마나 쉽게 웹 사이트의 본문 내용을 읽고 이해할 수 있는가를 측정 • 개인의 능력 또는 클라이언트 컴퓨터의 하드웨어나 소프트웨어 구성(configuration)을 말한다 • 문맹이나 좋지 않은 시력으로 접근성이 떨어지는 사람들을 위해서는 문자를 소리로 바꿔주는 장치들이 요구
사용성, 접근성 테스트 • 좋은 사용성, 접근성을 위해 • 기업이나 기관들은 사용자들의 방식을 이해하여야 한다 • 기업들은 자신들이 원하는 방식으로 사용자들을 몰아가지 말아야 한다 • in-house의 end-user와는 달리 인터넷 사용자들은 자유롭게 다른 웹 사이트를 선택 • 예: 개발자는 1280 *1024해상도의 20인치 모니터를 사용하며 사용자는 17인치 1024*768 해상도 모니터를 사용 • 사용자는 전체 화면을 보기 위해 스크롤 바를 이용해 위아래, 좌우로 이동 • 사용성과 접근성 테스트의 필요성 • 판매 감소로 인한 손실 vs. 사용성, 접근성에 대한 문제 해결 비용 • 판매 감소 손실 > 사용성, 접근성 해결 비용 • 사용자들이 그들이 원하는 것을 제대로 찾지 못하면, 기업은 약 50%의 잠재적 판매 손실
웹 사용성 테스트 • 웹 사용성 테스트 • 시스템 테스트(또는 사이트 수준 테스트)와 단위 테스트(또는 페이지 수준 테스트)의 두 가지 종류 • 시스템 테스트 • 정보구조, 네비게이션, 페이지 템플릿, 사이트 레이아웃, 일관된 그래픽, 링크방법, 검색가능성 등을 테스트 • 단위 테스트 • 개별 웹 페이지에서 발생할 수 있는 특별한 이슈나 문제와 관련 • 언제 사용자가 링크, 그래픽, 아이콘, 폼, 에러 메시지에 대해서 개발자가 의도한 것과 다르게 이해하는가 • 사용성 테스트는 개인적인 문제이기 때문에 객관적인 테스트가 중요
웹 사용성 테스트 • 다섯 가지 테스트 단계로 구성 • 단계 1: 목표를 정의한다 • 사용성 테스트를 통해서 무엇을 확인하고자 하는지를 결정 • 과제 완수를 위해서 얼마나 오랜 시간이 걸리는가 혹은 사용자가 얼마나 어려움을 겪는가에 대한 측정이 가장 효율적 • 단계 2: 테스트를 설정한다 • 사용성 테스트는 웹사이트의 사용성에 대한 정도를 객관적으로 측정 • 높은 비율로 잘못 선택되는 링크에 대해서도 관심을 가져야 한다 • 테스트 형식 • 실험(controlled laboratory), 현장 조사(field observation), 관찰 그룹(focus group), 설문(questionnaires), 의견조사(survey) 등 • 현장 조사는 테스트 전문가가 참여자들이 집이나 작업 환경에서 웹 사이트를 사용하는 것을 모니터링
웹 사용성 테스트 • 단계 3: 참가자를 선택한다. • 동료들을 참가자로 테스트 • 조직의 풍토에 익숙하다면 정확한 테스트 결과를 반영할 수 없다 • 참가자를 테스트 하는 것이 아니란 것을 명심해야 한다 • 사용성 테스트의 목적은 디자인 실패 지점이나 사용자들을 실패로 이르게 하는 요소를 찾아내는 것 • 단계 4: 테스트를 수행한다 • 단계 2에서 선택한 사용성 테스트의 형식이 어떻게 테스트를 수행하는지를 결정한다 • 통제된 환경 하에서 관리 • 단계 5: 리포팅 • 결과는 참가자들의 개인적 편견이나 믿을 수 없는 기억에 의해 변형되지 않은 정확한 결과여야 한다 • 테스트 결과가 웹 사이트 변동에 대하여 어느 정도 품질 보증할 수 있다면 책임자 또는 부서에 넘겨진다
사용성, 접근성 테스트 • 가독성(readability) • 사용자가 문자나 그림을 리뷰하고 이해하고 의미를 조합할 수 있는 능력 • 읽기 쉬움(legibility)이라는 특성과 함께 효과적이고 효율적인 커뮤니케이션을 위해서 중요한 요소 • 글자, 글자 크기, 글자 스타일, 색 조화, 배경 질감, 글자 간격과 같은 모든 것들이 웹 페이지 가독성과 연관이 있다 • 비례 간격 글자는 고정 간격 글자보다 읽기 쉽다
사용성, 접근성 테스트 • 가독성 측정 방법 (1) Gunning FOG 가독성 인덱스 (2) The Fry Graph 1. 웹 사이트에서 무작위로 100 단어 구절을 선택한다. 2. 문장 마다 평균 단어 숫자를 확인한다. 3. 어려운 단어(셋 이상의 음절 단어) 퍼센트를 확인한다. 4. 두 개의 결과를 더해서 0.4를 곱한다. 5. 계산된 결과는 문장을 쉽게 읽고 이해 할 수 있는 미국 학년의 최소레벨을 나타낸다. 참고> 미국의 학년은 6세는 1학년, 16세는 11학년이다 • 웹 사이트에서 무작위로 100 단어 구절을 선택한다. • 100단어의 평균 문장 수에 대비되는 음절 수의 평균을 그림에서 찾아 할당 • Fry Graph를 사용해서 나이를 짐작한다. • 결과의 정확도를 높일 수 있는 구절을 좀 더 웹 사이트로부터 선택한다.
사용성, 접근성 테스트 커브의 아래 포인트는 평균보다 긴 문장 길이를 의미하며 커브 위의 포인트는 과학 교재 같은 어려운 단어를 포함하는 텍스트를 나타낸다
사용성, 접근성 테스트 • 다중 언어 • 세계 시장에서 경쟁하기 위해서는 웹 사이트를 전세계의 사용자들이 사용할 수 있도록 구성하여야 한다 • 영문사이트는 전세계의 적은 퍼센트의 사람들에게만 수용가능 • 전세계적인 사용자를 위해서는 • 여러 개의 지역적인 웹 사이트 구축 • 한 개의 사이트에서 여러 언어를 지원 • 제2 외국어가 더해지면, 외국어 문서에 대한 충분한 증명을 할 수 있는 사람이나 서비스가 필요하다 • 번역한 웹 사이트를 역으로 영어로 번역 했을 때 영문과 근접 하다면 어느 정도 안전하다고 여긴다
사용성, 접근성 테스트 • 다중 언어 • 언어 통역(해석) • 공격적인 terminology에 대한 고려 • 단어 또는 구문들이 특정 지역에 사는 사람에게는 일반적으로 받아 들여지지만 다른 지역 사람에게는 무례하고 무지하게 여겨질 수 있다 • 아랍권의 웹에는 여성에 대한 사진이나 그림은 올리지 않는다 • 클라이언트측 언어 속성 • 방문자들은 브라우저의 언어 옵션을 사용해서 선호언어 선택 • 서버측의 언어 속성 • 다중 언어 개발과 테스트할 때 기준으로 어떤 HTML기준을 선택할지 신경 써야 한다 • 유니 코드는 65000 glyph를 지원하며 세계 여러 나라의 다양한 문자를 포함할 만큼의 충분한 문자의 수를 지원한다 • Cyberbit는 유니코드 문자 집합을 포함하고 있으며 세계 주요언어의 문자를 모두 포함하고 있다
사용성, 접근성 테스트 • 색상 조합 • 클라이언트 모니터의 기능을 뛰어 넘는 웹 페이지 색상의 사용으로 서로 다른 두 가지 색상이 같은 색상으로 디스플레이 될 수도 있다 • 그래픽에 많은 수의 색상이 사용될 수록 다운로드에 시간은 길어짐 • 클라이언트 환경에 웹 페이지를 맞춘다. • 색상 테스트 리스트
사용성, 접근성 테스트 • 화면 크기와 해상도 • 개발자가 고해상도 모니터를 사용하면 낮은 해상도의 화면에서는 웹 페이지가 크게 나타날 확률이 높다. • 불필요하게 수평 수직 스크롤 바를 움직여야 한다 • 서로 다른 브라우저나 버전일 때도 정확하게 화면이 표시되는지 테스트해야 한다 • 브라우저가 다르거나 버전이 달라도 여백의 공간이 다르다 • 사용자가 어떤 장치를 통해서 웹 사이트에 접속하고자 하는지 파악 • PDA 의 Palm은 일반적으로 160 *160 해상도, Windows CE는 240 * 320, 모바일 전화는 96 *65정도의 해상도
사용성, 접근성 테스트 • 접근성 • 장애가 있는 사람도 쉽게 웹 사이트를 접근할 수 있어야 한다. • 시각 장애 • 문자를 음성으로 바꾸어 주는 Home Reader(IBM)나 JAWS(Henter-Joyce)같은 도구 • 대표적인 접근성 테스트 도구 – bobby • W3C 가이드 라인을 준수하는지를 체크 • HTML 2.0, 3.0, 3.2, 4.0와 MS IE2.0 ~5.0, Netscape 1.1 ~ 4.5, 리눅스 2.5 ~ 2.7 등의 브라우저 사용이 가능한지 알 수 있다. • Bobby의 승인을 받은 웹 페이지는 ‘Bobby approved’표시 • Web Accessibility Initiative(WAI) • 접근가능을 정할 수 있는 가이드 라인과 체크 리스트를 제공 • W3C.org
사용성, 접근성 테스트 • 접근성 • 접근성 테스트 체크 리스트
사용성, 접근성 테스트 • 정보유출과 외부 감사 • 기관에서 사용하는 프로세서는 웹 사이트의 개인보호 정책과 충돌해서는 안 된다 • Public accounting profession은 WebTrustTM을 통해서 B2C 전자 상거래의 원칙과 정책을 개발 • WebTrust의 세가지 원칙 • Business practices disclosure • 트랜잭션 무결성 • 정보 보호 • 인증은 사용자가 웹 사이트를 사용할 때 안심할 수 있다. • 588 개 기업이 TRUSTe 인증마크를 받았고 47개의 기업들이 BBB(Better Business Bureau) 인증마크를 받았다. • 20개의 기업들이 WebTrust 마크를 받았다 (1999년 기준)
사용성, 접근성 테스트 • 정보유출과 외부 감사 • 프라이버시 체크 리스트
성능 테스트 • 성능 테스트의 필요성 • 시스템은 비즈니스가 요구하는 로드를 견뎌 낼만한 능력을 가져야 한다. • 오랜 시간 기다리게 된다면 사용자는 불편을 느낄 것 이다 • 로드 테스트 • 이미 정해진 로드 레벨을 견뎌내는가를 테스트 • 성능테스트 • 다양한 로드 레벨에서 성능의 변화를 체크하는 것 • 스트레스 테스트 • 시스템이 견딜만한 브레이킹 포인트까지 스트레스를 준다 • 성능 평가의 주요한 세 가지 요소 • 시스템 환경과 사용가능 한 자원 • 부하(workload) • 응답시간 (response time)
성능 테스트 • 성능 테스트 • 특정 웹 사이트가 제공하는 서비스 레벨에 대한 측정을 시도 • 하드웨어 용량(capacity) 계획과 확장 계획에(scalability) 도움 • 사전 준비 • 테스트 담당 • 테스트 엔지니어, 시스템 관리자, 네트워크 관리자, 사용자 등 • 측정을 위한 요구 • 안정적인 시스템 • 생산 환경, 도구, 프로세스 등 • 성능 테스트 절차 • 명세: 무엇을 어떻게 테스트 할지 테스트의 요구사항을 확인 • 준비: 디자인, 개발 스크립트, 데이터 준비, 환경 설정 • 실행: 테스트를 실행 • 분석: 시스템 자원, 툴, 테스트로부터 얻은 자료를 분석하여 제출
성능 테스트 (명세) • 성능 테스트의 종류 • 스모크/초벌 테스트 • 부하와 확장 계획 테스트 • 스트레스와 핫 스팟 (Hot Spot) 테스트 • 스파이크 테스트 • 무결성(Integrity) 테스트
성능 테스트 (명세) • 스모크 및 초벌 테스트 • 테스팅을 위해 소프트웨어 릴리즈가 준비 되었는지를 테스트 하는 것 • 간단한 매뉴얼 테스트 • 실행 전에 테스트의 범위를 확실히 하고, 환경의 공유된 자원을 확인 • 네트워크 대역폭 • ‘Sanity test’ , ‘Skim test’, ‘Crash test’, ‘Wash-down test’, ‘Drive by test’라고도 불린다 • 사례 • 성능 테스트의 모든 트랜잭션을 확인한다. 하한 값, 상한 값, 중간 값을 사용한 세 개의 스크립트를 작성 • 한 사람의 사용자의 모든 트랜잭션을 테스트 한다. • 두 명의 사용자의 모든 트랜잭션을 테스트 한다. 이것은 시스템의 안정성을 입증할 뿐 아니라 트랜잭션 준비 정도를 알 수 있다
성능 테스트 (명세) • 부하 테스트와 확장계획 테스트 • 부하테스트 • 짧은 시간 동안 실제 세계에서 예상되는 모델을 시도해 본다 • 주어진 시간 동안 사용자의 행동을 정확하게 나타내는지를 평가한다 • 테스트의 결과는 특정 하드웨어와 소프트웨어(웹 서버, 어플리케이션 서버, DB, 대역폭)의 조합이 성능요구에 적합한지를 확인하는데 도움이 된다
성능 테스트 (명세) • 부하 테스트와 확장계획 테스트 • 부하 테스트 체크 리스트 • 확장계획(scalability) 테스트 • 초기 로드는 계획의 점진적인 성장과 다른 요소들을 기초로 정의 • 시스템의 흡입력을 평가 할 수 있다 • 성능의 요구레벨에서의 시스템의 유지 시간을 대략적으로 알 수 있다
성능 테스트 (명세) • 스트레스와 핫 스팟 테스트 • 스트레스 테스트 • 가장 최악의 시나리오를 적용하여 짧은 시간 동안 기대치 보다 큰 로드를 부과한다 • 한계에 달했을 때 어떤 일이 발생하는지 알 수 있다 • 목적은 최악의 상황을 피하고자 하는 것 • 사례 • 동시에 많은 접속자들이 같이 특정 버튼을 누르도록 테스트하여 네트웍의 대역폭, 서버의 자원이 충분한지, 데이터베이스에 병목은 없는지 체크한다. • 핫 스팟 테스트 • 특정 지역에 집중되어 있는 문제를 테스트한다 • 사례 • 어느 증권사 사이트가 있는데 이 사이트는 초당 100개의 거래를 처리할 수 있다. 과연 이 사이트는 같은 주식에 대해서 초당 25개 이상의 거래를 처리 할 수 있는지 알아보는 테스트
성능 테스트 (명세) • 스트레스와 핫 스팟 테스트 • 스트레스 테스트 체크 리스트
성능 테스트 (명세) • 스파이크 테스트 • 웹 사이트에 예외적인 로드(spike)의 증가를 테스트 • 태풍을 예측하는 것은 스파이크 테스트와 유사 • 일부 스파이크는 인공적인 원인에서 비롯되기도 한다 • 바운드 테스트 • 스파이크 테스트의 일종 • 부하를 줄였다 늘였다 함으로써 얼마나 시스템이 부하에 대한 변화를 잘 처리하는지 테스트 • 스파이크 테스트 체크 리스트
성능 테스트 (명세) • 무결성 테스트 • 모든 로드에서 웹 사이트 기능이 보전되는지를 테스트 • 기능 테스트와 스트레스 테스트의 조합 • 모든 경우의 기능 변화를 테스트 하는 것으로 기능 테스트와 밀접한 관계가 있다 • IDS는 평상시에는 침입을 탐지하지만, 스트레스가 부과된 상태에서는 탐지율이 떨어지거나 못하는 상황이 발생한다
성능 테스트 (명세) • 테스트 지표 • 응답시간 • 작업을 시작해서 원하는 결과가 표시될 때까지의 시간 • 주로 퍼센트로 표시: 응답시간은 ‘N회를 95%의 시간으로 수행했다 • 웹사이트의 응답 시간 • 평균 < 5.0 초 • 95% < 10.0 초 • 99% < 12.5 초 • 95%~99% 웹 어플리케이션 컨트롤에 문제가 있다는 것을 의미
성능 테스트 (명세) • 테스트 지표 • 응답시간 서버응답시간 네트워크 서비스 시간 브라우저 반응 시간
성능 테스트 (명세) • 테스트 지표 • 부하(workload) • 시스템에 요구되는 트래픽 매니지먼트와 프로세서의 양을 의미 • 사용자, 어플리케이션, 자원의3가지가 고려 • 사용자의 행위를 처리할 어플리케이션의 요구, 시스템의 자원에 대한 이해를 가지고 시스템의 부하를 측정한다. • 사용자 프로파일 • 사용자가 웹 사이트에서 무슨 일들을 하고, 웹 사이트 성능에 영향을 주는 어떤 특성을 가지고 있는지를 아는데 도움 • 사용자의 작업, 생각하는 시간, 사이트의 이동 등의 여러 가지를 고려 • 테스트 모델이 더 현실과 유사할수록 정확한 사용자 프로파일을 얻을 수 있다
성능 테스트 (명세) • 테스트 지표 • 사용자 작업(user activities) • 자주 이용하는 기능 • 사용자들이 많이 행하는 기능을 중심으로 현실 세계를 반영한 테스트 스크립트를 만들어야 한다 • 50명의 사용자 중 1명만이 구매를 하는데, 브라우징과 구매의 비율을 절반으로 잡는 것은 비현실적이다. 50:1이 사용자 행위를 반영한 현실적인 비율이다. • 시스템 레벨에서의 성능 테스트는 긴 스크립트를 이용한 전체 사용자 세션 • unit 레벨 테스트(예: 웹 사이트의 컴포넌트)는 짧고 집중적인 스크립트를 사용하여 분석
성능 테스트 (명세) • 테스트 지표 • 생각하는 시간(think time) • 현재 페이지의 마지막 데이터 패킷을 받은 시점으로부터 새로운 페이지를 요구하는 시간 • 현재의 페이지에서 다음 페이지로 넘어갈 때 정지기간 • 숙달된 사용자는 정지기간이 짧을 것이고 그렇지 못한 사용자는 다음페이지의 로딩을 시도할 때까지 오랜 시간이 걸리 것이다 • 사이트 포기(site abandonment) • 브라우저가 완료 될 때까지 기다리지 않고 다른 페이지로 이동 • 현실성을 고려해서 테스트 스크립트에도 사이트 포기를 반영 • 전송 속도와 대역폭 • 웹 어플리케이션의 종류에 따라 접속 속도에 영향 • 모뎀을 사용하는 곳에서는 중요하게 고려되어야 할 사항
성능 테스트 (준비) • 테스트 준비 단계 • 테스트 스크립트와 데이터를 얻는다. • 테스트 아키텍처와 환경을 명시한다. • 실행 로드를 확인한다. • 도구, harness, 드라이버를 선택한다. • 스크립트와 데이터 얻기 • 데이터의 요구를 확인 • 스크립트를 위하여 필요한 데이터가 로컬 DB파일인지, 웹 DB 파일인지, 레거시 DB파일인지를 파악 • 이후에 데이터의 출처를 확인 • 도구로부터 자동생성이 된 것인지 또는 수동으로 생성된 것인지 파악 • 스크립트는 반복이 없는지 살펴 본다 • 레거시 시스템, DB, Back Office application에 대한 접근이 정확한지 주의 깊게 체크
성능 테스트 (준비) • 환경 명시 • 현실과 가까운 환경을 구축 • 최소의 테스트 시스템을 주요한 아키텍쳐 환경에 반영 • 테스트 시스템은 닮은 꼴의 아키텍쳐 • 동일한 형의 시뮬레이션 환경에서 테스트 • 양이 같아야 한다는 것이 아닌 유형과 수가 같아야 한다 • 실제 로드는 방화벽이나 proxy 서버를 거쳐가므로 이러한 종류의 플랫폼 역시 성능 테스트에 포함되어야 한다. 절충 (compromise) 최소 (miniature) 로드 생성기 모든 범위 (Full scale)
성능 테스트 (준비) • 실행 로드 • 로드의 레벨을 정하고 로드 수행 방식을 선택 • 수동식 • 범위 선정이 어렵고 여러 번 반복과 아주 큰 로드에 대해서는 테스트 할 수 없다 • 소프트웨어나 하드웨어를 이용 • 사용법을 배우고 지속적인 유지개발이 필요 , 로드에 대해서 제어가 가능하고 비용이 절감 • ASP(Application Service Provider)를 이용 • 큰 테스트의 비용절감과 유지비용이 적고 위험을 낮출 수 있다. 테스트를 위해서 숙련도가 요구되는 단점이 있다. • 초기 테스트(1~5 가상 사용자)는 수동으로 실행 • 중간 테스트(5~100의 가상 사용자)는 제작하거나 로드 생성기 사용 • 가상의 사용자가 100명 이상이 되는 마지막 테스트는 ASP를 주로 이용한다
성능 테스트 (준비) • 도구, harness, 드라이버를 선택 • 가상 사용자(virtual user) 또는 가상 클라이언트(virtual client) • 사용자들이 연결을 시도하는 것처럼 보여지게 하는 것 • 탐색 클라이언트(probing client) • 가상 사용자들의 자원 요구 계산 예시 • 가상 사용자의 자원 요구량 • 스크립트의 크기, 쿠키의 사용 여부, 웹 페이지의 암호화 사용 여부 • 각각 가상 사용자들의 자원 요구량 : 2M • 사용 컴퓨터 수 : 4 PCs • 컴퓨터의 램 용량 : 64MB • 수용가능 사용자 수: 4 * 64/2=128