본문 바로가기
정보처리기사 실기준비

[정처기] PART 06 : 애플리케이션 테스트 관리 정리노트

by 코딩개미뚠뚠 2021. 4. 16.
반응형

소프트웨어 테스트 : 구현된 응용 애플리케이션이나 시스템이 사용자가 요구하는 기능의 동작과 성능, 사용성, 안전성 등을 만족하는지 확인하기 위하여 소프트웨어의 결함을 적극적으로 찾아내는 활동.

 

구분 테스트 디버깅
목적 일려지지 않은 에러의 발견 이미 알고 있는 에러의 수정
수행 시스템 내부 관련자,테스트팀 등 외부의 제 3자 시스템 내부 관련자
주요작업 에러의 발견 에러의 정확한 위치파악
에러의 타입식별
에러의 수정

소프트웨어 테스트 필요성

1> 오류발견 관점

2> 오류 예방 관점

3> 품질 향상 관점

 

살충제 패러독스 : 동일한 테스트 케이스로 반복 실행하면 결함을 발견할 수 없으므로 주기적으로 테스트 케이스를 리뷰하고 개선해야 한다.

 

부재의 궤변 : 사용자의 요구사항을 만족하지 못하면 오류를 발견하고 그 오류를 제거하였다 해도, 해당 애플리케이션의 품질이 높다고 말할 수 없다.

 

정적 테스트 : 프로그램 실행 없이 소스코드의 구조를 분석하여 논리적으로 검증하는 테스트로 인스펙션, 코드검사, 워크스루 등이 있다.

 

동적 테스트 : 프로그램의 실행을 요구하는 테스트로 화이트박스 테스트와 블랙박스 테스트가 있다.

화이트박스 테스트 : 프로그램의 내부 로직을 보면서 테스트를 수행한다.

ex>문장커버리지, 분기결정커버리지, MC/DC, 다중조건, 기본경로테스트,

블랙박스 테스트 : 사용자 요구사항 명세를 보면서 테스트, 주로 구현된 기능을 테스트한다.

                       명세기반 기법이라고도 하며, 주어진 명세(모델, 설계서 등)를 바탕으로 테스트 케이스를 도출

ex>동등분할클래스, 경계값분석, 도메인테스트, Pairwise테스트, 상태전이테스트, 결정테이블기반테스트

 

검증 VS 확인

검증 : 제품의 생산 과정을 테스트한다는 것을 의미

확인 : 생산된 제품의 결과를 테스트한다는 것을 의미

 

테스트 목적에 따른 유형

1> 회복테스트 : 고의로 실패를 유도하고 정상적으로 복귀하는지 테스트

2> 안전테스트 : 불법적인 소프트웨어가 접근하여 시스템을 파괴하지 못하도록 소스코드 내의 보안적인 결함을 미리 점검하는 테스트

3> 강도테스트 : 시스템에 과다 정보량을 부과하여 과부하 시에도 시스템이 정상적으로 작동되는지 점검하는 테스트

4> 성능테스트 : 응답하는 시간, 특정 시간내에 처리하는 업무량, 사영자 요구에 시스템이 반응하는 속도 등을 테스트

5> 구조테스트 : 시스템의 내부 논리 경로, 소스코드의 복잡도를 평가하는 테스트

6> 회귀테스트 : 변경 또는 수정된 코드에 대하여 새로운 결함 발견 여부를 평가하는 테스트

7> 병행테스트 : 변경된 시스템과 기존 시스템에 동일한 데이터를 입력 후 결과를 비교하는 테스트

 

테스트 종류에 따른 유형

1>명세 기반 테스트 : 주어진 명세를 빠짐없이 테스트 케이스로 구현하고 있는지 확인하는 테스트

ex> 동등 분할, 경계 값 분석, 유한상태 기계기반, 결정테이블, 정형명세기반, 유스케이스, 페어와이즈, 직교배열테스트

2>구조 기반 테스트 : 소프트웨어 내부 논리 흐름에 따라 테스트 케이스를 작성하고 확인하는 테스트

ex> 구문기반, 결정기반, 조건기반, 조건결정기반, 변경조건결정기반, 멀티조건기반, 커버리지테스트

3> 경험 기반 테스트 : 유사소프트웨어나 유사 기술 평가에서 테스터의 경험을 토대로 한, 직관과 기술 능력을 기반으로 수행하는 테스트

 

테스트 오라클 : 테스트의 결과가 참인지 거짓인지 판단하기 위해서 사전에 정의된 참 값을 입력하여 비교하는 기법 및 활동

1> 참오라클 : 모든 입력 값에 대하여 기대하는 결과를 생성함으로써 발생된 오류를 모두 검출할 수 있는 오라클

2> 샘플링 오라클 : 특정한 몇개의 입력 값에 대해서만 기대하는 겨로가를 제공해 주는 오라클

3> 휴리스틱 오라클 : 샘플링 오라클을 개선한 오라클로, 특정 입력 값에 대해 올바른 결과를 제공하고 나머지 값들에 대해서는 휴리스틱(추정)으로 처리하는 오라클

4> 일관성 검사 오라클 : 애플리케이션 변경이 있을 때 수행전과 후의 결과 값이 동일한지 확인하는 오라클

 

테스트 시나리오 : 테스트 수행을 위한 여러 테스트 케이스의 집합으로서, 테스트 케이스의 동작 순서를 기술한 문서이며 테스트를 위한 절차를 명세한 문서이다.

 

통합테스트 : 소프트웨어 각 모듈 간의 인터페이스 관련 오류 및 결함을 찾아내기 위한 체계적인 테스트 기법

하향식 통합 : 메인제어 모듈로부터 아래 방향으로 제어의 경로를 따라 이동하며 하향식으로 통합 테스트를 진행하고, 메인 제어 모듈에 통합되는 하위모듈과 최하위 모듈은 '깊이 우선' 또는 '너비 우선" 방식으로 통합된다. (Stub 필요)

Stub : 특정 시스템 컴포넌트의 개발이 완료되지 않은 상황에서도 필요한 시험을 진행하고 위해 생성된 더미 컴포넌트를 의미.

 

상향식 테스트 : 애플리케이션 구조에서 최하위 레벨의 모듈 또는 컴포넌트로부터 위쪽 방향으로 제어의 경로를 따라 이동하면서 구축과 테스트를 시작한다. (드라이버 필요)

드라이버 : 시스템 및 시스템 컴포넌트를 시험하는 환경의 일부분으로 시험을 지원하는 목적 하에 생성된 코드와 데이터이다.

 

테스트 자동화 : 테스트 도구를 활용하여 반복적인 테스트 작업을 스크립트 형태로 구현함으로써, 테스트 기간 단축과 인력 투입 비용을 최소화하는 한편, 쉽고 효율적인 테스트를 수행할 수 있는 방법이다.

(휴먼에러를 줄이고 테스트에 소요되는 비용과 시간을 절감하여 테스트 품질을 향상 시킬 수 있는 도구)

 

에러 : 결함의 원인이 되는 것으로 일반적으로 사람에 의해 생성된 실수

결함/결점/버그 : 에러 또는 오류가 원인이 되어 소프트웨어 제품에 포함되어 있는 결함을 말하며, 이를 제거하지 않으면 소프트웨어 제품이 실패하거나 문제가 발생할 수 있다.

 

결함관리 : 에러등록→에러분석→결함확정→결함할당→결함조치→결함조치검토및승인→결함의상태예시

 

결함 추이 분석 : 테스트 완료 후 발견된 결함 관리 측정 지표의 속성 값들을 분석하고, 향후 애플리케이션의 어떤 모듈 또는 컴포넌트에서 결함이 발생할지를 추정하는 작업

 

결함 관리 측정 지표

1> 결함분포 : 특정 속성에 해당하는 결함의 수를 측정하여 결함의 분포를 분석

2> 결함추적: 테스트 진행 시간의 흐름에 따른 결함의 수를 측정하여 결함 추세를 분석할 수 있다.

3> 결함에이징 : 등록된 결함에 대해 특정한 결함 상태의 지속 시간을 측정하여 분석할 수 있다.

 

결함 심각도 :   high, medium, low로 나타냄

 

애플리케이션 성능 지표 : 처리량, 응답 시간, 경과 시간, 자원 활용률(처응경자)

 

모니터링 도구 : 애플리케이션 실행 시 자원 사용량을 확인하고 분석 가능한 도구로, 성능 모니터링, 서능 저항 원인 분석, 시스템 부하량 분석, 장애 진단, 사용자 분석, 용량 산정 등의 기능을 제공하여 시스템의 안정적 운영을 지원하는 도구

 

코드리팩토링 : 외부동작을 바꾸지 않으면서 내부 구조를 개선하는 방법, 소프트웨어를 보다 이해하기 쉽고 수정하기 쉽도록 만드는 기법

 

 

 

 

 

반응형

댓글