정적 테스트 대 동적 테스트
정적 테스트
테스트 대상을 실행하지 않고 테스트 수행.
- 리뷰
개발 단계별 산출물이 품질 목표에 부합하는지 점검, 검토.
산출물에 존재하는 결함 검출이 목적
- 정적 분석
결함으로 판단할 수 있는 특정한 패턴이 소스 코드에 있는지 분석.
장점
- 경제성 : 실행환경을 필요로 하지 않고 설계 수준에서 결함을 검출하고 해결하기 때문.
- 경제성 : 실행환경을 필요로 하지 않고 설계 수준에서 결함을 검출하고 해결하기 때문.
- 도메인별 자동화 도구를 활용한 대규모 소스 코드 분석
프로그래밍 개발표준인 MISRA C, MISRA C++, JSF AV C++ 등은
자동차, 항공기같은 안전이 중요시되는 소프트웨어 개발에 필수로 요구됨
프로그래밍 개발표준인 MISRA C, MISRA C++, JSF AV C++ 등은
자동차, 항공기같은 안전이 중요시되는 소프트웨어 개발에 필수로 요구됨
단점
- 결함이 아닌 문제를 결함으로 보고하는 False positive의 단점이 있음
- False positive의 비율이 높아지면 도구의 테스트 결과를 신뢰하지 않는 부작용 발생
동적 테스트
테스트 대상을 실행하여 결함 검출.
- 명세 기반
프로그램의 구조, 내부 논리를 참고하지 않고 테스트 케이스를 개발.
대신 사용자의 요구 명세, 설계 정보를 이용하여 개발한다.
컴포넌트-통합-시스템-인수 테스트 등 전 과정에 걸쳐 사용될 수 있음. - 구조 기반
프로그램의 제어 흐름이나 자료 흐름 정보를 이용하여 테스트 케이스 설계.
프로그램 내부 구조 정보를 기반으로 테스트 케이스를 설계하므로
화이트박스 테스트라고도 한다.
- 경험 기반
테스트 케이스 설계 바탕으로 테스트를 수행하는 대신
도메인에서 테스터의 경험, 기존 테스트 산출 결과, 직관을 활용하여 수행.
대표적으로
오류 추정
탐색적 테스트
가 있다.
장점
- 소스코드 없어도 수행이 가능하다.
- 코드 분석으로 확인하기 어려운 요구사항을 확인할 수 있다.
(-초 이내에 이벤트가 발생해야한다 와 같은 제약이 있는 경우)
단점
- 소프트웨어를 실행하기 위한 환경이 요구된다.
- 그 환경은 외부 시스템과 연계가 필요한 환경일 수도 있다.
댓글
댓글 쓰기