문제 1. 네트워크 장치를 필요로하지 않고 네트워크 토폴로지가 동적으로 변화되는 특징이 있으며 응용 분야로는 긴급 구조, 긴급 회의, 전쟁터에서의 군사 네트워크에 활용되는 네트워크는?
답:
애드혹 네트워크(Ad-hoc Network)
무선 네트워크 구성 방식 :
애드혹 네트워크 - 센서망, 재난망에 사용되며 구성이 빠르고 모든 단말이 동등한 자격으로 망을 구성
Infrastructure 네트워크 - 이동통신망,Wi-Fi에 사용되며 중앙집중형 방식
메쉬 네트워크 - 무선백본망에 사용되며 신뢰성이 우수하고, 계층적인 구조를 가지고 있음
문제 2. 다음 (1), (2)에 알맞는 답안을 쓰시오.
(1) 사람의 감정이나 경험을 나타내는 개념
(2) 사용자 인터페이스. 예로는 CLI이 있다.
답:
1. UX(UserExperience)2. UI(User Interface)문제 3. 트랜잭션의 특징 중, 원자성에 대해 약술하십시오.
답:
모두 반영되거나 아니면 전혀 반영되지 않아야 한다.
트랜젝션 특징 - 원자성, 일관성 , 독립성, 지속성
일관성 : 트랜잭션의 작업 처리 결과가 항상 일관성이 있어야 한다는 것
독립성 : 둘 이상의 트랜잭션이 동시에 실행되고 있을 경우, 어떤 하나의 트랜잭션이라도 다른 트랜잭션의 연산에 끼어 들 수 없다는 점
지속성 : 트랜잭션이 성공적으로 완료되었을 경우에 결과는 영구적으로 반영되어야 한다는 점
문제 4. 다음은 제 ( ) 정규형으로써, 부분 함수적 종속성을 제거하여, 완전 함수적 종속을 만족하는 정규형은?
답:
2
- 기본키(주문번호 컬럼)이 제품번호에 의해 결정될 수 있기때문에 분해를 해야합니다.
- 부분 함수적 종속성 : 기본키의 부분집합이 결정자가 되버린 현상
제 1정규형 : 도메인이 원자값
제 2정규형 : 부분 함수적 종속 제거
제 3정규형 : 이행적 함수 종속 제거
BCNF : 결정자이면서 후보키가 아닌 것 제거
제 4정규형 : 다치 종속 제거
제 5정규형 : 조인 종속 제거
문제 5. 다음은 테이블을 수정할 때의 상황입니다. SQL 보기에서 괄호안에 알맞는 문장을 작성하시오.
( 1 ) 테이블명 ( 2 ) 컬럼 = 값 WHRE 점수 >= 90;
답:
1. UPDATE
2. SET
문제 6. 다음 SQL 보기에서 JOIN할 경우 괄호안에 알맞는 문장을 작성하시오.
SELECT .... FROM 학생정보 a JOIN 학과정보 b ( 1 ) a.학과 = b.( 2 )
답:
1. ON
2. 학과
문제 7. 파이썬 비트 연산자 코드 결과
a = 100
result = 0
for i in range(1,3);
result = a >> i
result = result + 1
pirnt(result)
답:
26
문제 8. 미국 국립 표준 기술연구소(NIST), DES를 대체하며, 128 비트 블록 크기와 128, 192, 256비트 키 크기의 대칭 키 암호화 방식은?
답:
AES (Advanced Encryption Standard)
대칭키 알고리즘 :
동일한 키를 사용하여 암호화와 복호화를 하는 것을 의미하며 가장많이 사용하는 알고리즘이 AES 입니다.
문제 9. 화이트박스 테스트 검중 중에, 각 번호에 해당하는 단어 선택하시오.
1. 최소 한 번은 모든 문장을 수행한다
2. 결정(Decision) 검증 기준이라고도 하며, 조건별 True/False일 때 수행한다.
3. 2번과 달리 전체 조건식에 상관없이 개별 조건식의 True/False에 대해 수행한다.
[보기]
ㄱ. 다중 조건 커버리지 | ㄴ. 변형 조건/결정 커버리지 | ㄷ. 조건 커버리지 |
ㄹ. 결정(분기 커버리지) | ㅁ. 구조 커버리지 | ㅂ. 구문(문장 커버리지) |
답:
1. 문장(ㅂ)
2. 결정(ㄹ)
3. 조건(ㄷ)
문제 10. SQL문에서 괄호안에 알맞은 답안을 작성하시오. (실제 시험에는 결과 이미지가 있습니다.)
('이름'이란 컬럼에 '이'로 시작하는 문자열을 '내림차순'하는 쿼리 결과 내용입니다.)
SELECT .... FROM ... WHERE 이름 LIKE ( 1 ) ORDER BY ( 2 )
답:
1. '이%'
2. DESC
문제 11. 응집도 문제로써, 각 번호에 해당하는 응집도를 쓰시오. (실제 시험문제에서는 보기가 주어집니다.)
1. 입출력 간 연관성은 없으나, 순서에 따라 수행되는 것
2. 동일한 입력과 출력 사용
3. 하나의 기능에 모두 기여하고 밀접하게 연관되어 있는 것 (그룹화)
[보기]
ㄱ. 기능적(functional) | ㄴ. 시간적(temporal) | ㄷ. 교환적(communication) | ㄹ. 절차적(procedual) |
ㅁ. 순차적(sequential) | ㅂ. 우연적(coincidental) | ㅅ. 논리적(logical) |
답:
1. 절차적(procedual, ㄹ)
2. 교환적(communication, ㄷ)
3. 기능적(functional, ㄱ)
응집도 순서 (낮은것부터 높은 순서)
우연적 > 논리적 > 시간적 > 절차적 > 교환적 > 순차적 > 기능적
우연적 응집도 : 모듈 내부의 각 구성요소들이 연관이 없을 경우
논리적 응집도 : 유사한 성격을 갖거나 특정 형태로 분류되는 처리 요소들이 한 모듈에서 처리되는 경우
시간적 응집도 : 연관된 기능이라기보단 특정 시간에 처리되어야 하는 활동들을 한 모듈에서 처리할 경우
순차적 응집도 : 모듈 내에서 한 활동으로부터 나온 출력값을 다른 활동이 사용할 경우
* 해설
- 응집도 : 정보은닉 개념 확장, 응집도가 강할수록 품질이 좋음
[ 응집도가 강한 순서 -> 약한 순서]
functional – sequential – communication – procedural – temporal – logical – coincidental
기능-단일 / 순차-나온것 입력으로 / 통신-동일한입출력 다른기능수행
절차-다수의 관련기능 순차수행 / 시간-특정시간 / 논리-유사한 성격 / 우연-서로 관련 없는 요소
- 기능적 : 모듈 내부의 모든 기능 요소들이 단일 문제와 연관되어 수행될 경우
- 순차적 : 모듈 내 하나의 활동으로부터 나온 출력 데이터를 그 다음활동의 입력 데이터로 사용할 경우
- 통신적(교환적) : 동일한 입출력을 사용하여 서로 다른 기능을 수행하는 구성 요소들이 모였을 경우
- 절차적 : 모듈이 다수의 관련 기능을 가질 때 모듈 안의 구성요소들이 그 기능을 순차적으로 수행할 경우
- 시간적 : 특정 시간에 처리되는 몇 개의 기능을 모아 하나의 모듈로 작성한 경우
- 논리적 : 유사한 성격을 갖거나 특정 형태로 분류되는 처리요소들이 하나의 모듈이 되는 경우
- 우연적 : 모듈 내부의 각 구성요소들이 서로 관련 없는 요소로만 구성된 경우
- 결합도 : 상호의존의 정도, 결합도가 약해야 품질이 상승
[ 결합도가 약한 순서 -> 강한 순서 ]
data – stamp – control – external – common - content
자료-데이터 / 스탬프-자료구조 / 제어-다른 모듈에서 흐름 파악 / 외부-참조 / 공통-공유되는 / 내용-직접참조,다른모듈에서 사용
- 자료: 어떤 모듈이 다른 모듈을 호출하면서 매개 변수나 인수로 데이터를 넘겨주고, 호출 받은 모듈은 받은 데이터에 대한 처리 결과를 다시 돌려주는 방식
- 스탬프: 두 모듈이 동일한 자료 구조를 조회하는 경우
- 제어: 한 모듈이 다른 모듈의 상세한 처리 절차를 알고 있어 이를 통제하는 경우나 처리 기능이 두 모듈에 분리되어 설계된 경우, 다른 모듈에서 흐름을 제어
- 외부: 어떤 모듈에서 선언한 데이터를 외부의 다른 모듈에서 참조할 때
- 공통: 공유되는 공통 데이터 영역을 여러 모듈이 사용할 때
- 내용: 한 모듈이 다른 모듈의 내부 기능 및 그 내부 자료를 직접 참조하거나 수정할 때
( 다른 모듈에서 사용하는 경우 )
문제 12. 패킷교환방식 중에서, 번호에 해당하는 방식을 적으시오.
1. 목적지 호스트와 미리 연결한 후, 통신하는 연결형 교환 방식
2. 헤더에 붙어서 개별적으로 전달하는 비연결형 교환 방식
답:
1. 가상 회선 방식
2. 데이터그램 방식
패킷교환방식(저장 방식) : 패킷이라는 단위를 사용하여 데이터를 송신하고 수신합니다. 패킷이란 정보를 일정한 크기로 분할한 뒤 각각의 패킷에 송수신 주소 및 부가 정보를 입력한 것으로 현재 컴퓨터 네트워크에서 주로 사용하는 방식입니다. (EX : 인터넷)
* 반대개념
회선 교환 방식(비 저장 방식) : 물리적 전용선을 활용하여 데이터 전달 경로가 정해진 후 동일 경로로만 전달이 됩니다. 데이터를 동시에 전송할 수 있는 양을 의미하는 대역폭이 고정되고 안정적인 전송률을 확보할 수 있습니다. (EX : 전화망)
문제 13. 괄호 ( ) 안에 알맞는 단어를 쓰시오.
디자인 패턴 중에서 ( )패턴은 반복적으로 사용되는 객체들의 상호작용을 패턴화 한 것으로, 클래스나 객체들이 상호작용하는 방법이다. 알고리즘의 패턴에는 Interpreter, Observer, Command 가 있다.
답:
행위(behavioral)
* 해설
* MVC 패턴 : Model, View, Controller로 이루어진 패턴
생성 패턴 (Creational Pattern) |
구조 패턴 (Structural Pattern) |
행위 패턴 (Behavioral Pattern) |
객체의 생성과 관련된 패턴 | 클래스나 객체들을 조합하여 더 큰 구조로 만들 수 있게 해주는 패턴 |
클래스나 객체들이 서로 상호작용하는 방법이나 책임 분배 방법을 정의하는 패턴 |
- 추상 팩토리(Abstract Factory) - 빌더(Builder) - 팩토리 메소드(Factory Method) - 프로토타입(Prototype) - 싱글톤(Singleton) |
- 어댑터(Adapter) - 브리지(Bridege) - 컴포지트(Composite) - 데코레이터(Decorator) - 퍼싸드(Facade) - 플라이웨이트(Flyweight) - 프록시(Proxy) |
- 책임 연쇄(Chain of Responsibility) - 커맨드(Command) - 인터프리터(Interpreter) - 반복자(Iterator) - 중재자(Mediator) - 메멘토(Memento) - 옵서버(Observer) - 상태(State) - 전략(Strategy) - 템플릿 메소드(Template Method) - 방문자(Visitor) |
< 생성 패턴 >
* 추상 팩토리
- 동일한 주제의 다른 팩토리를 묶어줌
- 구체적인 클래스에 의존하지 않고 서로 연관되거나 의존적인 객체들의 조합을 만드는 인터페이스를 제공하는 패턴
* 빌더
- 생성과 표기를 분리해 복잡한 객체를 생성
* 팩토리 메소드
- 생성할 객체의 클래스를 국한하지 않고 객체를 생성
- 객체 생성 처리를 서브 클래스로 분리해 처리하도록 캡슐화하는 패턴
* 프로토타입
- 기존 객체를 복제함으로써 객체를 생성
* 싱글톤
- 한 클래스에 한 객체만 존재하도록 제한
- 전역 변수를 사용하지 않고 객체를 하나만 생성하도록 하며, 생성된 객체를 어디에서든지 참조할 수 있도록 하는 패턴
< 구조 패턴 >
* 어댑터
- 인터페이스가 호환되지 않는 클래스들을 함께 이용할 수 있도록, 타 클래스의 인터페이스를 기존 인터페이스에 덧씌움
* 브리지
- 추상화와 구현을 분리해 둘을 각각 따로 발전시킬 수 있음
* 컴포지트
- 0개, 1개 혹은 그 이상의 객체를 묶어 하나의 객체로 이용할 수 있음
- 여러 개의 객체들로 구성된 복합 객체와 단일 객체를 클라리언트에서 구별없이 다루게 해주는 패턴
* 데코레이터
- 기존 객체의 매서드에 새로운 행동을 추가하거나 오버라이드 할 수 있음
* 퍼싸드
- 많은 분량의 코드에 접근할 수 있는 단순한 인터페이스를 제공
* 플라이웨이트
- 다수의 유사한 객체를 생성, 조작하는 비용을 절감할 수 있음
* 프록시
- 접근 조절, 비용 절감, 복잡도 감소를 위해 접근이 힘든 객체에 대한 대역을 제공함
< 행위 패턴 >
* 커맨드
- 위의 명령어를 각각 구현하는 것보다는 위 그림처럼 하나의 추상 클래스에 메서드를 하나 만들고 각 명령이 들어오면 그에 맞는 서브 클래스가 선택되어 실행하는 것
- 실행될 기능을 캡슐화함으로써 주어진 여러 기능을 실행할 수 있는 재사용성이 높은 클래스를 설계하는 패턴
* Observer 패턴(2020 실기 1회 기출문제)
- 어떤 클래스에 변화가 일어났을 때, 이를 감지하여 다른 클래스에 통보해주는 것
- 한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체들에게 연락이 가고 자동으로 내용이 갱신되는 패턴
* 템플릿 메소드
- 상위 클래스에서는 추상적으로 표현하고, 그 구체적인 내용은 하위 클래스에서 결정되는 디자인 패턴
- 어떤 작업을 처리하는 일부분을 서브 클래스로 캡슐화해 전체 일을 수행하는 구조는 바꾸지 않으면서 특정 단계에서 수행하는 내역을 바꾸는 패턴* 디자인 패턴 종류 설명
문제 14. 병행제어기법 중, 접근한 데이터에 대한 연산을 모두 마칠때까지 상호배제하는 기법을 무엇이라 하는지 작성하시오.
답:
로킹(Locking) 혹은 잠금
병행제어란 다중 프로그램이 이점을 활용하여 동시에 여러 개의 트랜잭션을 병행수행할 때, 동시에 실행되는 트랜잭션들이 데이터베이스의 일관성을 파괴하지 않도록 트랜잭션 간의 상호작용을 제어하는 것입니다.
병행제어기법 - 로킹, 타임 스탬프 순서, 최적 병행 수행, 다중 버전 기법
타임 스탬프 순서(Time Stamp Ordering) : 트랜잭션과 트랜잭션이 읽거나 갱신한 데이터에 대해 트랜잭션이 실행을 시작하기 전에 시간표(time stamp)를 부여하여 부여된 시간에 따라 작업을 수행하는 기법
최적 병행 수행(검증기법, 낙관적 기법) : 병행수행하고자 하는 대부분의 트랜잭션이 읽기 전용 트랜잭션일 경우, 트랜잭션 간의 충동률이 매우 낮아서 병행제어 기법을 사용하지 않고 실행되어도 이 중의 많은 트랜잭션은 시스템의 상태를 일관성 있게 유지한다는 점을 이용한 기법
다중 버전 기법 : 타임 스탬프의 개념을 이용한 기법으로 타임 스탬프는 트랜잭션 및 데이터들이 이용될 때의 시간을 시간표로 관리하지만 다중 버전 기법은 갱신될 때마다의 버전을 부여하여 관리하는 기법
* 로킹 기법
- 주요 데이터의 액세스를 상호 배타적으로 하는 것으로, 트랜잭션들이 어떤 로킹 단위를 액세스하기 전에 Lock(잠금)을 요청해서 Lock이 허락되어야만 그 로킹 단위를 액세스할 수 있도록 하는 기법
* 2018년 3회 기출문제 발췌
병행 제어와 관련한 다음 설명에서 괄호 (①) ~ (③)에 가장 적합한 답을 쓰시오.
병행 제어(Concurrency Control)란 다중 프로그램의 이점을 활용하여 동시에 여러 개의 트랜잭션을 병행 수행할 때, 동시에 실행되는 트랜잭션들이 데이터베이스의 일관성을 파괴하지 않도록 트랜잭션 간의 상호 작용을 제어하는 기술이다. 데이터베이스의 공유와 시스템의 활용도를 최대화하고, 데이터베이스의 일관성을 유지하며, 사용자에 대한 응답시간을 최소화하기 위한 목적으로 사용된다.
병행 제어 기법의 종류 중 하나인 로킹(Locking)은 주요 데이터의 액세스를 상호 배타적으로 하는 것을 의미한다. 즉 트랜잭션들이 어떤 로킹 단위를 액세스하기 전에 Lock(잠금)을 요청해서 Lock이 허락되어야만 그 로킹 단위를 액세스할 수 있도록 하는 기법이다. 로킹 단위는 병행 제어에서 한 번에 잠금할 수 있는 단위로 데이터베이서, 테이불, 레코드, 필드 등이 사용될 수 있다. 로킹의 종류에는 공유 로크(S, Shared Lock), 배타 로크(X, Exclusive Lock), 의도 로크(I, Intention Lock), 의도 공유 로크(IS, Intention-Shared Lock), 배타 의도 로크(IX, Intention-Exclusive Lock), 공유 의도 독점 로크(SIX, Shared and Intention-Exclusive Lock)가 있다.
로킹과 관련된 다음 내용에 대해 맞으면 O, 틀리면 X로 답란에 쓰시오.
- 트랜잭션 T1이 데이터 항목 x에 대해 배타 잠금(Exclusive Lock)을 설정할 경우, 트랜잭션 T2는 데이터 항목 x에 대하여 읽기(read) 연산은 물론 기록(write) 연산도 수행할 수 없다. ( 답란 1 )
- 로킹 단위가 크면 잠금 수가 작아 관리하기 쉽지만 공유성 수준이 낮아지고, 로킹 단위가 작으면 잠금 수가 많아 관리하기 복잡하지만 공유성 수준이 높아진다. ( 답란 2 )
또 다른 병행 제어 기법 중 하나로 ( 답란 3 ) 기법은 직렬성 순서를 결정하기 위해 트랜잭션 간의 처리 순서를 미리 선택하는 기법들 중에서 가장 보편적인 방법이다. 트랜잭션과 트랜잭션이 읽거나 갱신한 데이터에 대해 트랜잭션이 실행을 시작하기 전에 시간표(Time Stamp)를 부여하여 부여된 시간에 따라 트랜잭션 작업을 수행하는 기법이다. 교착 상태가 발생하지 않는 것이 특징이다. 예를 들어, 트랜잭션이 시스템으로 들어오면 그 때의 시스템 시간 값이 그 트랜잭션의 ( 답란 3 )이(가) 된다.
답안
(답란 1) O
(답란 2) O
(답란 3) 타임 스탬프 또는 Time Stamp
문제 15. 럼바우 데이터 모델링에 관한 설명으로써, 보기에 해당하는 답안을 작성하시오.
(실제 시험문제에서는 보기가 주어집니다.)
1. 입력값이 출력값일 때 ex) 자료 흐름도(DFD)
2. 시간에 따라 변하는 것 ex) 상태 다이어그램(상태도)
3. 객체들 간의 관계를 정의 ex) ER다이어그램(ERD)
[보기]
ㄱ. operation | ㄴ. sequence | ㄷ. Information ㄹ. transaction | ㅁ. Function | ㅂ. I/O | ㅅ. Dynamic ㅇ.architecture | ㅈ. Cause-Effect | ㅊ. constraint | ㅋ. Rebuilding | ㅌ. Duration |
답:
1. ㅁ. Function Modeling (기능 모델)
2. ㅅ. Dynamic Modeling (동적 모델)
3. ㄷ. Information(Object Modeling, 객체 모델)
* 해설
* 객체지향 분석(OOA; Object Oriented Analysis)의 방법론 중 한 방법
- Rumbaugh(럼바우) 방법 - 객체 모델링 기법(OMT)
: 가장 일반적으로 사용되는 방법으로 분석 활동을 객체 모델, 동적 모델, 기능 모델로 나누어 수행하는 방법
>> 객체 지향 분석 절차
- 객체 모형(객체 - 객체도),
- 동적 모형(객체의 흐름, 상태, 행위도 - 상태도),
- 기능 모형(자료 흐름, 처리과정 - 자료흐름도)
문제 16. 다음은 C언어에 관한 소스코드이다. 실행 결과값을 작성하시오.
int main(){
int res;
res = mp(2,10);
printf("%d",res);
return 0;
}
int mp(int base, int exp) {
int res = 1;
for(int i=0; i < exp; i++){
res = res * base;
}
return res;
}
답:
1024
문제 17. 클래스 내에서 객체 생성 없이 사용할 수 있는 메소드로써 출력 결과를 작성하시오.
public class Test {
public static void main(String[] args){
system.out.print(test.check(1));
}
( ) String check (int num) {
return (num >= 0) ? "positive" : "negative";
}
}
[출력결과]
positive
답:
static
문제 18. 다음은 C언어 문제이다. 출력값을 작성하시오.
int main(){
int ary[3];
int s = 0;
*(ary+0)=1;
ary[1] = *(ary+0)+2;
ary[2] = *ary+3;
for(int i=0; i<3; i++){
s=s+ary[i]
}
print("%d",s);
답:
8
문제 19. 다음은 JAVA 관한 문제이다. 알맞는 출력값을 작성하시오.
public class over1 {
public static void main(String[] args){
ovr a1 = new ovr1();
ovr a2 = new ovr2();
System.out.println(a1.sun(3,2) + a2.sun(3,2));
}
int sun(int x, int y){
return x + y;
}
}
class ovr2 extends ovr1 {
int sun(int x, int y){
return x - y + super.sun(x,y);
}
}
답:
11
문제 20. 다음 괄호 안에 알맞은 답안을 작성하시오.
- 테스트 하네스의 도구 구성 요소 중 상향식 테스트 시, 상위 모듈 역할을 대신하는 테스트 드라이버와 하향식 테스트 시 하위 모듈 역할을 대신하는 테스트 ( ) 이 있다.
답:
스텁
테스트 하네스란 시스템 및 시스템 컴포넌트 시험하는 환경의 일부분으로 시험을 지원하는 목적 하에 생성된 코드와 데이터를 뜻합니다. 시험 드라이버라고도 하며, 일반적으로 단위 시험이나 모듈 시험에 사용하기 위해 코드 개발자가 만듭니다.
테스트 하네스 도구 구성 요소 :테스트 드라이버, 테스트 스텁, 테스트 슈트, 테스트 케이스, 테스트 스크립트, 목 오브젝트
* 테스트 레벨 : 한 번에 총체적으로 조직화하고 관리하는 테스트 활동의 묶음
- 단위 테스트, 통합테스트, 시스템 테스트, 인수 테스트
* 단위 테스트(Unit Test)
- 코딩 직후 SW 설계의 최소 단위인 모듈이나 컴포넌트에 초점을 맞춰 테스트 진행
- 사용자 요구사항을 기반으로 한 기능성 테스트 최우선
- 주로 구조기반(화이트박스 테스트) 시행
* 통합 테스트
- 시스템이나 시스템 구성 요소 또는 소프트웨어 프로그램의 데이터 및 기능의 인터페이스(흐름)가 정상적으로 작동하는지에 중점을 둠
- 단위 테스트를 통과한 개발 소프트웨어/하드웨어 컴포넌트 간 인터페이스 및 연동 기능 등을 구조적으로 접근하여 테스트
-- 빅뱅 통합 테스트 : 모든 모듈을 한꺼번에 통합하고 결합 격리가 어려움
-- 상향식 통합 : 가장 하부의 모듈부터 통합해가면서 상부로 올라감, 드라이브가 필요
-- 하향식 통합 : 가장 상부의 모듈부터 통합해가면서 하부로 내려감, 스텁 필요
-- 백본 통합 : 소프트웨어 리스크가 높은 것을 우선적으로 통합하고 접근, 드라이버, 스텁은 필요에 따라 만들어서 사용
* 시스템 테스트
- 실제 환경과 가능한 유사한 환경에서 진행
- 기능적 요구사항(명세기반 기법), 비기능적 요구사항(구조기반 기법)
- 개발 조직과는 독립된 테스트 조직에서 수행되어야 하며 사전 요구사항이 명확해야 한다
- 단위, 통합 테스트가 가능한 완벽히 완료되어 가능상에 문제가 없는 상태여야 한다
* 추가
* 테스트 하네스
- 테스트를 지원하기 위한 코드와 데이터를 말하며 단위 테스트에 사용하기 위해 개발자가 작성
- 애플리케이션 컴포넌트 및 모듈을 테스트하는 환경의 일부분으로, 테스트를 지원하기 위한 코드와 데이터를 말하며, 단위 또는 모듈 테스트에 사용하기 위해 코드 개발자가 작성하는 요소
* 테스트 슈트
- 테스트 대상 컴포넌트나 시스템에 사용되는 테스트 케이스 집합
* 테스트 케이스
- 입력값, 실행 조건, 기대 결과 등의 집합
* 테스트 스크립트
- 자동화된 테스트 케이스의 절차와 실행 순서 명시
* 테스트 드라이버
- 상향식 통합 테스트에서 데이터의 입력과 출력을 확인하기 위해서 하위 모듈을 호출하는 상위의 더미 모듈
* 테스트 시나리오
- 테스트 수행을 위한 여러 테스트 케이스의 집합으로서, 테스트 케이스의 동작 순서를 기술한 문서이며 테스트를 위한 절차를 명세한 문서
* 테스트 오라클
- 테스트의 결과가 참인지 거짓인지를 판단하기 위해서 사전에 정의된 참 값을 입력하여 비교하는 기법