안드레이 2024. 5. 6. 13:17

▼테스트 커버리지

주어진 테스트 케이스에 의해 수행되는 소프트웨어의 테스트 범위를 측정하는 테스트 품질 측정 기준이며, 테스트의 정확성과 신뢰성을 향상시키는 역활을 한다.ㅇ

기능기반 테스트 대상 애플리케이션의 전체 기능을 모수로 설정하고, 실제 테스트가 수행된 기능의 수를  측정하는 방법이다. 기능 기반 테스트 커버리지는 100% 달성을 목표로 하며, 일반적으로 UI가 많은 시스템의 경우 화면 수를 모수로 사용할 수 있다.
Line
Coverage
애플리케이션 전체 소스 코드의 Line 수를 모수로 테스트 시나리오가 수행한 소스코드의 Line 수를 측정하는 방법이다.단위 테스트에서는 이 라인 커버리지를 척도로 삼기도 한다.
Code
Coverage
소프트웨어 테스트 충분성 지표 중 하나로 소스 코드의 구문, 조건, 결정 등의 구조 코드 자체가 얼마나 테스트 되었는지 측정하는 방법이다.
Statement
Coverage
코드 구조 내의 모든 구문에 대해 한 번 이상 수행하는 테스트 커버리지를 말한다.
Condition
Coverage
결정 포인트 내의 모든 개별 조건식에 대해 수행하는 테스트 커버리지를 말한다.
Decision
Coverage
결정 포인트 내의 모든 분기문에 대해 수행하는 테스트 커버리즈를 말한다.
Modified
Condition/
Decision
Coverage
조건과 결정을 복합적으로 고려한 측정한 방법이며, 결정 포인트 내의 다른 개별적인 조건식 결과에 결상관없이 독립적으로 전체 조건식의 결과에 영향을 주는 테스트 커버리지를 말한다.

 

★테스트 커버리지 유형

기능 기반 커버리지, 라인 커버리지, 코드 커버리지

 

▼테스트 자동화

★ 테스트 자동화 도구

애플리케이션 개발 중 반복되는 다양한 테스트 과정을 HW/SW 적으로 자동화 도구를 사용하고 일관성 및 생산성을 향상시키는 도구이다. 테스트 관리, 소스 코드 리뷰 및 인스펙션, 테스트 설계 및 개발, 테스트 수행 등 테스트에 포함되는 다양한 과정을 자동으로 지원하는 도구이다.

 

★테스트 자동화 수행 시 고려사랑

모든 과정이 아닌 그때그때 맞는 적절한 도구를 선택. 자동화 도구를 고려하여 프로젝트 일정 계획. 프로젝트 초기에 테스트 엔지니어 투입시기 계획.

 

★테스트 자동화 도구의 유형

정적 분석 도구(Static Analysis Tools)
프로그램을 실행하지 않고 분석하는 도구
소스 코드의 코딩 표준, 코딩 스타일, 코드 복잡도, 남은 결함 등을 발견하기 위해 사용

테스트 실행 도구(Test Execution Tools)
스크립트 언어를 사용하여 테스트를 실행하는 방법. 테스트 데이터와 수행 방법 등이 포함된 스크립트를 작성한 후 실행
데이터 주도 접근 방식 : 스프레드시트에 테스트 데이터를 저장하고 실행하는 방식, 다양한 테스트 데이터를 동일한 테스트 케이스로 반복하여 실행, 미리 작성된 스크립트에 테스트 데이터만 추가하여 테스트 진행 가능
키워드 주도 접근 방식 : 스프레드시트에 테스트를 수행할 동작을 나타내는 키워드와 테스트 데이터를 저장하여 실행, 키워드를 이용하여 테스트 정의

성능 테스트 도구(Performance Test Tools)
애플리케이션의 처리량, 응답 시간, 경과 시간, 자원 사용률 등 성능 목표 달성 여부 확인
인위적으로 적용한 가상 사용자를 만들어 테스트 수행

테스트 통제 도구(Test Control Tools)
테스트 계획 및 관리, 테스트 수행, 결함 관리 등을 수행하는 도구
형상 관리 도구, 결함 추적, 결함 관리 도구

테스트 하네스 도구(Test Harness Tools)
테스트 하네스 : 애플리케이션의 컴포넌트 및 모듈을 테스트하는 환경의 일부분으로, 테스트를 지원하기 위해 생성된 코드와 데이터 테스트가 실행될 환경을 시뮬레이션 하여 컴포턴트 및 모듈이 정상적으로 테스트 되도록 한다.

 

★테네스 하네스 도구 구성 요소

테스트   드라이버

하위-> 상위 모듈로 통합하면서 테스트하는 상향식 테스트에서 사용. 테스트 대상을 제어하고 동작시키는데 사용되는 도구를 의미하며, 시스템 및 컴포넌트를 시험하는 환경의 일부분으로 시험을 지원하는 목적하에 생성된 코드와 데이터이다.

 

테스트 스텁

상위-> 하위 모듈 방향으로 통합 테스트를 진행하는 하향식 테스트에서 사용. 상위 모듈에서 하위 모둘로의 테스트를 진행하는 과정 중 하위 시스템 컴포넌ㄷ트의 개발이 완료되지 않은 상황에서 시스템 테스트를 진행하기 위하여 임시로 생성된 가상의 더미 컴포넌트

 

테스트 슈트

일정한  순서에 의하여 수행될 개별 테스트들의 집합 또는 패키지. 슈트는 응용 분야나 우선순위 내용에 연관.

 

테스트 케이스

요구 사항에 맞게 개발되었는지 확인하기 위하여 테스트할 입ㅇ력과  예상  결과를 정의한 것. 테스트 자동화를 도입하면 테스트 케이스는 데이터 레코드로 저장될  수  있고 테스트 스크립트로 정의할 수  있다.

 

테스트 스크립트

테스트 케이스를 수행하여 그 결과를 보고할 목적으로 명령어 또는 이벤트 중심의 스크립트 언어로 작성한 파일로 수행 경로에 영향을 미칠 논리 조건들을 포함.

 

목 오브젝트

테스트를 위해 사용자의 행위를 미리 조건부로 입력해두고 그 상황에 맞는 행위를 수행하는  객체.

 

★테스트 수행 단계별 테스트 자동화 도구

테스트 단계
자동화 도구
설명
테스트 계획
요구사항 관리
사용자 요구사항 정의 및 변경 사항 관리
테스트 분석/설계
테스트 케이스 생성
테스트 기법에 따른 테스트 데이터 및 테스트 케이스 작성 지원
테스트 수행
테스트 자동화
테스트 자동화를 도와 테스트 효율성을 높여주는 도구
정적 분석
코딩 표준, 런타임 오류 등을 검증하는 도구
동적 분석
대상 시스템의 시뮬레이션을 통해 오류를 검출하는 도구
성능 테스트
가상의 사용자를 생성하여 시스템 처리 능력을 측정하는 도구
모니터링
CPU, Memory 등 시스템 자원 상태 확인 및 분석 지원
테스트 관리
커버리지 분석
테스트 완료 후 테스트 충분성 여부 검증 지원
형상 관리
테스트 수행에 필요한 다양한 도구 및 데이터 관리
결함 추적/관리
테스트 시 발생한 결함 추적 및 관리 활동 지원