▣ SW 테스트의 단계별 분류


현재 현업에서 시행되고 있는 SW 테스트의 분류를 단계별 기준에 따라 분류하면 다음과 같다.



【표 II-1. 단계별 분류】

테스트 내용
단위테스트
(Unit Test)
분리된 기능에 대한 검증으로 단위 테스트 프레임워크를 이용하여 개발자가 테스트
통합 테스트
(Integration Test)

컴포넌트간의 상호 작용에 대한 검증으로 테스트 입력 값을 만들어 실행한 후 결과를 확인

시스템 테스트
(System Test)
전체 시스템 동작에 대한 검증으로 암·복호화 데이터의 처리결과 확인, 데이터의 처리시간을 통해 시스템 속도 측정, 정확한 데이터 처리 확인, 성공률과 실패율 확인
인수 테스트
(Acceptance Test)
사용자 요구사항 처리에 대한 검증으로 사용자가 요구기능을 입력하고 기능이 정확하게 수행하는지 확인

 

 

단위 테스트(Unit Test)


개별적으로 테스트할 수 있는 SW 기능만을 분리하여 검증하며, 일반적으로 코드 접근을 허용하고, 디버깅 도구의 지원 하에 실행한다.

 

【표 II-2. 단위 테스트 유형】

구분 내용
인터페이스 테스트 다른 모듈과의 데이터 인터페이스에 대한 테스트
자료구조 테스트 모듈 내의 자료 구조상 오류가 있는가를 테스트
수행 경로 테스트 구조 및 루프 테스트 등에 의한 논리 경로 테스트
오류 처리 테스트 각종 오류들이 모듈에 의해 적절하게 처리되는가를 테스트
경계 테스트 오류가 발생하기 쉬운 경계 값들을 테스트 케이스를 만들어 테스트



통합 테스트(Integration Test)


SW 컴포넌트 간의 상호 작용을 검증하는 프로세스로 엔지니어가 하위 수준 관점을 배제하고, 컴포넌트 간, 서브시스템 간의 통합에 중점을 둔 테스트이다.

【표. 통합 테스트 유형】

구분 내용
하향식 통합 테스트
(Top-Down)
주요 제어 모듈은 테스트 드라이버로 사용되고, 스텁은 주요 제어 모듈에서 직접 종속되는 모듈로 교체
깊이 우선 또는 넓이 우선의 선택적 통합 접근법을 정하고,하위 스텁은 실제 컴포넌트들로 한 번에 하나씩 대체
테스트들은 각 컴포넌트가 통합됨으로써 수행
상향식 통합 테스트
(Bottom-Up)
하위 수준의 컴포넌트들을 특별한 SW 보조 기능을 수행하는 클러스터로 결함
입/출력 테스트 케이스를 통합하기 위해 드라이버가 사용
클러스터가 테스트 됨
혼합식 통합 테스트
(Sandwich)
하향식 통합 전략과 상향식 통합 전략을 절충한 방식
우선적으로 통합을 시도할 중요 모듈들을 선정한 후, 그 모듈을 중심으로 통합
비점진적 테스트
(Big Bang)
모든 모듈을 한꺼번에 통합하여 테스트
단위 테스트에 많은 시간이 필요
시스템의 중요 부분과 부수적인 부분을 구별하지 않음



시스템 테스트(System Test)


SW 시스템의 특정 요구 사항을 완벽하게 통합된 시스템에서, 시스템의 준수 여부를 평가하는 테스트이다. 시스템의 기능 측면뿐만 아니라 비기능적 요구사항을 시스템이 만족하는지 여부를 검증한다.

 

【표. ISO/IEC 9126 품질 특성 국제표준】

특성 부특성 내용
기능성
(Functionality)
적합성(Suitability) 적절한 기능을 제공함
정확도(Accuracy) 정확한 기능을 제공함
상호운용성(Interoperability) 상호 작용이 가능한 기능을 제공함
보안성(Security) 정보에 대한 접근제한 기능을 제공함
준수성(Compliance) 기능과 관련된 표준을 준수함
신뢰성
(Reliability)
성숙도(Maturity) 결함 회피 기능을 제공함
장애 허용성(Fault Tolerance) 결함 발생 시 일정 성능수준을 유지함
복구성(Recoverability) 결함 발생 시 회복이 가능함
준수성(Compliance) 신뢰성과 관련된 표준을 준수함
사용성
(Usability)
이해성(Understandability) 사용자가 시스템의 기능을 이해할 수 있음
학습성(Learnability) 사용자가 시스템을 학습할 수 있음
운용성(Operability) 사용자가 시스템을 제어할 수 있음
선호도(Attractiveness) 사용자가 시스템을 선호함
준수성(Compliance) 사용성과 관련된 표준을 준수함
효율성
(Efficiency)
시간 반응성(Time Behaviour) 제품이 적절한 반응, 처리시간, 처리율을 제공함
효율성(Resource Utilisation) 제품이 효율적으로 자원을 사용함
준수성(Compliance) 효율성과 관련된 표준을 준수함
유지 보수성
(Maintainability)
분석성(Analyzability) 결함의 원인을 식별할 수 있음
변경성(Changeability) 제품을 변경할 수 있음
안전성(Stability) 제품 변경에 대한 위험을 회피할 수 있음
시험용이성(Testability) 제품의 변경 사항을 확인할 수 있음
준수성(Compliance) 유지보수에 관련된 표준을 준수함
이식성
(Portability)
적응성(Adaptability) 제품의 환경 변경이 가능함
설치성(Installability) 제품이 설치가 가능함
공존성(Co-Existence) 다른 제품과 호환이 가능함
교환성(Replaceability) 제품이 대체가 가능함
준수성(Compliance) 시스템 이식과 관련된 표준을 준수함



인수 테스트(Acceptance Test)


개발된 시스템이 고객의 요구사항과 일치하는지 확인하기 위해 고객의 입장에서 수행하는 테스트이다. XP(eXtream Programming)에서는 애자일 개발 방법론의 XP 구현 단계에서 개발팀이 사용자 스토리 기반의 기능을 테스트하는 것으로 정의하고 있다.

【표. 인스 테스트 유형】

구분 내용
알파 테스트
(Alpha Test)
사용자에 의해 테스트가 수행되지만 개발자 환경에서 통제된 상태로 수행
베타 테스트
(Beta Test)
개발자가 참여하지 않는 테스트로 일정 수의 사용자들에 의해 수행

 



[연재 차례]
① SW 테스트 이해
② SW 테스트 필요성
③ SW 프로세스
④ SW 프로세스와 테스트
⑤ SW 테스트 프로세스
⑥ SW 테스트 기법
⑦ 공개SW 프로세스
⑧ 공개SW 테스트
⑨ 공개SW 테스트 프로세스
⑩ 테스트 도구
맨 위로
맨 위로