애플리케이션 테스트에서 사용되는 살충제 패러독스의 개념 간단히 서술
- 동일한 테스트 케이스로 동일한 테스트 반복하면 더이상 결함 발견 X
소프트웨어 테스트에서 오류 80%는 전체 모듈의 20% 내에서 발견된다는 법칙
애플리케이션 테스트 기본 원칙 중 소프트웨어 결함을 모두 제거해도 사용자의 요구사항을 만족시키지 못하면 해당 소프틑웨어는 품질이 높다고 말할 수 없는 원칙
애플리케이션을 실행하지 않고, 소스코드에 대한 코딩 표준, 코딩 스타일, 코드 복잡도 및 남은 결함을 발견하기 위하여 사용하는 테스트
애플리케이션 테스트 중 확인(validation) 테스트의 개념을 간략히 서술
애플리케이션 테스트 중 시스템에 과다 정보량을 부과하여 과부하 시에도 시스템이 정상적으로 작동되는지를 확인하는 테스트
애플리케이션 테스트 중 소프트웨어의 실시간 성능이나 전체적인 효율성을 테스트하여, 모든 단계에서 수행되는 테스트
소프트웨어 테스트 목적은 오류를 찾아내는 데 있다. 테스트 종류 중 개발자의 입장에서 소프트웨어가 요구사항에 맞는지를 추적하는데 중점을 두는 테스트
- verification test , 검증 테스트
소프트웨어가 수행할 특정 기능을 알기 위해서 각 기능이 완전히 작동되는 것을 입증하는 테스트로 동치 클래스 분해 및 경계가 분석을 이용하는 테스트 기법
테스트 기법 중 다음과 같이 평가점수 표를 미리 정해 놓은 후 강 영역에 해당하는 입력 값을 넣고 예상되는 출력 값이 나오는지 실제 값과 비교하는 명세 기반 테스트 기법
(1): 최소 한번은 모든 문장이 수행되도록 구성하는 검증 기준
(2): 조건 식이 참(true)/거짓(false)일 때 수행되도록 구성하는 검증기준
(3) : (2)와 달리 조건식에 상관없이 개별 조건이 참(true)/거짓(false)일 때 수행되도록 구성하는 검증기준
- 구문(문장) 검증 기준 , 결정(분기) 검증 기준 , 조건 검증 기준
테스트 기법 중 (1)은 조건은 중간 값보다 경계 값에서 오류가 발생될 확률이 높다는 점을 이용한 검사기 기법이고, (2)는
입력 조건이 유효한 경우와 그렇지 않은 경우의 입력 자료의 개수를 균등하게 정하는 검사 기법이다.
테스트 기법 중 그래프를 활용하여 입력 데이터 간혹 관계와 출력에 영향을 미치는 상황을 체계적으로 분석한 다음 효용성이 높은 테스트 케이스를 선정하여 검사하는 기법
검증 검사 기법 중 개발자의 장소에서 사용자가 개발자 앞에서 행해지며 오류와 사용상의 문제점을 사용자와 개발자가 함께 확인하면서 검사하는 기법
알파 테스트 베타 테스트와 가장 밀접한 연관이 있는 테스트로 개발한 소프트웨어가 사용자의 요구 사항을 충족하는지에 중점을 두고 테스트하는 기법
애플리케이션 테스트 중
(1) : 코딩 직후 소프트웨어 설계의 최소단위인 모듈이나 컴포넌트의 초점을 맞춰 수행하는 테스트로 모듈 테스트 라고도 불린다.
(2) : 모델들을 결합하여 하나의 시스템으로 완성시키는 과정에서 테스트를 의미하며 모듈 간 또는 컴포넌트 간의 인터페이스가 정상적으로 실행되는지를 검사한다.
하향식 통합에 있어서 모듈 간의 통합 시험을 위해 일시적으로 필요한 조건 만을 가지고 임시로 제공되는 시험용 모듈
깊이 우선 방식 또는 너비 우선 방식이 있고 상위 컴포넌트를 테스트하고 점증적으로 하위 컴포넌트를 테스트한다. 하위 컨퍼런트 개발이 완료되지 않은 경우 스톱을 사용하기도 하는 애플리케이션 통합 테스트 유형은
상향식 통합 테스트의 단계
ㄱ. 드라이버라는 제어 프로그램의 작성
ㄴ. 낮은 수준의 모델들을 클러스터로 결합
ㄷ. 클러스터의 검사
ㄹ. 드라이버를 제거하고 클러스터를 상위로 결합
(1)는 소프트웨어의 하위 모듈에서 상위 모델 방향으로 통합하면서 테스트하는 기법이다. 하나의 주요 제어 몸과 관련된 종속 모듈의 그룹인 클러스터가 필요하다. 데이터 입출력을 확인하기 위해 더미모듈인 (2)를 생성한다.
애플리케이션 테스트 프로세스의 단계
ㄱ. 테스트 분석 ㄴ. 테스트 계획
ㄷ. 테스트 실행 ㄹ. 테스트 케이스 작성 ㅁ. 테스트 결과 분석
결함 관리 단계를 순서대로 나열
ㄱ. 에러발견 ㄴ. 에러등록 ㄷ. 에러분석 ㄹ. 결함 확정
ㅁ. 결함 할당 ㅂ. 결함 조치
특정한 몇몇 테스트 케이스 입력 값들의 대해서만 기대하는 결과를 제공하는 오라클로, 전수 테스트가 불가능한 경우 사용하고 경계값 및 구간별 예산과 결과로 작성시 사용하는 오라클
테스트의 결과가 참인지 거짓인지를 판단하기 위해서 사전에 정의된 참 값을 입력하여 비교하는 기법 및 활동. 종류에는 참, 샘플링, 휴리스틱, 일관성 검사가 존재한다.
구형된 소프트웨어가 사용자의 요구사항을 정확하게 준수했는지를 확인하기 위해 설계된 입력값, 실행조건, 기대 결과 등으로 구성된 테스트 항목에 대한 명세서의 명칭
테스트 케이스를 적용하는 순서에 따라 여러 개의 테스트 케이스들은 묶은 집합으로 테스트 케이스들을 적용하는 구체적인 절차를 명세한 문서
애플리케이션은 처리량, 응답시간 경과 시간, 자원 사용률에 대해 가상 은 사용자를 생성하고 테스트를 수행함으로써 성능 목표를 달성하여 있는지를 확인하는 테스트 자동화 도구
테스트 자동화 도구 중 프로그램을 실행하지 않고 분석하는 도구로 소스코드 에 대한 코딩 표준 코딩 스타일 코드 복잡도 및 남은 결함 등을 발견하기 위해 사용된다,
테스트 하네스는 애플리케이션을 컴포넌트 및 몸을 테스트하는 환경의 일부분으로 테스트를 지원하기 위해 생성된 코드와 데이터를 의미한다 테스트 하네스의 구성요소
(1) : 테스트 대상의 하위 메뉴를 호출하고 파라미터를 전달하고 모듈 테스트 수행 후 결과를 도출하는 도구
(2) : 제어 모듈이 호출하는 타 모듈의 기능을 단순히 수행하는 도구로 일시적인 필요한 조건 만을 가지고 있는 테스트용 모듈
(3) : 자동화된 테스트 실행 절차에 대한 명세서
(4) : 사전에 사용자의 행위를 조건부로 입력해 두면 그 상황에 맞는 예정된 행위를 수행하는 객체
- 테스트 드라이버, 테스트 스텁, 테스트 스크립트, 목 오브젝트
( )는 오류 발생 작동 실패 등과 같이 소프트웨어가 개발자의 설계와 다르게 도착하거나 다른 결과를 발생되는 것을 의미한다.
애플리케이션 성능 이란 최소한의 자원을 사용하여 최대한 많은 기능을 신속하게 처리하는 정도를 나타낸다. 애플리케이션 성능 측정 지표
(1) : 일정 시간 내에 애플리케이션이 처리하는 일에 양
(2) : 애플리케이션을 요청을 전달한 시간부터 응답이 도착할 때까지 걸린 시간
(3) : 애플리케이션의 작업을 의뢰한 시간부터 처리가 완료될 때까지 걸린 시간
빅오 표기법에 서 알고리즘을 수행 시간이 입력 데이터수와 관계없이 일정하다는 것을 의미하는 알고리즘 시간 복잡도
정렬된 N개의 데이터를 처리하는 데 O(Nlog_2N)의 시간이 소요되는 정렬 알고리즘 2개
순환복잡도
- V(G) = E-N+2 (E: 화살표, N:노드)
클린 코드 작성 원칙
한번에 한가지만 수행하고 클래스/메소드/함수를 최소 단위로 분리한다는 원칙
외계인 코드 간략히 서술
- 아주 오래되거나 참고문서 또는 개발자가 없어 유지보수 작업이 어려운 코드
소스코드 품질 분석 도구 중 정적 분석 도구
- pmd, cppcheck, checkstyle
( )는 누구나 쉽게 이해하고 수정 및 추가할 수 있는 단순, 명료한 코드, 즉 잘 작성된 코드를 의미한다.
애플리케이션 테스트는 애플리케이션에 잠재되어있는 결함을 찾아내는 일련의 행위 또는 절차로 개발된 소프트웨어가 고객의 요구 사항을 만족시키는지 (1) 하고 소프트웨어가 기능을 정확히 수행하는지 (2)해야한다. (1)은 개발된 소프트웨어가 사용자의 입장에서 고객을 요구사항에 맞게 구현되어 있는지 (2)은 개발된 소프트웨어가 개발작업을 입장에서 명세서에 맞게 만들어졌는지를 보는 것이다
- 확인 (Validation), 검증(Verification)
애플리케이션 테스트의 기본원리
(1) 소프트웨어의 결함을 모두 제거해도 사용자 요구사항을 만족시키지 못하면 해당 소프트웨어는 품질이 높다고 말할 수 없다
(2)동일한 테스트 케이스로 동일한 테스트를 반복하면 더 이상 결함이 발견되지 않으므로 테스트 케이스를 지속적으로 개선해야 한다
(3) 애플리케이션의 20% 당하는 코드에서 전체 80%함이 발생한다
- 오류- 부재의 궤변, 살충제 패러독스, 파레토 법칙
애플리케이션 테스트 종류
(1) 시스템에 여러 가지 결함을 주어 실패 하도록 한 후 올바르게 복구되는 지를 확인하는 테스트
(2) 시스템에 과도한 정보량이 나 빈도 등을 부과하며 과부하 시에도 소프트웨어가 정상적으로 실행되는 지를 확인하는 테스트
(3)소프트웨어의 변경 또는 수정된 코드에 새로운 결함이 없음을 확인하는 테스트
(4) 변경된 소프트웨어와 기존 소프트웨어의 동일한 데이터를 입력하여 결과를 비교하는 테스트
- 회복 테스트, 강도 테스트, 회귀 테스트, 병행 테스트
개발 수명 주기에 따른 테스트 방식 v모델
소프트웨어 테스트에 사용되는 방식으로 모듈의 논리적 구조를 체계적으로 점검하는 구조 테스트 이며 유형에는 기초 경로 검사, 조건 검사, 데이터 흐름 검사, 루프 검사 등이 있는 테스트 방식
상향식 통ㅎ바 방식의 수행 단계
최하위 레벨의 모듈 또는 컴포넌트들이 하위 모듈의 기능을 수행하는 (1)로 결합된다. 상위의 모듈에서 데이터의 입출력ㅇ르 확인하기 위한 더미 모듈인 (2)를 작성한다. 각 통합된 (1) 단위로 테스트 한다. 테스트가 완료되면 각 (1)은 프로그램의 위쪽으로 결합되고, (2)는 실제 모듈또는 컴포넌트로 대체된다.
( )는 이미 테스트된 프로그램의 테스팅을 반복하는 것으로 통합 테스트로 인해 변경된 모듈이나 컴포넌트의 새로운 오류가 있는지 확인하는 테스트 이다.
테스트 자동화 도구 중 ( )는 애플리케이션을 컴포넌트 및 모듈을 테스트하는 환경의 일부분으로 테스트로 지원하기 위해 생성된 코드와 데이터를 의미하고 ( ) 도구는 테스트가 실행될 환경을 시물레이션 하여 컴포넌트 및 모듈이 정상적으로 테스트 되도록 한다.
결함 관리 측정 지표들
(1) : 모듈 또는 컴포넌트 특정 속성에 해당하는 결함 수 측정
(2) : 테스트 진행 시간에 따른 결함 수의 추이 분석
(3) : 특정 결함 상태로 지속되는 시간 측정
애플리케이션 성능 이란 사용자가 요구한 기능에 대해 최소한의 자원을 사용하여 최대한 많은 기능을 신속하게 처리하는 정도를 나타낸다. 애플리케이션은 성능을 측정하기 위한 지표 네가지
소프트웨어 인터페이스에서 실시되는 기능 테스트로 소프트웨어 기능이 의도대로 작동하고 있는지 테스트하는 기법
테스트 오라클의 종류
(1) : 특정 테스트 케이스 입력 값을 대해 기대하는 결과를 제공하고 나머지 입력값 들에 대해서는 추정으로 처리하는 오라클
(2) : 모든 테스트 케이스 입력 값에 대해 기대하는 결과를 제공하는 오라클로, 발생된 모든 오류를 검출할 수 있다
(3) : 애플리케이션을 변경이 있을 때 테스트 케이스 수행 전과 후 결과 값이 동일한지를 확인하는 오라클
(4) : 특정한 몇몇 테스트 케이스의 입력 값들에 대해서만 기대하는 결과를 제공하는 오라클
- 추정 오라클, 참 오라클, 일관성 검사 오라클, 샘플링오라클
클린 코드 작성 원칙 중 누구든지 쉽게 이해하는 코드를 작성하는 원칙
블랙박스 테스트 기법 모두 골라
- 경계값 분석, 오류 예측, 동등 분할 기법, 동치 클래스 분해, 원인 결과 그래프
** 동치 클래스 분해는 동치 문할 검사의 다른 이름이다.