반응형

출처: Software Testing Career Package, VIJAY SHINDE & CONTRIBUTING AUTHORS, 100~104페이지, 2015

 

웹 애플리케이션 쿠키에 대한 기본 설명과 테스트 시나리오를 기술한 자료

 


 

 

웹 애플리케이션 쿠키 테스트를 위한 샘플 테스트케이스

 

쿠키란?

쿠키는 웹 서버가 사용자 하드 드라이브에 텍스트 파일 형태로 저장하는 작은 정보 집합이다. 이 정보는 나중에 웹 브라우저가 검색을 하는 데 사용된다. 일반적으로 쿠키에는 서로 다른 웹 페이지 간에 통신하는 데 사용되는 개인 사용자 데이터가 포함되어 있다.

 

 

웹사이트에서 쿠키를 사용하는 이유는?

쿠키는 특정 웹사이트의 다양한 웹 사용자를 식별하고 웹사이트 페이지 전체에서 사용자의 네비게이션 경향을 추적하는 데 사용된다. 웹 브라우저와 웹 서버 간의 통신은 ‘stateless(상태 저장 안함)’이다. 예를 들어 도메인 http://www.example.com/page1.html에 액세스하는 경우 웹 브라우저는 단순히 example.com 웹 서버에 page1.html을 쿼리한다. 이어서 http://www.example.com/page2.html에 액세스하면 page2.html 페이지를 위한 새로운 리퀘스트가 example.com 웹 서버로 전송된다. 웹 서버는 일반적으로 이전 page1.html이 누구에게 제공되었는지 알지 못한다.

 

만약 웹 서버와 사용자의 이전 통신 이력을 저장고 싶으면 어떻게 해야 할까? 이를 위해 사용자 상태 및 웹 브라우저와 웹 서버 간 인터액션을 어딘가에 유지해야 하는데, 여기서 웹 쿠키가 등장한다. 쿠키는 웹 서버와의 사용자 인터액션을 유지하는 목적으로 사용된다.

 

 

쿠키는 어떻게 작동하는가?

웹 상에서 정보 파일 교환에 사용되는 HTTP 프로토콜이 쿠키를 유지하는 데 사용된다. HTTP 프로토콜에는 Stateless HTTP Stateful HTTP의 두 가지 유형이 있다. Stateless HTTP 프로토콜은 이전에 액세스한 웹 페이지에 대한 기록을 보관하지 않는다. Stateful HTTP 프로토콜은 이전 웹 브라우저 및 웹 서버 인터액션에 대한 일부 이력을 유지하며, 쿠키가 사용자 인터액션을 유지하기 위해 이 프로토콜을 사용한다.

 

사용자가 쿠키를 사용하는 사이트나 페이지를 방문할 때 해당 HTML 페이지 내의 작은 코드(, 쿠키를 작성하는 JavaScript, PHP, Perl 스크립트 호출)가 사용자의 컴퓨터에 쿠키라는 텍스트 파일을 작성한다.

 

아래는 HTML 페이지에 배치되어 웹 쿠키를 작성하는 데 사용되는 코드의 한 예이다.

 

Set-Cookie: NAME=VALUE; expires=DATE; path=PATH; domain=DOMAIN_NAME;

 

사용자가 동일한 페이지나 도메인을 나중에 방문하면 이 쿠키는 동일한 사용자가 해당 도메인에 두 번째 방문한 것을 식별하는 데 사용된다. 대개 쿠키 만료 시간은 쿠키 작성 시에 설정되며 쿠키를 사용할 애플리케이션에 의해 결정된다.

 

일반적으로 두 가지 유형의 쿠키가 사용자의 컴퓨터에 기록된다.

1) 세션 쿠키(Session cookies): 이 쿠키는 쿠키를 호출한 브라우저가 열려있는 동안 활성화된다. 브라우저를 닫으면 이 세션 쿠키가 삭제된다. 간혹 쿠키를 만료하는 세션 기간(: 20)을 설정할 수도 있다.

2) 영구 쿠키(Persistent cookies): 이 쿠키는 사용자의 컴퓨터에 영구적으로 기록되며 훨씬 더 오래 지속된다(삭제하지 않는 한 몇 달 또는 몇 년 지속).

 

 

쿠키 용도 예

1) 장바구니 구현: 쿠키가 온라인 주문 시스템 유지관리에 사용된다. 쿠키는 사용자가 구매하려는 것을 기억한다. 사용자가 장바구니에 제품을 추가하고 어떤 이유로 해당 제품을 구매하지 않고 브라우저 창을 닫으면 어떻게 될까? 다음에 같은 사용자가 구매 페이지를 방문하면 지난 방문 동안 장바구니에 추가된 모든 제품을 볼 수 있다.

2) 개인화된 사이트: 사용자가 특정 페이지를 방문할 때 보거나 방문하고 싶지 않은 페이지가 있는지 사용자에게 묻는다. 사용자 선택은 쿠키에 저장되며 사용자가 온라인 상태인 동안 유지된다.

3) 사용자 추적: 특정 시간에 온라인 상에 있는 고유한 방문자 수를 추적한다.

4) 마케팅: 일부 회사는 쿠키를 사용하여 사용자에게 광고를 표시한다. 이러한 광고가 쿠키를 통해 제어된다. 언제 어떤 광고를 표시해야 하는지, 사용자 관심 분야는 무엇인지, 사용자가 사이트에서 어떤 키워드를 검색하는지 등이 모두 쿠키를 사용하여 유지관리된다.

5) 사용자 세션: 쿠키는 사용자 ID와 비밀번호를 사용하여 특정 도메인에 대한 사용자 세션을 추적할 수 있다.

 

 

쿠키의 단점

1) 쿠키 작성이 사용자 인터액션을 유지하는 좋은 방법이지만 사용자가 쿠키 작성 전에 경고를 표시하도록 브라우저 옵션을 설정하거나 또는 쿠키를 완전히 비활성화시킬 수 있다. 이 경우 쿠키를 포함하는 사이트가 완전히 비활성화되어 사이트 트래픽 및 수익 손실로 이어질 수 있다.

2) 너무 많은 쿠키: 웹 애플리케이션이 모든 페이지 방문 마다 너무 많은 쿠키를 작성하고 사용자가 쿠키 작성 전 경고하도록 옵션을 설정하였다면, 이는 사용자가 사이트를 멀리하게 되는 원인이 될 수 있다.

3) 보안 이슈: 때때로 사용자의 개인 정보가 쿠키에 저장되는 경우가 있으며 누군가 쿠키 정보를 해킹할 수 있다면 해커가 사용자의 개인 정보에 액세스할 수 있다. 심지어 손상된 쿠키도 다른 도메인에서 읽게 될 수 있어서 보안 위협이 발생할 수 있다.

4) 민감한 정보: 일부 사이트는 민감한 사용자 정보를 쿠키에 저장하며 이는 개인 정보 보호법에 위배될 수 있다.

 

 

웹 애플리케이션 쿠키 샘플 테스트케이스

첫번째 명백한 테스트케이스는 애플리케이션이 하드 디스크에 쿠키를 제대로 쓰고 있는지 여부를 확인하는 것이다. 쿠키가 사용자 머신에서 허용되는지 또는 거부되는지 체크한다.

 

  1. 개인 정보 보호 문제로 인해 개인 정보나 민감한 정보는 쿠키에 저장하면 안 된다. 설계 문서를 확인하여 쿠키에 어떤 정보가 저장되는지 확인한다.
  2. 민감한 데이터를 쿠키에 저장하는 것 외에 다른 옵션이 없다면 암호화된 형식으로 저장되는지 확인한다.
  3. 쿠키의 남용이 없는지 확인한다. 브라우저가 쿠키를 자주 유도하면 사용자를 짜증나게 할 것이며 이로 인해 사이트 트래픽이 손실되고 비즈니스 손실로 이어질 수 있다.
  4. 브라우저 설정에서 쿠키를 비활성화하고 애플리케이션을 테스트해 본다. 이 경우 대부분의 사이트 기능이 작동하지 않을 수 있다. "이 사이트의 원활한 작동을 위해 브라우저에서 쿠키가 활성화되어 있는지 확인하십시오"와 같은 적절한 메시지가 사용자에게 표시되는지 확인한다. 브라우저에서 쿠키를 비활성화하여도 페이지 크래시가 있어서는 안 된다(이 테스트를 수행하기 위해 모든 쿠키를 지우고 브라우저를 재시작해 본다).
  5. 일부 쿠키 수락/거부: 만약 웹 애플리케이션이 10개의 쿠키를 작성한다면 임의로 일부를 수락하거나 거부한다. 이를 테스트하기 위해 쿠키가 하드 디스크에 써질 때마다 메시지를 표시하도록 브라우저 옵션을 설정하고, 메시지가 뜨면 쿠키를 수락하거나 거부한다. 그런 다음 중요한 웹 사이트 기능에 액세스하여 페이지 크래시 또는 데이터 손실이 발생하는지 확인한다.
  6. 쿠키 삭제: 사이트가 쿠키를 작성하도록 허용한 다음 브라우저에서 모든 쿠키를 삭제한다. 쿠키를 삭제한 후 사이트 동작을 확인한다.
  7. 쿠키 훼손: 쿠키를 훼손하는 것은 쉽다. 쿠키가 저장되는 위치를 알고 있으므로 메모장에서 쿠키를 수동으로 편집하고 패러미터 값을 변경한다. 예를 들어 쿠키 내용, 쿠키 이름 또는 만료 날짜를 변경한 다음 웹사이트 기능을 확인한다. 간혹 쿠키가 손상되면 다른 도메인에서 쿠키 데이터에 액세스할 수 있다. 한 도메인에서 작성한 쿠키를 다른 도메인에서 액세스할 수 없어야 하므로 이는 문제가 된다.
  8. 쿠키 덮어쓰기 기능 확인(해당되는 경우): 웹 페이지가 동일한 도메인의 다른 페이지에서 설정한 쿠키를 삭제할 수 있는 기능을 확인한다. 픽셀/액션/전환 추적에서 이런 일이 일반적이다. 전환 추적 쿠키는 전환이 발생하면 삭제되는 데, 이는 동일한 사용자에 대해 다수의 전환이 로깅되는 것을 방지하기 위함이다. 방문 웹사이트 전환 페이지가 전환 추적 쿠키를 올바르게 삭제하고 동일한 사용자에 대해 더 이상 유효하지 않은 전환이 로깅되지 않는지 확인한다.
  9. 여러 브라우저에서 쿠키를 테스트: 애플리케이션이 여러 다른 브라우저에서 쿠키를 올바르게 쓰고 읽으며 웹사이트 기능이 예상대로 작동하는지 확인한다. IE, Firefox, Chrome, Safari, Netscape, Opera 같은 다양한 브라우저 버전에서 이 테스트를 수행한다.
  10. 사용자 로그인을 유지하기 위해 쿠키를 사용하는 경우 브라우저 주소 표시줄에서 사용자 ID(또는 기타 유사한 패러미터)를 변경하면 적절한 액세스 거부 경고 메시지가 표시되는지 확인한다.

 

위 목록은 웹 애플리케이션 쿠키를 테스트하기 위한 몇 가지 샘플 테스트 시나리오이다. 이러한 시나리오로부터 다수의 테스트케이스를 도출할 수 있다.

 

 

반응형

+ Recent posts