소프트웨어 테스트
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 |