티스토리 뷰

SW Test | 기획 | 개발

SW Test - Testing이란?

아이티안 2020. 5. 18. 22:06

Testing이란

 

시스템에서 결함을 찾는 것을 말합니다. 주로 결함 발견의 메커니즘을 의미하지만 결함예방과 조화를 이루어야 합니다. 단지 수천가지 Test Case를 만들어 테스트를 실행하는 것을 의미하지는 않습니다. 이러한 테스트를 포함하여 Testing 전략 수립과 계획, 설계, 결함 수정과 도구의 사용 등을 포괄하는 의미라고 할 수 있습니다.

 

 

Testing의 정의

 

초창기에는 코딩 작업의 일부라고 여겨졌습니다. 테스트는 프로그램이나 시스템이 예상대로 작동할 것이라는 신뢰도를 높여주는 과정이었습니다. 하지만 IEEE에서 정의한 내용을 보면, SW의 테스트는 수동 또는 자동으로 시스템을 시험 작동하고 평가하는 작업으로 명시된 요구를 잘 만족하는지, 예상된 결과와 실제 결과와의 차이가 있는지는 인식하기 위한 목적을 가진다고 합니다.

 

 

 

Testing의 목적

 

앞서 말한 것처럼 시스템에서 결함을 찾는 것이 목적이나 100% 완벽한 테스트는 불가능 합니다. 하나의 프로그램에는 내부조건의 무한한 경로와 입력값의 무한한 조합, 이벤트 발생순서에 따른 무한한 타이밍이 존재하기 때문입니다. 테스트를 통해 오류가 없음을 보여주려는 것이 아니라 SW가 명세서에 맞게 수행됨을 보장하는 것이 Testing의 목적이라 할 수 있습니다. 주어진 시간과 인력, 가용자원을 통해 오류를 발견할 확률이 높은 Test Case를 찾아내고 실행해야 합니다.

 

소프트웨어 테스트의 근본적인 목적은 소프트웨어의 품질 향상에 있습니다. 스포트웨어의 유지보수 효율을 증대시키기 위해 소스코드를 읽기 쉽고 수정하기 용이하도록 작성하는 것이 필요합니다. 또한, 프로그래밍 언어의 관점에서 잘못 작성된 코드로 인한 System Fault 발생을 방지하고 논리적인 오류가 있는지를 검토하는 것입니다.

 

 

Testing의 분류

 

프로그램의 실행 여부에 따라 Static Testing과 Dynamic Testing으로 나뉩니다. 소스 코드의 사용 유무에 따라 Black Box Testing, White Box Testing, Gray Box Testing 등으로 구분됩니다. 마지막으로 검증방식에 따라 Code Inspection, Runtime Test, Unit Test, Integration Test, System Test, Acceptance Test 등으로 분류할 수 있습니다.

 

댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday