S/W 테스트 기법
1. 블랙박스 테스트 (Black-Box Test)
프로그램의 외부 규격서에 의거하여, 입력 데이터와 출력 데이터 관계가 규격서에 정해진 바와 같은 결과를 얻었는지 조사, 시험하는 방법이다. 테스트 대상이 되는 구현물의 내부구조 및 소스코드에 대 한 접근이 필요하지 않는다는 점에서 블랙 박스 시험이라 부른다.
이 방식의 시험 사례를 설계하기 위해 결정표(decision table)가 이용 되기도 한다. 모듈이 요구에 맞게 잘 작동하는가에 초점을 두고, 모 듈의 외형(입력, 출력)과 모듈의 기능 위주의 검사가 진행된다.
2. 화이트박스 테스트 (White-Box Test)
테스터가 프로그램의 코드나 모듈에 접근하여 요구에 맞게 잘 작 동하는가에 초점을 둔 테스트를 말한다. 프로그램 내부 구조의 타당성 여부를 시험하고, 내부 구조를 해석 해서 프로그램의 모든 처리 루틴에 대해 시험하는 기본 사항이다.
가끔 발생하는 조건도 고려해서 처리 루틴을 검증하기 위한 시험 데 이터를 작성하여 시험을 실시할 필요가 있다.
3. 단위 테스트 (Unit Test)
모듈테스트(Module Test)라고도 하며, 시스템에서 테스트 가능한 가장 작은 단위를 개별적으로 테스트를 수행한다. 일반적으로 개발 되는 제품이나 시스템의 단위 클래스나 함수들을 테스트 대상으로 본다.
4. 통합 테스트 (Integration Test)
프로그램 또는 그 구성 요소인 모듈 등의 정보 시스템 하나하나의 구성 요소를 결합하여 구성 요소간의 인터페이스와 각 결합 단계에 서의 기능을 확인하는 테스트이다. 컴포넌트나 서브시스템과 같은 통합 단위를 테스트한다.
5. 시스템 테스트 (System Test)
구현된 시스템이 정해진 요건에 적합한지 여부를 평가하기 위하여 실제 운용과 같은 환경에서 시스템 전체에 대해서 행하는 테스트를 말하며 전체 응용프로그램 또는 시스템을 테스트한다.
6. 인수 테스트 (Acceptance Test)
계약상의 요구 사항이 만족되었는지 확인하기 위해, 설치 후 구입 자의 현장에서 납품자도 참가하여 구입자에 의해 실시되는 시스템 또는 기능 단위의 테스트를 말한다.
배포여부를 결정하기 위해 최종 사용자에 의해 수행되는 완전한 시스템에 대한 테스트를 말한다.
7. 벤치마크 테스트 (Benchmark Test)
어떤 기계나 시스템을 실제로 사용될 것과 같은 여건에서 성능을 측정하기 위해 하는 여러 가지 테스트를 말한다. 통상적으로 1개 또 는 여러 개의 대표적인 프로그램을 비교하고자 하는 컴퓨터들에 수 행시켜 성능을 측정함으로써 컴퓨터의 속도나 단위 시간당 일 처리 량 등을 비교할 수 있다.
널리 알려져 있는 워크로드 내지는 시스템 과 새로 생성한 테스트 대상의 성능 비교한다.
8. 구성 테스트 (Configuration Test)
다양한 하드웨어와 소프트웨어를 구성시켜 테스트 대상이 제대로 동작하는가 검증한다.
하드웨어 및 소프트웨어를 구성하는데 시간이 많이 투입된다.
9. 기능 테스트 (Function test)
대부분의 동작이 장비들의 제한된 종류의 기능들로 구성되어 있다는 점을 이용해서 수행하는 기능적인 테스트를 말한다. 10~15개 기 능에 대한 전체 조합은 상당히 많은 분량이므로 단 몇몇 기능으로만 동작을 구성한다. 소프트웨어의 기능적 시험은 구조적 기능에 대해 서 어떤 프로그램의 기능에 대한 시험이다. 테스트 대상이 요구되는 기능을 제대로 수행하는가 검증한다.
10. 설치 테스트 (Installation test)
테스트 대상이 사용시스템에 제대로 설치되는가를 검증한다.
설치 되는 SW의 기능에 따라 폴더 및 설치의 다양한 관리방법 그리고 제 거의 완벽성을 확인한다.
11. 무결성 테스트 (Integrity test)
프로그래밍 언어의 문법과 구문을 준수했는가,
시스템 자원을 적 절히 사용했는가와 같은 코드의 신뢰도 및 코드의 견고성을 검증한다.
12. 부하 테스트 (Load test)
다양한 워크로드로 테스트함으로서 테스트 대상의 운영상의 한계를 평가하는 테스트를 말하며 테스트 대상의 인수 여부를 판단할 수 있다.
13. 스트레스 테스트 (Stress test)
부하, 메모리 부족, 특정 서비스나 하드웨어가 사용 불가능할 때와 같은 비정상적인 조건에서 테스트 대상이 기능을 제대로 수행 하는가를 테스트한다. 프로그램이 비정상적인 상황에 처했을 때를 위해 설계되었으며 비정상적인양, 밀도, 크기, 자원 등을 요구한다.
14. 볼륨테스트 (Volume Test)
서버등의 데이터 처리하는 프로그램에 대해 데이터 양의 취급능력 을 테스트한다.
15. 성능테스트 (Performance Test)
개발된 어플리케이션이 주어진 환경 하에서 응답속도, 처리량, 처 리속도 등의 항목에 대하여 요구 되어진 목표치를 달성하는지에 대 한 테스트이다. 통합시험 전후 단계에서 SW의 실시간 성능을 시험하기 위해 실시 하고, 강도시험과 함께 실시되기도 한다. 엄격한 형식으로 자원의 이 용율 측정이 필요하다.
16. 신뢰성 테스트 (Reliability Test)
프로그램, 시스템, 또는 하드웨어 장치가 얼마만큼 실패 없이 주어 진 기능을 수행할 수 있는가 하는 능력의 측정, 또는 장비가 총 운 용시간에 대해 정상적인 기능을 수행한 시간이 어느 정도인지를 나 타내는 가동률을 측정한다. 기능에 대하여 시스템 및 어플리케이션 이 Down되지 않고 안정적으로 수행되는지를 확인하는 테스트이다.
17. 사용자 인터페이스 테스트 (User-Interface Test)
사용자 인터페이스가 일관성을 유지하는지는 표준을 준수하여 적 절히 설계되고 개발되었는지를 확인하는 테스트이다.
18. 회귀 테스트 (Regression Test)
어플리케이션에 대하여 변경, 결함 수정 또는 기능개선 등과 같은 원인으로 프로그램 코드에 대하여 물리적인 변경이 발생했을 경우, 새로운 결함에 대비하여 이미 실시했던 테스트케이스에 대하여 전체 또는 일부를 재시험하는 테스트이다.
19. 기억용량 테스트 (Data-Storage Test)
대용량의 데이터를 시스템에 입력시키고 그 반응을 시험하고 데이 터의 양이나 파일 크기가 변함에 따라 시스템의 반응의 변화가 있는 가를 시험하여 일상적 작업을 수행하는데 충분한 기억용량을 추정가 능 하도록 도와주는 테스트이다.
20. 복구테스트 (Recovery Test)
하드웨어적 오류, 회로오류, 정전, 프로그램 오류 등으로 야기되는 여타의 장애로부터 정해진 시간 내에 시스템이 어떻게 복구되는가를 시험한다.
특히 회계시스템에서는 어떠한 자료도 처리 도중 상실되 어서는 안되기 때문에 불의의 모든 사고로부터 시스템이 복구되는 것이 절대적으로 중요하며 두 가지 복구 시스템으로 나눈다.
(1) 자동복구 시스템인 경우 재 초기화, 체크포인팅 메커니즘, 데이터 복구, 재시작 등이 정확 하게 수행되는지 테스트한다.
(2) 수동적 복구 시스템인 경우 복구까지 소요되는 평균시간이 수용가능한지 테스트한다.
21. 보안 테스트(Security Test)
최근 컴퓨터 시스템에 대한 각종 위협의 증가로 인하여 권한이 없는 사용자의 데이터 액세스 및 수정을 방지하기 위한 보안 기능은 필수적이므로 시스템상의 보안기능이 업무환경에 적절한가를 시험한 다. 특히 외부 컴퓨터 네트워크와 커뮤니케이션이 있는 시스템인 경 우 커뮤니케이션 메시지의 기밀성, 무결성, 사용자 인증, 접근통제, 부인봉쇄 등의 보안 기능이 적절하게 제공되고 있는지를 테스트한다.
22. 호환성 테스트(Compatibility Test)
현 시스템을 다른 하드웨어와 시스템 소프트웨어로 전환하거나 현재의 시스템에 중요한 새로운 기능을 추가하는 경우에 적용하며 변경사항으로 인해 발생할지도 모르는 결점에 대비하여 시스템의 모 든 부분을 테스트한다. 이를 위해 새로운 시스템의 시험결과와 비교 할 수 있는 현재 시스템의 시험 결과의 보존이 필요하다.
'소프트웨어 테스팅 > 테스트 기법' 카테고리의 다른 글
소프트웨어 테스팅 기법 (2) - 정적 테스팅의 종류 (0) | 2018.07.03 |
---|