정보처리기사 실기

정보처리기사 실기 정리 - 애플리케이션 테스트 관리

잉아당 2021. 4. 23. 22:24
728x90

<단답형>

 

테스트 계획서 : 테스트 목적과 범위 정의, 종료 조건 정의 등 테스트 수행을 계획한 문서 

 

테스트 베이시스 : 논리적인 Case로 테스트 설계를 위한 기준이 되는 문서

 

테스트 케이스 : 테스트를 위한 설계 산출물로 요구사항을 준수하는지 확인하기 위해  여러 값으로 구성된 테스트 항목 명세서

 

테스트 슈트 : 테스트 케이스를 실행환경에 따라 구분해 놓은 테스트 케이스의 집합

 

테스트 시나리오 : 어플리케이션의 테스트 되어야 할 기능 및 특징, 테스트가 필요한 상황을 작성한 문서

 

테스트 스크립트 : 테스트 케이스의 실행 순서를 작성한 문서

 

테스트 결과서 : 테스트 결과를 정리한 문서로 테스트 프로세스를 리뷰하고 테스트 결과를 평가하고 리포팅하는 문서

 

화이트박스 테스트 : 구문커버리지, 결정커버리지, 조건 커버리지, 조건/결정 커버리지, 변경 조건/결정 커버리지, 다중 조건 커버리지, 경로 커버리지, 제어 흐름 테스트, 데이터 흐름 테스트 

 

블랙박스 테스트 : 동등 분할 테스트, 경계값 분석 테스트, 결정 테이블 테스트, 상태 전이 테스트, 유스케이스 테스트, 분류 트리 테스트, 페어와이즈 테스트, 원인-결과 그래프 테스트, 비교 테스트

 

검증 : 개발자 시작으로 소프트웨어가 명세화된 기능을 올바로 수행하는지 알아보는 과정

 

확인 : 사용자 시작으로 올바른 소프트웨어가 개발되었는지 입증하는 과정

 

회복 테스트 : 시스템에 고의로 실패를 유도하고 시스템의 정상적 복귀 여부를 테스트하는 기법

 

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

 

성능 테스트 : 사용자의 이벤트에 시스템이 응답하는 시간 특정 시간 내에 처리하는 업무량, 사용자 요구에 시스템이 반응하는 속도 등을 측정하는 테스트 기법

 

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

 

회귀 테스트 :  오류를 제거하거나 수정한 시스템에서 오류 제거와 수정에 의해 새로이 유입된 오류가 없는지 확인하는 일종의 반복 테스트 기법

 

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

 

부하 테스트 : 시스템에 부하를 계속 증가시키면서 시스템의 임계점을 찾는 테스트 

 

스트레스 테스트 : 시스템 처리 능력 이상의 부하를 가하여 비정상적인 상황에서의 처리를 테스트 

 

스파이크 테스트 : 짧은 시간에 사용자가 몰릴 때 시스템의 반응 측정 테스트 

 

내구성 테스트 : 오랜 시간 동안 시스템에 높은 부하를 가하여 시스템 반응 테스트

 

명세 기반 테스트(블랙박스) : 프로그램의 요구사항 명세서를 기반으로 테스트 케이스를 선정하여 테스트하는 기법

 

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

 

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

 

리뷰 : 소프트웨어의 다양한 산출물에 존재하는 결함을 검출하거나 프로젝트의 진행 상황을 점검하기 위한 활동으로 전문가가 수행

 

인스펙션 : 저작자 외의 다른 전문가 또는 팀이 검사하여 문제를 식별하고 문제에 대한 올바른 해결을 찾아내는 형식적인 검토 기법

 

워크스루 : 검토 자료를 회의전에 배포해서 사전 검토한 후 짧은 시간 동안 회의를 진행하는 형태로 리뷰를 통해 문제 식별, 대안 조사, 개선화, 학습 기회를 제공하는 가장 비형식적인 검토 기법

 

탐색적 테스트 : 테스트 스크립트 또는 테스트 케이스를 문서로 작성하지 않고 경험에 바탕을 두고 탐색적으로 기능을 수행해 보면서 테스트하는 기법

 

오류 추정 : 개발자가 범할 수 있는 실수를 추정하고 이에 따른 결함이 검출되도록 테스트 케이스를 설계하여 테스트 하는 기법

 

체크리스트 : 테스트하고 평가해야 할 내용과 경험을 분류하여 나열한 이유 하나씩 확인하는 테스트 기법

 

특성 테스트 : 품질 특성을 염두에 두고 이를 근간으로 경험적으로 테스트 케이스를 설계하고 테스트하는 기법

 

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

 

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

 

휴리스틱 오라클 : 특정 입력값에 대해 올바른 결과를 제공하고 나머지 값들에 대해서는 휴리스틱으로 처리하는 오라클 

 

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

 

단위 테스트 : 사용자 요구사항에 대한 단위 모듈,서브루틴 등을 테스트 하는 단계 

 

통합 테스트 : 단위 테스트를 통과한 모듈 사이의 인터페이스, 통합된 컴포넌트 간의 상호작용을 검증하는 테스트 단계 

 

시스템 테스트 : 통합된 단위 시스템의 기능이 시스템에서 정상적으로 수행되는지를 검증하는 테스트 단계 

 

인수 테스트 : 계약상의 요구사항이 만족되었는지 확인하기 위한 테스트 단계 

 

더미 객체 : 테스트할 때 객체만 필요하고 해당 객체의 기능까지는 필요하지 않은 경우에 사용

 

테스트 스텁 : 제어 모듈이 호출하는 타 모듈의 기능을 단순히 수행하는 도구로 더미 객체에의 단순 기능에 특정 상태를 가정해서 특정한 값을 리턴하거나 특정 메시지 출력

 

테스트 드라이브 : 테스트 대상 하위 모듈을 호출하고 파라미터를 전라하고 모듈 테스트 수행 후의 결과를 도출

 

테스트 스파이 : 주로 테스트 대상 클래스와 협력하는 클래스로 가는 출력을 검증하는 데 사용 

 

가짜 객체 : 실제 협력 클래스의 기능을 대체해야 할 경우에 사용

 

하향식 통합 : 깊이 우선 , 너비 우선

 

샌드위치 통합 : 상향식 + 하향식

 

정적분석도구 : 만들어진 애플리케이션을 실행하지 않고 분석하는 도구

 

테스트실행도구 : 테스트를 위해 작성된 스크립트를 샐행하고 작성되니 스크립트는 각 스크립트마다 특정 데이터와 테스트 수행 방법을 포함

 

성능 테스트 도구 : 어플리케이션의 처리량, 응답시간, 경과시간, 자원사용률에 대해 가상의 사용자를 생성하고 테스트를 수행함으로써 성능 목표를 달성하였는지를 확인하는 도구 

 

테스트 통제 도구 : 테스트 계획 및 관리를 위한 테스트 관리 도구, 테스트 수행에 필요한 데이터와 도구를 관리하는 형상관리 도구, 테스트에서 발생한 결함에 대해 관리하거나 협업을 지원하기 위한 결함 추적/관리 도구 

 

테스트 하네스 : 테스트 드라이버, 테스트 스텁, 테스트 케이스, 테스트 슈트, 테스트 스크립트, 목 오브젝트

 

구체화 : 결함의 원인을 찾기 위해 결함을 발생시킨 입력값, 테스트 절차, 테스트 환경을 명확히 파악하는 방법

 

고립화 : 입력값, 테스트 절차, 테스트 환경 중 어떤 요소가 결함 발생에 영향을 미치는지 분석하는 방법

 

일반화 : 결함 발생에 영향을 주는 요소를 최대한 일반화 시키는 방법

 

기능 기반 커버리지 : 테스트 대상 어플리케이션의 전체 기능을 모수로 설정하고, 실제 테스트가 수행된 기능의 수를 측정하는 방법

 

라인 커버리지 : 어플리케이션 전체 소스 코드의 라인 수를 모수로 테스트 시나리오가 수행한 소스 코드의 라인 수를 측정하는 방법

 

코드 커버리지 : 소스 코드의 구문, 조건 등의 구조코드 자체가 얼마나 테스트되었는지를 측정하는 방법

 

결함의 종류 : 시스템 결함, 기능결함, GUI결함, 문서결함

 

처리량 : 어플리케이션이 주어진 시간에 처리할 수 있는 트랜잭션의 수

 

응답시간 : 사용자 입력이 끝난 후 어플리케이션의 응답 출력이 개시될 때까지의 시간 

 

경과시간 : 애플리케이션에 사용자가 요구를 입력한 시점부터 트랜잭션을 처리 후 그 결과의 출력이 완료할 때까지 걸리는 시간 

 

자원 사용률 : 어플리케이션이 트랜잭션을 처리하는 동안 사용하는 CPU 사용량, 메모리 사용량, 네트워크 사용량

 

가독성 : 이해하기 쉬운 용어를 사용

 

단순성 : 한번에 한가지 처리만 수행

 

의존성 최소 : 영향도를 최소화 

 

중복성 제거 : 중복된 코드를 제거

 

추상화 : 클래스/메서드/함수에 대해 동일한 수준의 추상화 구현

 

정적분석도구 : pmd, cppcheck, checkstyle

 

동적분석도구 : Avalanche, Valgrind

 

알파 테스트 : 사용자가 개발자 통제하에 함께 수행하는 테스트

 

베타 테스트 : 실제 환경에서 사용자가 테스트 하고  피드백 받는 테스트

 

 

 

 

 

 

<약술형>

 

소프트웨어 테스트 : 개발된 시스템이 요구사항을 만족하는지 확인하고 숨어있는 결함을 찾는 활동

 

결함이 존재 : 결함이 존재함을 밝히는 활동

 

완벽한 테스팅 불가 : 완벽하게 테스팅하려는 시도는 시간과 자원 낭비

 

초기에 테스팅 시작 : 테스팅 결과를 단시간에 알고 개발 기간 단축 

 

결함집중(파레토 법칙) : 오류의 80프로는 전체 20프로 내에서 발견

 

살충제 패러독스 : 동일한 테스트 케이스에 의한 반복적 테스트는 새로운 버그를 찾지 못함

 

정황에 의존 : 소프트웨어 성격에 맞게 테스트 실시

 

오류-부재의 궤변 : 요구사항 충족시키지 못하면 결함이 없어도 품질이 높다할 수 없음

 

정적 분석 : 실행하지 않고 분석하여 논리성을 검증하는 테스트 

 

동적 분석 : 실행하여 결함을 검출하는 테스트 

 

화이트박스 : 내부 구조와 동작을 검사하는 테스트

 

블랙박스 : 요구사항 명세를 보면서 수행하는 테스트

 

스텁 : 모듈 및 모든 하위 컴포넌트를 대신하는 더미 모듈

 

드라이브 : 상위의 모듈에서 데이터 입출력을 확인하기 위한 더미 모듈

 

테스트 하네스 : 컴포넌트 및 모듈을 테스트하는 환경의 일부분

 

외계인 코드 : 아주 오래되어 유지보수 작업이 어려운 코드

 

스파게티 코드 : 코드를 읽으면서 파악하기 어려운 코드 

 

클린코드 : 잘 정리된 코드

 

리팩토링 : 기능을 변경하지 않고 복잡한 소스 코드를 수정하여 가용성 및 가독성을 높이는 기법

 

에러 : 사람에 의해 생성된 실수