반응형

출처: Testing Applications on the Web, 저자 Hung Q. Nguyen, 2001

13장 설치 테스트(Installation Tests), 241~264 페이지

 


서버쪽 또는 클라이언트쪽의 설치 프로세스에서 발견되지 않은 에러로 인해 웹 애플리케이션이 정확하게 동작하지 못하게 될 수도 있다. 웹 애플리케이션은 서버쪽 소프트웨어 설치를 필수적으로 수반하며, 웹브라우저를 UI로 사용하는 경우라도 클라이언트쪽 소프트웨어 설치가 가끔 요구된다(, 플러그인 컴포넌트, ActiveX 컨트롤 설치). 일부 웹 애플리케이션은 플랫폼에 특정한 TCP/IP 클라이언트를 설치하여 일반 브라우저 대신 사용하기도 한다.

 

설치 프로그램과 설치 해제 프로그램의 역할

설치 프로그램(Installer)

설치 프로그램은 사용자 운영 환경에 대한 정보를 알아내는 것을 시작으로 설치 과정을 수행한다. 사용자 하드웨어/소프트웨어 구성 정보와 메모리 정보(, RAM, 디스크 공간)를 파악한 후에 수집된 정보를 기반으로 신규 디렉토리를 생성하고, 파일을 설치하고, 애플리케이션이 성공적으로 실행될 수 있도록 시스템을 구성한다. 데이터 파일 복사 과정에서는 실행 파일(.EXE), 자바 클래스 같은 소프트웨어 컴포넌트(.JAR), 동적 링크 라이브러리(DLL) 등이 사용자 하드 디스크의 적절한 디렉토리로 이동한다. 때때로 애플리케이션 파일이 디렉토리로 복사되기 전에 압축 파일(, ZIP, TAR)을 풀어야 할 수도 있다. 복사 과정이 완료되고 나면 설치 프로그램은 구성 데이터 파일과 레지스트리 엔트리(윈도우 기반 환경의 경우)를 추가 및 수정하여 애플리케이션 운영 환경을 구성한다.

 

설치 프로그램이 수행하는 일련의 활동이 아래와 같다.

  • 소스 호스트에서 설치 프로그램 실행
  • 타겟 호스트에 로그인
  • 환경에 대해 알아내기 위해 타겟 호스트 조사
  • 사용자 환경에서 수집한 정보와 사용자가 선택한 설치 옵션(예, Full, Compact, Custom)에 따라 소프트웨어 컴포넌트 설치
  • ZIP 파일 또는 TAR 파일 압축 해제
  • 디렉토리 탐색 또는 생성
  • 애플리케이션 실행 파일, DLL 파일, 데이터 파일을 복사(각 파일에 대해 더 최근 버전이 타겟 시스템에 이미 존재하는지 가급적이면 체킹)
  • 공유 파일(다른 애플리케이션과 공유하는 파일) 복사
  • 공유 파일(오로지 자사 애플리케이션과 공유하는 파일) 복사
  • 레지스트리 키 생성(윈도우만 해당)
  • 레지스트리 키 값 확인(윈도우만 해당)
  • 레지스트리, .INI 파일, .BAT 파일 변경(윈도우만 해당)
  • 시스템 리부트(윈도우만 해당)
  • 데이터베이스 테이블, 저장 프로시져, 트리거 등을 활성화
  • 구성 파일 생성 또는 갱신

 

설치 프로그램의 성공을 가늠하는 일차적 기준은 설치된 애플리케이션이 모든 셋업 옵션과 하드웨어/소프트웨어 구성 하에서 예상대로 동작하는지 여부이며, 이차적 기준은 설치 프로그램 자체의 품질(기능성, 인스트럭션 정확성, UI, 사용용이성)이다.

 

설치해제 프로그램(Uninstaller)

설치해제 프로그램의 역할은 설치 프로세스를 역으로 하는 것이며(설치 프로그램이 실행한 파일 복사와 구성을 뒤집음), 종종 설치 프로그램이 설치한 모든 데이터 파일(애플리케이션 실행 파일과 DLL 포함)을 제거한다. 일반적으로 사용자 데이터를 보관할지 또는 제거할지에 대한 사용자 옵션을 제공하고, 애플리케이션 환경을 소프트웨어 설치가 있기 전 상태로 복구한다. 윈도우 환경의 설치해제 프로세스에는 파일 수정, 레지스트리 엔트리 수정, 설치 프로그램이 생성한 엔트리 제거가 포함된다.

 

설치해제 프로그램이 수행하는 일련의 활동이 아래와 같다.

  • 디렉토리 제거
  • 애플리케이션 파일 제거
  • 애플리케이션 EXE 파일과 private DLL 파일 제거
  • 다른 애플리케이션이 사용하는 특정 파일이 있는지 체크
  • 다른 애플리케이션과 공유하는 공유 파일 제거(이를 사용하는 다른 애플리케이션이 없는 경우)
  • 자사 애플리케이션과 공유하는 공유 파일 제거(이를 사용하는 다른 애플리케이션이 없는 경우)
  • 레지스트리 키 제거(윈도우만 해당)
  • 원래의 레지스트리 키 확인 복구(윈도우만 해당)
  • 링크 또는 커맨드라인을 통해 설치해제 프로그램 실행
  • 추가/제거 프로그램을 통해 설치해제 프로그램 실행(윈도우만 해당)

 

설치/설치해제 테스팅 유틸리티

테스팅 프로젝트의 설치/설치해제 단계에서 테스터가 고려할 만한 도구가 아래와 같다.

  • 비교 기반 테스팅 도구: 설치/설치해제 전과 후의 시스템 애트리뷰트와 파일을 비교한다. 즉, 디렉토리와 파일, .ini와 .cfg 같은 특정 파일의 구성 데이터, 레지스트리 데이터베이스의 레지스트리 정보 등에서 추가/삭제/변경을 찾는다.
  • InControl3과 InControl4: 설치 프로그램에 의해 수행된 모든 환경 변화를 추적한다. 하드 디스크, 레지스트리, 기타 구성 파일(예, WIN.INI, SYSTEM.INI)에 가해진 변경을 추적한다.
  • Norton Utilities의 Registry Tracker and File Compare: InControl3와 비슷한 기능을 제공하지만 셰어웨어는 아니다.

 

테스팅 고려사항

설치 테스팅의 목적

  • 설치 프로그램의 기능(functionality)과 UI를 테스트 한다.
  • 설치 및 셋업되는 애플리케이션의 기능을 테스트 한다.
  • 설치 프로그램 또는 설치해제 프로그램의 알려진 에러 조건과 에러 핸들링을 테스트 한다.
  • 설치 프로그램 또는 설치해제 프로그램이 기존 시스템 환경에 미치는 영향을 테스트 한다.
  • 소프트웨어와 하드웨어 호환성(compatibility)을 테스트 한다.
  • 여러 서버 구성 상에서 설치 프로그램의 기능을 테스트 한다.
  • 여러 설치 옵션과 조건에서 설치 프로그램의 기능을 테스트 한다.
  • 설치 프로그램이 기존 파일 및 레지스트리 엔트리에 가하는 구성과 변경을 테스트 한다.
  • 설치해제 프로그램이 설치 프로그램에 의해 설치된 모든 데이터 파일(애플리케이션 실행 파일과 .DLL 포함)을 제거하는지 확인하기 위해 테스트 한다.
  • 회사가 각기 독립적인 설치 프로그램을 가진 다수의 제품을 시장에 내놓는 경우라면, 제품들 간의 설치 프로그램 호환성을 테스트 한다. 예를 들어, 두 개 제품을 충돌 없이 설치 할 수 있는가? 각 제품을 또 다른 제품에 영향을 주지 않고 설치해제 할 수 있는가?

 

고려해야 할 테스트 시나리오

  • 최소한의 구성만 한 상태에서 설치를 한다.
  • 클린 시스템(운영체제의 필수 컴포넌트만으로 구성된 클린 환경)에서 애플리케이션을 설치하고 실행한다.
  • 더티 시스템에서 애플리케이션을 설치하고 실행한다. 더티 시스템은 운영체제 컴포넌트뿐만 아니라 기타 흔히 사용되는 소프트웨어(다양한 브라우저 버전, 생산 애플리케이션, 바이러스 체커 등)로 구성된 환경을 말한다.
  • 운영체제를 타겟으로 한 업그레이드 설치를 한다(예, 윈도우 98에서 윈도우 2000으로 업그레이드).
  • 신규 애플리케이션 기능을 타겟으로 한 업그레이드 설치를 한다. 설치 프로그램이 낡은 파일을 제거하는가? 낡은 파일에 의존하는 다른 애플리케이션이 존재하는가?
  • 여러 운영체제 하에서 소프트웨어를 설치한다.
  • 설치 프로그램이 설치가 시작된 후 충분한 공간이 부족한 상황에 적절히 반응하는지를 보기 위하여 설치가 진행되는 동안 디스크 여유 공간량을 줄인다.
  • 시스템을 기존 상태로 얼마나 잘 복구하는지 보기 위해서 설치를 중간에 취소한다.
  • 만일 디폴트 타겟 설치 경로를 다른 드라이브로 변경하면, 모든 파일이 정말로 명시된 경로에 설치되는가? 일부 프로그램은 여전히 변경 전 경로에 파일을 넣지는 않는가?

 

운영체제 이슈 관련하여 흔한 설치 에러(윈도우 경우)

  • 설치 프로그램이 마이크로소프트 상표 가이드라인에 따른 기본 정보(예, 업체명, 애플리케이션명, 레지스트리에서 버전)를 등록하지 않음
  • 설치 프로그램이 공유 DLL 외의 파일도 \WINDOWS 또는 \SYSTEM 디렉토리에 복사함
  • 설치 프로그램이 레지스트리에 OLE 오브젝트를 등록하지 않음
  • 설치 프로그램이 Fonts 폴더가 아닌 다른 폴더에 애플리케이션 폰트를 넣음
  • 설치 프로그램이 진행 상태 표시(progress indicator)를 사용하지 않음
  • 설치 프로그램이 Start 메뉴에 쇼트컷을 추가하지 않음
  • 설치 프로그램이 문서 타입을 등록하지 않음
  • 설치 프로그램이 범용 명명 규칙(Universal Naming Convention) 경로 지원에 실패함
  • 설치 프로그램이 CD의 오토런을 하지 않음
  • 설치 프로그램 이름이 SETUP.EXE가 아님
  • 설치 프로그램이 Context 메뉴를 구성하는데 실패함
  • 설치해제 프로그램이 레지스트리에서 모든 정보를 제거하는데 실패함
  • 설치해제 프로그램이 데스크탑의 쇼트컷을 제거하지 않음
  • 일부 애플리케이션은 NTFS 압축 발견 시 문제가 생겨 오류가 있는 I/O 에러 메시지를 디스플레이함

 

반응형

+ Recent posts