소프트웨어 테스트

I. 숨겨진 결함을 발견하고 예방하는 소프트웨어 테스트의 개요

가.     소프트웨어 테스트의 정의

-  노출되지 않은 숨어있는 결함을 찾기 위해 소프트웨어를 작동시키는 일련의 행위와 절차

나.     소프트웨어 테스트의 종류

구분

내용

테스트의 단계별 분류

-단위, 통합, 시스템, 인수, 설치 테스트

테스트의 기법별 분류

-Black box/White box 테스트

테스트의 목적별 분류

-회복, 안전, 스트레스, 성능 테스트

테스트의 시각별 분류

-Varification(검증), Validation(확인)

 

II. 소프트웨어 테스트의 단계별 활동

   [그림1] 소프트웨어 테스트의 단계별 활동

가.       단위테스트 : 소프트웨어설계의 기본단위인 모듈에 대한 시험

나.       통합테스트 : 모듈들의 조합을 위한 인터페이스 오류 발견

다.       시스템테스트 : 시스템의 요소들의 통합 및 기능 수행을 확인

라.       인수테스트 : 사용자관점에서 요구사항을 충족시키는지 평가

 

III. 소프트웨어시험의 기법에 의한 분류

가.      실행코드만으로 결함을 발견하는 Black Box 시험

- 사례를 준비하여 시험하는 방법, 데이터 혹은 입출력 위주 시험에 사용

- Black Box 테스트 종류

기법

설명

동등분할기법

-다양한 입력조건들을 갖춘 시험사례의 유형을 분할하여 테스트

경계값 시험

-경계값을 기준으로 결과의 정확성을 시험

원인결과 그래프

-입력 데이터가 출력에 미치는 영향을 그래프로 표시하여 체계적으로 분석하는 테스트 기법

오류예측

(Error Guessing)

-각 시험기법들이 놓치기 쉬운 오류들을 각각의 경험으로 찾아내는 테스트 기법

 

나.      소프트웨어 내부적 형상구조를 이용하는 White Box 시험

- 프로그램상에 허용되는 모든 논리적 경로를 파악하거나 경로들의 복잡도를 계산하여 시험

- White Box 테스트 종류

제어구조테스트: 프로그램의 논리적 복잡도를 측정하여 평가

루프 테스트: 프로그램 루프구조에 국한하여 실시하는 테스트

 

IV. 웹기반 소프트웨어 시험기법

가.     웹기반 소프트웨어의 품질특성

       반응시간 : 작업의 진행을 방해하지 않을만큼의 짧은 시간내에 완성

       빈번한 변경 : 웹사이트의 내용이 최신의 것으로 유지

       컨텐츠의 품질 : 이미지, 화상, 음성 등 다양한 형태의 컨텐츠 존재

       구조적 품질 : 웹사이트를 구성하는 링크가 잘 연결되어 제대로 동작

나.     웹기반 소프트웨어 테스트의 기법

테스트방법

내용

사용자 인터페이스 테스트

-메뉴, 입력창, 오류창, 결과 등이 사용자에게 일관적인 모양과 위치를 갖도록 설계되었는지 여부

네비게이션 테스트

-끊어진 링크, 옮겨진 페이지, 고립된 페이지 등의 존재여부

브라우저 렌더링 테스트

-스크립트, ActiveX컨트롤, 스타일, HTML, 플러그인 등이 브라우저와 호환성이 있는지 여부

보안테스트

-클라이언트로부터 DB서버에 이르는 구간마다 보안이 제대로 이루어지고 있는지 확인

 

V. 소프트웨어 테스트의 실무적용시 문제점과 개선방향

문제점

개선방향

-납기압박으로불충분한테스트 기간

-테스트를 개발자가 수행

-테스트에 대한 교육 및 훈련 부족

-개발자들이 테스트의 중요성 및 오류의 심각성에 대한 자각 부족

-사전에 테스트 계획, 절차 수립

-별도의 테스트 담당자와 센터 유지

-테스트기법, 도구에 의한 지속적 교육

-결함율등의 측정치를 이용하여 개발자의 품질 측정

 

 


[참고]

* 시험목적에 의한 소프트웨어 시험 분류

구분

설명

회복 테스트

(Recovery Test)

-고의적 오류발생후 적절한 회복이 되는지 검증

안전 테스트

-불법 소프트웨어 사용에 대한 안전성 테스트

강도 테스트

-과다한 정보의 양, 최저/최고 조건의 범위밖의 상황 발생시 시스템의 처리 능력 및 신뢰성의 유무에 대한 검증

성능 테스트

-응답시간, 처리량, 처리속도, 활용도 등 전반적인 성능에 대하여 검증

구조 테스트

-소프트웨어 내부의 논리적인 경로에 대한 복잡도를 평가하는 시험

 

* 시험시각에 의한 소프트웨어 시험 분류

구분

내용

검증

(Verification)

-개발자 혹은 시험자의 시각으로 소프트웨어가 명시된 기능을 올바로 수행하는지를 알아보는 과정

-SDLC에 있어서 어느 단계의 산출물이 이전단계에서 설정된 개발규격과 요구들을 충족시키는지의 여부를 판단하기 위한 활동

확인(Validation)

-사용자 시각으로 올바른 소프트웨어가 개발되었는지를 입증하는 과정

-어느 단계의 개발제품이 최초의 사용자 요구 또는 소프트웨어 요구에 적합한지를 입증하기 위한 활동

'컴퓨터' 카테고리의 다른 글

WEB 2.0  (0) 2006/06/07
멀티디미어 다른 방법  (1) 2006/05/17
웹상에서 멀티미디어 태그 수정  (1) 2006/05/17
MSN 사용자 ID 및 자동 로그인 기록 지우기  (0) 2006/05/11
프린트 스크린 무력화  (2) 2006/04/05
고스트 사용법  (0) 2006/02/24
소프트웨어 테스트  (1) 2006/02/07
이미지필터  (0) 2006/01/11
윈도우 기능키들  (0) 2004/05/04
작은 익스플로어  (0) 2003/09/09
그래픽 파일 포맷의 종류..  (0) 2002/10/02