SW Testing

정적 테스팅에 대한 개념 설명

이찰리 2022. 2. 12. 11:59
반응형

|정적 테스팅이란?

테스트된 소프트웨어를 실행해야 하는 동적 테스트와 달리 정적 테스트는 작업 산출물의 수동 검사 또는 도구를 기반으로 하는 코드 또는 기타 작업 산출물의 평가에 의존합니다. 실제로 실행하지 않고 테스트하는 동안 코드 또는 작업 제품을 평가합니다. 정적 분석은 점점 더 일반화되고 있습니다.

정적 테스팅에서 사용하는 작업물은 요구사항, 명세서, 사용자 스토리, 기준을 명시해놓은 문서, 아키텍처, 코드, 테스트 계획, 테스트 케이스, 테스트 스크립트, 웹 페이지, 사용자 가이드, 코드, 일정, 프로젝트 계획, 예산 기획 등입니다.

 

|정적 테스팅의 이점

동적 테스트를 수행하기 전에 결함을 감지하고 정확하게 수정합니다. 동적 테스트로 얻기 어려운 결함을 식별합니다. 주장, 모호성, 충돌, 누락, 오류 및 중복의 결과를 인식하여 설계 또는 투표 오류를 방지합니다. 개발 생산성을 높이고 개발 비용과 기간을 줄입니다. 테스트 비용과 기간을 줄입니다. 수명 주기 후반이나 초기 작업 중에 발견되는 오류를 줄임으로써 소프트웨어 수명 동안 전반적인 품질 비용을 줄입니다. 검토에 참여하는 팀 구성원 간의 의사소통을 개선합니다.

정적 테스팅을 통해서 아래와 같은 결함을 발견하기 쉽습니다. 

요구사항 결함 된 것, 코드에서 결함된 것, 계획에서 잘못된 것, 법적으로 문제가 될 수 있는 것, 보안에서 취약한 것, 설계 또는 명 서세의 결함, 테스트 케이스의 모호함, 부정확성, 이중성 등입니다.

대부분의 유지보수적인 것에서의 결함은 정적 테스팅으로만 확인할 수 있습니다.

 

|정적테스팅과 동적 테스팅

정적 및 동적 테스트의 일반적인 목적은 작업 아티팩트의 품질을 평가하고 가능한 한 빨리 결함을 식별하는 것입니다. 정적 및 동적 테스트는 다양한 유형의 결함을 감지하기 때문에 보완적입니다.
가장 중요한 차이점 중 하나는 정적 테스트에서 소프트웨어를 실행하여 결함으로 인한 오류를 찾는 대신 작동 중인 제품의 결함을 직접 찾는 것입니다. 결함은 작동 중인 제품을 방해하지 않고 장기간 숨길 수 있습니다. 실패한 경로가 거의 실행되지 않거나 액세스가 어려우므로 이러한 경로에 도달하는 동적 테스트를 구축하고 실행하는 것은 쉽지 않습니다. 반면 정적 테스트는 결함을 쉽게 찾을 수 있습니다. 

동적 테스트는 직접 그 제품을 실행하고 작동하여 운영과 그 시스템이 진행되는 것에서의 결함을 찾아낼 수 있습니다.
또 다른 차이점은 정적 테스트가 작업 아티팩트의 일관성과 내부 품질을 향상하는 데 사용되는 반면 동적 테스트는 일반적으로 외부에서 볼 수 있는 동작에 중점을 둡니다.

 

참고 문서 : KSTQB 사이트 CTFL 문서

728x90
반응형