제목: 서버 로그로부터 유용한 테스트 정보 추출(Mining Gold from Server Logs)
저자: Karen Johnson
문서유형: 잡지 기사(총 5 페이지), 2001년
미국 전역에 온라인 주문 식품을 배송하는 사이트인 Peapod에서 웹 서버 로그로부터 테스팅 정보(예, 고객의 웹사이트 사용 패턴, 일일 트래픽 등)를 얻어 활용하는 사례를 기술한 자료
효율적 테스팅을 위해 웹 서버 로그 활용
- 웹 서버의 로그(Web server’s logs)는 고객이 실제 웹 사이트를 어떻게 사용하는지를 드러내는 데이터를 포함
- 품질보증(QA) 팀이 기 존재하는 사이트의 웹 서버 로그를 활용하여 사용자 통계치에 기반한 브라우저 테스팅을 구성하고, 웹 사이트의 테스팅 커버리지를 높이고, 더 현실적인 부하 테스팅을 계획할 수 있음
웹 서버 로그를 활용한 테스팅 초점 좁히기
- 테스팅을 해야 할 것이 주어진 테스팅 시간 보다 더 많은 경우가 일반적이므로 모든 가능한 구성(고객이 사용하는 모든 운영체제와 브라우저 버전의 조합)에서 웹 사이트의 모든 기능을 테스트 하는 것은 불가능함
- 따라서 테스트 할 필요가 있는 대상을 가장 핵심적인 것으로 줄일 수 있는 전략이 필요함. 이런 전략 중 하나는 웹 서버 로그를 분석하여 어떤 브라우저와 운영체제(OS) 조합이 고객에게 가장 인기 있는지 식별하는 것이고, 또 다른 전략은 웹 사이트의 어떤 측면이 OS나 브라우저 버전(또는 이 둘의 조합)의 변형에 취약한지를 파악하여 적절하게 테스팅을 계획하는 것이다. 즉, 가장 흔한 구성(configurations)을 결정하고 리스크에 기반하여 테스팅 노력을 집중함으로써 QA 팀의 테스팅 노력을 최적화할 수 있다.
- 예를 들어, Peapod 고객들이 700 가지 이상의 OS-브라우저 조합을 사용하지만 두 가지 셋업이 대다수를 차지함(사용자의 48%는 특정 Windows 버전에서 Internet Explorer 5x를 쓰고, 다른 26%는 Windows NT에서 Netscape 4x를 사용). 따라서 테스팅 시간이 부족한 경우 QA가 이 두 구성에 노력을 집중함. 나머지 조합에 투자하는 시간도 웹 서버 로그로부터 얻은 고객 사용 통계치(customer usage statistics)에 기반하여 결정한다.
- 아래 표는 Peapod에서 정기적으로 테스트 하는 OS-브라우저 조합을 나타냄(이 버전들을 결정하는데 있어서 Peapod 서버 로그를 참고하고 또한 IE와 Netscape 브라우저 무료 다운로드 사이트의 다운로드 수를 참고함)
운영 체제(OS) |
브라우저 |
Windows NT |
IE 5의 마이너 버전들 |
Windows NT |
IE 4의 마이너 버전들 |
Windows NT |
Netscape 4.75 |
Windows NT |
Netscape 4.52 |
Windows 98 |
IE 5의 마이너 버전들 |
Windows 98 |
IE 4의 마이너 버전들 |
Windows 98 |
Netscape 4.75 |
Windows 98 |
Netscape 4.52 |
Windows 95 |
IE 5의 마이너 버전들 |
Windows 95 | IE 4의 마이너 버전들 |
Windows 95 | Netscape 4.75 |
Windows 95 | Netscape 4.52 |
Macintosh | IE 5의 마이너 버전들 |
Macintosh | Netscape 4.75 |
WebTV | WebTV 브라우저 |
[Peapod에서 테스트 대상으로 삼는 가장 공통적인 OS-브라우저 조합]
다수의 브라우저-운영체제 조합에서 테스팅이 요구되는 특징들(features)
- 상위 몇 개의 가장 흔한 환경으로 테스팅 범위를 줄였다 하더라고 각각의 구성에서 모든 테스트를 실행할 시간이 없을 수 있음. 다행인 것은 모든 테스팅이 웹에 특정하지(web specific)는 않으므로 그럴 필요가 없다는 점이다.
- 예를 들어, 기존 온라인 등록 페이지에 새로운 데이터 입력 필드를 추가하고 해당 필드의 데이터를 서버 상에서 검증한다고 가정했을 때, 검증 및 데이터베이스로의 신규 “write” 오퍼레이션이 완전히 서버상에서 일어나므로 이 신규 필드가 사용자의 OS나 브라우저 버전에 의해 영향을 받지 않는다. 따라서 해당 필드는 하나의 테스트 환경에서만 검증해도 충분하다. 이렇게 사이트의 어떤 측면이 단일 환경에서 테스트 되어도 되는지 식별하는 것은 테스트 시간을 크게 줄일 수 있는 전략임
- 반면 OS-브라우저 조합이 신규 기능/특징이 정확하게 동작하는지에 영향을 줄 수 있어서 여러 환경에서 수행될 필요가 있는 측면도 존재함. 아래는 다수의 OS-브라우저 조합에서 테스팅 될 필요가 있는 7개 항목임(Peapod에서 테스팅 경험을 바탕으로 식별함)
① JavaScript: 자바 스크립트가 브라우저의 코드를 실행. 이 코드는 브라우저에 특정하므로 사이트 내에서 JavaScript가 사용되는 모든 장소(예, 버튼 클릭, 이미지 클릭, 필드 검증, form 검증)를 식별할 필요가 있음. Peapod에서는 위 표에 나온 OS-브라우저 조합 각각에서 JavaScript 사용을 테스트 하며 또한 브라우저에서 JavaScript가 비활성화(disabled) 일 때도 테스트 한다.
② Forms: Form이 검증(form validation)을 위해 JavaScript를 사용하는 경우 OS-브라우저 조합 각각에서 해당 form이 테스트 될 필요가 있음(JavaScript 상의 일반적 경고는 충분하지 않으며, 모든 form이 어떤 변화를 더하므로 form에 특별한 관심을 기울여야 함)
③ Pages heavy with HTML formatting: HTML 포매팅으로 가득 찬 페이지는 IE와 Netscape에서 다르게 보일 수 있다. Peapod에서는 IE 4, IE 5, Netscape 4 각각의 하나의 버전에 대하여 포맷팅을 체크함. 빠르게 흩어보기(look/see) 일 뿐 많은 시간을 소요하는 주요 테스트는 아님
④ User Interface: 사이트가 Cascading Style Sheets, Active X 컴포넌트, 브라우저 플러그인 등을 사용하는 경우 이런 신기술을 지원하는 브라우저에서 뿐만 아니라 지원하지 않는 브라우저에서도 테스트 할 필요가 있음
⑤ Security: 사이트가 secure 체크아웃이나 신용 카드 페이지를 가지면 사용자가 해당 페이지에 secure 모드로 접근할 수 있는지 검증해야 함. 어떤 이커머스 사이트에서나 보안은 핵심 컴포넌트이므로(그리고 OS-브라우저 조합에 따라 secure 페이지 동작이 달라질 수 있으므로) secure 페이지가 각 환경에서 주의 깊게 체크될 필요가 있다. Peapod에서는 Win98와 WinNT 상에서 IE 4, IE 5, Netscape 4 각각의 하나의 버전에 대하여 보안을 체크하는 것을 목표로 함. 경험에 따르면 Netscape 브라우저의 마이너 버전에서는 보안 버그보다 JavaScript 버그가 더 문제이므로 보안 이슈를 위해 Netscape 4의 여러 버전을 테스트하는 것은 고집하지 않음
⑥ Pop-Up Windows: 사이트가 팝업 윈도우를 사용하는 경우 이를 각각의 브라우저 상에서 주의 깊게 테스트할 필요가 있음. WebTV는 팝업 윈도우를 취급하지 않음을 알아야 함
⑦ Cookies: 사이트가 쿠키를 사용하는 경우 IE 4, IE 5, Netscape 4 각각의 하나의 버전에 대해서 테스트 할 필요가 있음. 또한 쿠키가 비활성화된 경우의 테스팅도 수행되어야 함
회귀 테스팅
- Peapod에서는 각 릴리즈를 위한 새로운 기능(특징)의 테스트에 더불어 회귀 테스팅도 계획한다. 예를 들면, 아이템 찾기(Find Item)이나 체크아웃(Checkout) 같은 웹 사이트 기능이 매 릴리즈마다 꼭 재테스트 되도록 한다. 어떤 환경에서 어떤 기능(특징)이 반드시 테스트 되어야만 하는지 보여주는 커버리지 매트릭스를 생성하여 활용함
- 이 매트릭스 전체를 완성할 시간이 없으면(또는 핵심 환경을 커버할 시간도 없다면) Peapod의 QA 팀은 인기 높은(popular) 환경과 취약한(fragile) 환경에 집중한다. 예를 들면, 가장 공통적인 환경인 IE 5 대하여 테스트 하고, 또한 사용자가 1%도 되지 않지만 그 취약성(fragility) 때문에 WebTV에 대하여도 테스트 한다.
사이트 패턴 인지하기
- 로그의 데이터는 실질적인 사이트 패턴을 파악하는데 도움이 될 수 있음. 예를 들면, “어떤 URL이 가장 자주 방문되는지” 또는 “어떤 URL에 사용자가 가장 적게 머무르는지” 등이 드러남. QA팀은 이런 “high exit” 페이지들을 검토하여 “해당 페이지의 그래픽 또는 콘텐츠를 개선할 필요가 있는가?”, “성능이 해당 URL을 위해 적절한 수준인가?”, “기타 사용성 이슈가 있는가?” 등의 평가를 내릴 수 있다.
- Peapod에서는 어떤 기능/특징(features)이 가장 자주 사용되는지 QA팀이 추적할 수 있는 로깅 메커니즘이 제공됨. 예를 들면, Peapod의 고객이 검색(searching) 또는 브라우징(browsing)을 통해 아이템 찾기 태스크를 수행할 수 있는데, 로깅 정보를 통해 둘 중 더 흔하게 사용되는 방식을 식별하고 이에 테스트를 집중한다.
현실적인 부하 테스트(Load Tests)
- 서버 로그는 현실적인 부하 테스트를 결정하는데 사용할 수 있음. 즉, 사이트의 통계치(예, 일일 방문자수, 하루의 시간 별 트래픽 패턴, 주의 요일 별 트래픽 패턴) 활용
- 이런 정보는 부하 테스트를 계획 시 사이트가 오늘 처리해야 할 최고 부하(peak loads)가 얼마인지 알 수 있게 해주며, 또한 어떤 URL이 가장 자주 방문되는지 식별하여 해당 URL을 부하 테스트 사용자 시나리오에 포함시킬 수 있도록 돕는다.
- 통계치는 또한 전형적인 사용자 세션의 길이를 드러낼 수도 있음(부하를 얼마나 오래 지속시켜야 하는지 결정하는데 도움이 되는 정보). 예를 들어, Peapod에서는 대부분의 사용자들이 매 쇼핑 세션에 22분을 소비하는 것을 로그 통계치가 보여줌
로그로부터 정보 추출
로그 데이터를 파싱하여 가치 있는 정보를 끌어내는 작업이 아래 3단계로 진행될 수 있다.
① 웹 서버 로그에 접근하기 위해 네트워크 담당 또는 오퍼레이션 담당과 협업
② 로그를 Excel로 Import 한다. 웹 서버 로그는 대개 표준적인 쉼표 구분 값 형식(standard comma-separated value format)으로 유지보수 됨
③ Excel의 매치기능(math functions)을 사용하여 합계(sums)와 백분율(percentages)를 낸다.
아래는 로그에 의해 생성되는 주간 및 일일 통계치 예이다. Peapod에서는 이런 정보가 캡쳐되고 이메일을 통해 여러 관련자와 부서에 배포된다.
주간 통계치(Weekly Statistics) |
일일 통계치(Daily Statistics) |
홈페이지 히트(hits) 수 전체 사이트의 성공적인 히트 수 사용자 세션 수 일일 평균 히트 수 일일 평균 페이지 뷰 수 일일 평균 사용자 세션 수 평균 사용자 세션 길이 상위 진입 및 진출 페이지(Top entry and exit pages) 도시 별 활동(Activity by city) 한 주의 가장 활발한(active) 요일 상위 브라우저 브라우저의 버전 나뉨(Version breakdown) 가장 많이 사용된 운영 체제 하루의 시간 별 활동 |
총 동시 세션(Total simultaneous sessions) HTML 동시 세션 일일 요약(Daily summary) 온라인 트래픽 주문 요약(Order summary) 30일 최대 세션 요약 30일 총 세션 요약 현재 온라인 상태인 사용자 수 서버 상태 CPU 부하 데이터베이스 통계치 |
'시스템유형별 > 웹 기반' 카테고리의 다른 글
영상자료 - 웹 성능 메트릭 by Mijingo (0) | 2018.04.16 |
---|---|
문서요약 - 웹 애플리케이션 테스팅 by Lucca (0) | 2018.04.13 |
영상자료 - 7가지 웹사이트 테스팅 툴 by Waite (0) | 2018.04.11 |
페이퍼요약 - 웹애플리케이션의 성능, 확장성, 신뢰성 이슈 by Iyer (1) | 2018.04.09 |
문서요약 - 웹사이트 테스팅 모범 사례 by Stout (0) | 2018.04.04 |