소프트웨어 정적 테스트, 동적 테스트

I. 프로그램 실행 여부 기반, 정적-동적 테스트

가. 정적-동적 테스트 개념

정적 테스트동적 테스트
프로그램을 실행 전 소스코드 파싱 기반 문법, 코드 등 잠재적 취약점 발견 기법프로그램 실행 후 실제 발생 오류 발견 및 문제 해결 분석 기법

나. 정적-동적 테스트 특징/장단점

항목정적 테스트동적 테스트
특징– 코딩 규칙, 가이드 준수 여부 검사– 단독분석보다 정적 기법 병행 수행 적용
장점– 코드 실행 전 사용– 오류 탐색 정확도 높음
단점– 정확도 상대적 낮음– 코드 전체 수행 어려움
  • 소스코드 분석은 실제 코드 작성 후 결과물을 대상으로 문제점 발견을 위한 결함 분석 기법

 

II. 정적-동적 테스트 유형

가. 정적 테스트 유형

유형세부 기법설명
흐름 분석경로 분석– 흐름 그래프 상 모든 경로 수행
– 변수들 사이 인과관계 확인
제어 흐름
분석
– 모든 구분, 블록 조합 검사
– 기본, 문장, 분기, 조건 커버리지
데이터
흐름 분석
– 프로그램 변수 정의/사용 시험
– All path, defs, uses 등
정형 분석
기법
정형 분석– S/W 수학적 표현, 정확도 제고
– 안정성/보안성 중요 SW 적용
문법 체크패턴 매칭– 코드 표준 준수 여부 확인
– 텍스트 형태, 트리구조 패턴 매칭
보안 분석보안 분석– 보안 취약점 원인 위험도 분류
– 수정 권장사항 제공
분석 구간지역 분석– 하나의 함수만 대상
모듈 레벨– 클래스나 유닛 기준 분석
전역 분석– 전체 프로그램 대상 분석
  • 모든 경로에 대해 분석하므로 TC에 영향 없고, 케이스 작성 소요 시간과 비용 절감

나. 동적 테스트 유형

유형세부 기법설명
분석기코드
커버리지
– 코드 함수 내 경로 분석
– 코드 커버리지 측정, McCabe IQ
네트워크
분석기
– 네트워크 충돌 횟수 길이 초과 패킷 개수 정보 수집
Assertion
분석기
– 프로그램 행위에 대한 Assertion 충족 여부 검사
체커런타임
에러 체커
– 자동화 도구 이용 실행 시
– RTE Basis, Polyspace
보안 체커– 보안 취약점 검출
– 모의 해킹, 크래킹 시도
상태 체커– 메모리 할당, 누수
– 모듈 별 수행시간 분석
메모리참조
에러 체커
– 코드 메모리 및 성능 프로파일링
– 빌드/컴파일 과정 소스 분석
분석 도구
및 기법
캡쳐-재생– 실제 코드 동작 시 각 라인 추적
– 함수 별 소모 시간 측정
– JTAG, Trace32, APM Multi-ICE 등
동작 추적
디버거
인스트루먼팅– 소스코드에 메모리 동작 및 성능 분석 위한 별도 코드 삽입
  • 동적 분석은 실제 동작 시 수행되므로 동적 분석 도구 연결 인터페이스 존재 필요(파일, 시리얼 등)
One Comment

콘텐츠 사용 시 출처 표기 부탁 드리고, 궁금한 점이나 의견은 댓글 남겨주세요^^