[ 2과목:소프트웨어 개발 ]
21. 통합 테스트(Integration Test)와 관련한 설명으로 틀린 것은?
① 시스템을 구성하는 모듈의 인터페이스와 결합을 테스트하는 것이다.
② 하향식 통합 테스트의 경우 넓이 우선(Breadth First) 방식으로 테스트를 할 모듈을 선택할 수 있다.
③ 상향식 통합 테스트의 경우 시스템 구조도의 최상위에 있는 모듈을 먼저 구현하고 테스트한다.
④ 모듈 간의 인터페이스와 시스템의 동작이 정상적으로 잘되고 있는지를 빨리 파악하고자 할 때 상향식 보다는 하향식 통합 테스트를 사용하는 것이 좋다.
통합 테스트(Integration Test)는 단위 테스트가 끝난 모듈을 통합하는 과정에서 발생할 수 있는 오류를 찾는 테스트를 말합니다.
통합 테스트는 상향식(Bottom Up) 방식과 하향식(Top Down) 방식으로 나눌 수 있습니다.
상향식 통합 테스트는 가장 말단의 최하위 모듈부터 테스트를 시작합니다.
상향식에서는 상위 모듈의 역할을 하는 테스트 드라이버가 필요합니다.
하향식 통합 테스트는 최상위 모듈부터 하위 모듈 방향으로 테스트를 시작합니다.
상위 모듈부터 테스트를 수행하므로 스텁 모듈이 필요합니다.
22. 다음과 같이 레코드가 구성되어 있을 때, 이진 검색 방법으로 14를 찾을 경우 비교되는 횟수는?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
① 2
② 3
③ 4
④ 5
이진 검색 방법 즉, 이진 검색/탐색 알고리즘(binary search algorithm)은 오름차순으로 정렬된 리스트에서 특정 값의 위치를 찾는 알고리즘입니다. 순서는 아래와 같습니다.
1. 배열의 중간값 탐색
2. 중간값과 검색값을 비교
=> (중간값 = 검색값) : 종료
=> (중간값 < 검색값) : 우측 구간의 중간값 탐색
=> (중간값 > 검색값) : 좌측 구간의 중간값 탐색
위 문제에서의 순서는 아래와 같습니다.
1. 중간값(8)을 먼저 탐색합니다.
2. 중간값보다 검색값이 더 크기 때문에 우측 구간의 중간값(12)를 탐색합니다.
3. 중간값보다 검색값이 더 크기 때문에 우측 구간의 중간값(14)를 탐색합니다.
즉, 비교되는 횟수는 총 3번입니다.
23. 소프트웨어 공학에서 워크스루(Walkthrough)에 대한 설명으로 틀린 것은?
① 사용사례를 확장하여 명세하거나 설계 다이어그램, 원시코드, 테스트 케이스 등에 적용할 수 있다.
② 복잡한 알고리즘 또는 반복, 실시간 동작, 병행 처리와 같은 기능이나 동작을 이해하려고 할 때 유용하다.
③ 인스펙션(Inspection)과 동일한 의미를 가진다.
④ 단순한 테스트 케이스를 이용하여 프로덕트를 수작업으로 수행해 보는 것이다.
워크스루(Workthrough)는 요구사항 검토(Requirements Review) 방법 중 하나입니다.
요구사항 검토 방법은 아래와 같습니다.
1) 동료 검토(Peer Reivew) : 요구사항 명세서 작성자가 명세서 내용을 직접 설명하며, 동료들이 이를 들으며 결함 발견
2) 워크스루(Work Through) : 검토 회의 전 요구사항 명세서를 미리 배포하여 사전 검토한 후 결함 발견
3) 인스펙션(Inspection) : 요구사항 명세서 작성자를 제외한 다른 검토전문가들이 요구사항 명세서를 확인하며 결함 발견
따라서 워크스루는 인스펙션과는 다른 의미를 가집니다.
24. 소프트웨어의 개발과정에서 소프트웨어의 변경사항을 관리하기 위해 개발된 일련의 활동을 뜻하는 것은?
① 복호화
② 형상관리
③ 저작권
④ 크랙
해당 설명은 형상관리(SCM; Software Configuration Management)를 말합니다.
형상 관리는 소프트웨어의 개발 과정에서 소프트웨어의 변동사항을 관리하기 위해 개발된 일련의 활동입니다.
25. 테스트 케이스와 관련한 설명으로 틀린 것은?
① 테스트의 목표 및 테스트 방법을 결정하기 전에 테스트 케이스를 작성해야 한다.
② 프로그램에 결함이 있더라도 입력에 대해 정상적인 결과를 낼 수 있기 때문에 결함을 검사할 수 있는 테스트 케이스를 찾는 것이 중요하다.
③ 개발된 서비스가 정의된 요구 사항을 준수하는지 확인하기 위한 입력 값과 실행 조건, 예상 결과의 집합으로 볼 수 있다.
④ 테스트 케이스 실행이 통과되었는지 실패하였는지 판단하기 위한 기준을 테스트 오라클(Test Oracle)이라고 한다.
테스트 케이스(Test Case)란 명세 기반 테스트의 설계 산출물로 설계된 입력값, 실행조건, 기대 결과로 구성되어 있는 테스트 항목의 명세서를 의미합니다. 보통 테스트 누락 방지와 테스트 투명화를 위해 활용됩니다.
테스트 케이스 실행 통과를 판단하기 위한 기준을 테스트 오라클(Test Oracle)이라고 하며,
테스트의 목표 및 테스트 방법을 결정하고 테스트 케이스를 작성해야 합니다.
26. 객체지향 개념을 활용한 소프트웨어 구현과 관련한 설명 중 틀린 것은?
① 객체(Object)란 필요한 자료 구조와 수행되는 함수들을 가진 하나의 독립된 존재이다.
② JAVA에서 정보은닉(Information Hiding)을 표기할 때 private의 의미는 '공개'이다.
③ 상속(Inheritance)은 개별 클래스를 상속 관계로 묶음으로써 클래스 간의 체계화된 전체 구조를 파악하기 쉽다는 장점이 있다.
④ 같은 클래스에 속하는 개개의 객체이자 하나의 클래스에서 생성된 객체를 인스턴스(Instance)라고 한다.
객체(Object)는 Class에 속한 Instance로, 데이터와 함수를 묶어 캡슐화하는 대상이 됩니다.
객체는 필요한 자료구조와 이에 수행되는 함수들을 가진 하나의 소프트웨어 모듈입니다.
JAVA에서 정보은닉(Information Hiding)을 표기할 때 Private의 의미는 공개가 아닌 "접근금지"의 의미입니다.
상속(Inheritance)은 객체지향의 5가지 특징 중 하나로,
상위 클래스의 메소드와 속성을 하위 클래스가 물려받는 것을 의미합니다.
인스턴스(Instance)는 같은 클래스에 속하는 개개의 객체이자 하나의 클래스에서 생성된 객체입니다.
27. DRM(Digital Rights Management)과 관련한 설명으로 틀린 것은?
① 디지털 콘텐츠와 디바이스의 사용을 제한하기 위해 하드웨어 제조업자, 저작권자, 출판업자 등이 사용할 수 있는 접근 제어 기술을 의미한다.
② 디지털 미디어의 생명 주기 동안 발생하는 사용 권한 관리, 과금, 유통 단계를 관리하는 기술로도 볼 수 있다.
③ 클리어링 하우스(Clearing House)는 사용자에게 콘텐츠 라이센스를 발급하고 권한을 부여해주는 시스템을 말한다.
④ 원본을 안전하게 유통하기 위한 전자적 보안은 고려하지 않기 때문에 불법 유통과 복제의 방지는 불가능하다.
DRM(Digital Rights Management)는 디지털 콘텐츠의 지적 재산권 보호, 관리 및 안전한 배포를 보장하는 솔루션입니다.
디지털 콘텐츠와 디바이스의 사용을 제한하기 위한 접근 제어 기술이며, 권한 관리와 과금 및 유통단계를 관리할 수도 있습니다. 클리어링 하우스(Clearing House)는 사용자에게 콘텐츠 라이센스를 발급하고 권한을 부여해주는 시스템입니다.
28. 위험 모니터링의 의미로 옳은 것은?
① 위험을 이해하는 것
② 첫 번째 조치로 위험을 피할 수 있도록 하는 것
③ 위험 발생 후 즉시 조치하는 것
④ 위험 요소 징후들에 대하여 계속적으로 인지하는 것
위험 모니터링이란 연구의 품질이나 안전성에 영향을 줄 수 있는 위험을 식별, 평가, 완화하는 것으로
위험 요소 징후들에 대하여 계속적으로 인지하는 것을 말합니다.
29. 동시에 소스를 수정하는 것을 방지하며 다른 방향으로 진행된 개발 결과를 합치거나 변경 내용을 추적할 수 있는 소프 트웨어 버전 관리 도구는?
① RCS(Revision Control System)
② RTS(Reliable Transfer Service)
③ RPC(Remote Procedure Call)
④ RVS(Relative Version System)
소스 파일 관리에 널리 사용되는 대표적인 3가지 시스템 중 하나로,
파일 잠금 방식을 통해 동시에 소스를 수정하는 것을 방지하며,
다른 방향으로 진행된 개발 결과를 합치거나 변경 내용 추적이 가능합니다.
CVS(Current Version System)와 달리 소스 파일의 수정을 한 사람만으로 제한합니다.
소스 파일 관리에 사용되는 대표적인 3가지 시스템은 아래와 같습니다.
1) RCS(Revision Control System)
2) CVS(Current Version System)
3) SCCS(Source Code Control System)
30. 화이트박스 테스트와 관련한 설명으로 틀린 것은?
① 화이트박스 테스트의 이해를 위해 논리흐름도 (Logic-Flow Diagram)를 이용할 수 있다.
② 테스트 데이터를 이용해 실제 프로그램을 실행함으로써 오류를 찾는 동적 테스트(Dynamic Test)에 해당한다.
③ 프로그램의 구조를 고려하지 않기 때문에 테스트 케이스는 프로그램 또는 모듈의 요구나 명세를 기초로 결정한다.
④ 테스트 데이터를 선택하기 위하여 검증기준(Test Coverage)을 정한다.
화이트박스 테스트(White Box Test)는 소프트웨어 혹은 제품의 내부 구조, 동작을 세밀하게 검사하는 테스트 방식입니다.
블랙박스 테스트(Black Box Test)는 소프트웨어의 내부 구조나 작동 원리를 모르는 상태에서 소프트웨어의 동작을 검사하는 방식입니다.
프로그램의 구조를 고려하지 않기 때문에 테스트 케이스는 프로그램 또는 모듈의 요구나 명세를 기초로 결정하는 방식은 블랙박스 테스트 방식입니다.
31. 알고리즘과 관련한 설명으로 틀린 것은?
① 주어진 작업을 수행하는 컴퓨터 명령어를 순서대로 나열한 것으로 볼 수 있다.
② 검색(Searching)은 정렬이 되지 않은 데이터 혹은 정렬이 된 데이터 중에서 키값에 해당되는 데이터를 찾는 알고리즘이다.
③ 정렬(Sorting)은 흩어져있는 데이터를 키값을 이용하여 순서대로 열거하는 알고리즘이다.
④ 선형 검색은 검색을 수행하기 전에 반드시 데이터의 집합이 정렬되어 있어야 한다.
알고리즘(Algorithm)은 주어진 작업을 수행하는 컴퓨터 명령어를 순서대로 나열한 것으로 볼 수 있습니다.
정렬(Sorting)은 흩어져있는 데이터를 키값을 이용하여 순서대로 열거하는 알고리즘으로,
이진 검색의 전제조건이기도 합니다.
검색(Searching)은 정렬이 되지 않은 데이터나 정렬된 데이터 중 키값에 해당되는 데이터를 찾는 알고리즘입니다.
검색은 선형 검색(Linear Search)과 이진 검색(Binary Search)으로 구분할 수 있습니다.
선형 검색(Linear Search) : 순차 검색(Sequential Search)라고도 하며, 데이터가 모인 집합의 처음부터 하나씩 순차적으로 비교해가며 검색하는 알고리즘입니다.
이진 검색(Binary Search) : 오름차순으로 정렬된 리스트에서 특정 값의 위치를 찾는 알고리즘입니다. 검색을 수행하기 전에 반드시 데이터의 집합이 정렬되어 있어야 합니다.
32. 버블 정렬을 이용하여 다음 자료를 오름차순으로 정렬할 경우 PASS 1의 결과는?
9, 6, 7, 3, 5 |
① 6, 9, 7, 3, 5
② 3, 9, 6, 7, 5
③ 3, 6, 7, 9, 5
④ 6, 7, 3, 5, 9
버블 정렬(bubble sort) 알고리즘이란, 서로 인접한 두 원소를 검사하여 정렬하는 알고리즘을 말합니다.
인접한 두 개의 레코드를 비교하여 크기가 순서대로 되어있지 않으면 서로 교환하는 방식입니다.
9, 6, 7, 3, 5를 버블 정렬을 이용하여 오름차순으로 정렬하려면 아래의 단계를 따릅니다.
1) 첫 두 원소를 비교하여 오름차순인지 확인하고, 아니라면 교환합니다. [ ( 9, 6 ), 7, 3, 5 ] ==> [ ( 6, 9 ), 7, 3, 5 ]
2) 다음의 두 원소를 비교합니다. [ 6, ( 9, 7 ), 3, 5 ] ==> [ 6, ( 7, 9 ), 3, 5 ]
3) 마지막 자료까지 비교를 반복합니다.
위 단계처럼 한번의 사이클을 돌면 PASS 1이라고 합니다.
사이클을 한번 돌 때마다 가장 큰 수가 맨 뒤로 옮겨지는 것이 특징입니다.
33. 다음은 인스펙션(Inspection) 과정을 표현한 것이다. (가)~(마)에 들어갈 말을 보기에서 찾아 바르게 연결한 것은?
㉠ 준비 ㉡ 사전 교육 ㉢ 인스펙션 회의 ㉣ 수정 ㉤ 후속조치 |
① (가) - ㉡, (나) - ㉢
② (나) - ㉠, (다) - ㉢
③ (다) - ㉢, (라) - ㉤
④ (라) - ㉣, (마) - ㉢
인스펙션(Inspection)은 요구사항 검토(Requirements Review) 방법 중 하나입니다.
요구사항 명세서 작성자를 제외한 다른 검토 전문가들이 요구사항 명세서를 확인하며 결함을 발견하는
요구사항 검토 방식입니다.
인스펙션 과정은 아래와 같습니다.
1) 계획
2) 사전교육
3) 준비
4) 인스펙션 회의
5) 수정
6) 후속조치
34. 소프트웨어를 보다 쉽게 이해할 수 있고 적은 비용으로 수정할 수 있도록 겉으로 보이는 동작의 변화 없이 내부구조를 변경하는 것은?
① Refactoring
② Architecting
③ Specification
④ Renewal
해당 설명은 리팩토링(Refactoring)에 대한 설명입니다.
리뉴얼(Renewal)은 기존의 것을 새롭게 하는 것으로, 개선의 의미를 내포합니다.
따라서, 리뉴얼에서는 겉으로 보이는 동작의 변화가 있을 수 있습니다.
35. 단위 테스트(Unit Test)와 관련한 설명으로 틀린 것은?
① 구현 단계에서 각 모듈의 개발을 완료한 후 개발자가 명세서의 내용대로 정확히 구현되었는지 테스트한다.
② 모듈 내부의 구조를 구체적으로 볼 수 있는 구조적 테스트를 주로 시행한다.
③ 필요 데이터를 인자를 통해 넘겨주고, 테스트 완료 후 그 결과값을 받는 역할을 하는 가상의 모듈을 테스트 스텁(Stub)이라고 한다.
④ 테스트할 모듈을 호출하는 모듈도 있고, 테스트할 모듈이 호출하는 모듈도 있다.
단위 테스트(Unit Test)란 하나의 모듈을 기준으로 독립적으로 진행되는 가장 작은 단위의 테스트를 말합니다.
(통합 테스트(Integration Test)는 각 모듈 간을 결합하여 진행되는 테스트입니다.)
단위 테스트는 구현 단계에서 각 모듈의 개발을 완료한 후 개발자가 명세서의 내용대로 정확히 구현되었는지 테스트하며,
모듈 내부의 구조를 구체적으로 볼 수 있는 구조적 테스트를 주로 시행합니다.
필요 데이터를 인자를 통해 넘겨주고, 테스트 완료 후 그 결과값을 받는 역할을 하는 가상의 모듈을
"테스트 스텁(Stub)"이라고 합니다.
그러나 이는 통합 테스트(Integration Test)의 하향식 통합(Top Down) 방식에서 사용합니다.
( 통합 테스트는 상향식(Bottom Up) 방식과 하향식(Top Down) 방식으로 나눌 수 있습니다 )
상향식 통합 테스트 : 테스트 드라이버
하향식 통합 테스트 : 스텁 모듈
36. IDE(Integrated Development Environment) 도구의 각 기능에 대한 설명으로 틀린 것은?
① Coding - 프로그래밍 언어를 가지고 컴퓨터 프로그램을 작성할 수 있는 환경을 제공
② Compile - 저급언어의 프로그램을 고급언어 프로그램으로 변환하는 기능
③ Debugging - 프로그램에서 발견되는 버그를 찾아 수정할 수 있는 기능
④ Deployment - 소프트웨어를 최종 사용자에게 전달하기 위한 기능
IDE(Integrated Development Environment)는 통합 개발 환경으로, 프로그래머가 소프트웨어 코드를 효율적으로 개발하도록 돕는 소프트웨어 어플리케이션입니다. (이클립스, 비주얼 스튜디오, 엑스코드, IDEA 등...)
IDE 도구의 기능은 다음과 같습니다.
[ 개발 환경 지원 , 컴파일 , 디버깅 , 외부 연계 , DB 연동 , Deployment ]
컴파일(Compile)은 사람이 이해하는 언어를 컴퓨터가 이해할 수 있는 언어로 바꾸어주는 기능 또는 과정을 말합니다.
즉, 컴파일은 고급 언어를 저급 언어로 변환하는 기능(과정)입니다.
37. 아래 Tree 구조에 대하여 후위 순회(Postorder) 한 결과는?
① a → b → d → c → e → g → h → f
② d → b → g → h → e → f → c → a
③ d → b → a → g → e → h → c → f
④ a → b → d → g → e → h → c → f
이진 트리의 운행 방식은 세가지로, 전위식/중위식/후위식이 있습니다.
전/중/후위식은 진행 방향에서 Root의 위치를 나타냅니다.
전위식(Preorder) : [ Root ] => Left => Right
중위식(Inorder) : Left => [ Root ] => Right
후위식(Postorder) : Left => Right => [ Root ]
38. 인터페이스 구현 시 사용하는 기술로 속성-값 쌍 (Attribute-Value Pairs)으로 이루어진 데이터 오브젝트를 전달하기 위해 사용하는 개방형 표준 포맷은?
① JSON
② HTML
③ AVPN
④ DOF
해당 설명은 JSON(JavaScript Object Notation)에 대한 설명입니다.
JSON은 언어 독립형 데이터 포맷으로 다양한 프로그래밍 언어에서 사용되고 있습니다.
데이터 통신을 위한 구현 방법이며, 웹과 컴퓨터 프로그램에서 용량이 적은 데이터를 교환하기 위해 데이터 객체를 속성-값의 쌍 형태로 표현하는 형식입니다.
39. 순서가 있는 리스트에서 데이터의 삽입(Push), 삭제(Pop)가 한 쪽 끝에서 일어나며 LIFO(Last-In-First-Out)의 특징을 가지는 자료구조는?
① Tree
② Graph
③ Stack
④ Queue
해당 자료구조는 선형 자료구조의 스택(Stack)에 대한 설명입니다.
스택(Stack) : 리스트의 한쪽 끝에서만 자료의 삽입과 삭제가 이루어지는 자료구조로, LIFO 방식입니다.
큐(Queue) : 자료의 삽입은 리스트의 한쪽 끝에서, 삭제는 다른 쪽 끝에서 이루어지는 자료구조로, FIFO 방식입니다.
데크(Deque) : 자료의 삽입과 삭제가 리스트의 양쪽 끝에서 이루어지는 자료구조로, 스택과 큐를 복합한 형태입니다.
40. 다음 중 단위 테스트 도구로 사용될 수 없는 것은?
① CppUnit
② JUnit
③ HttpUnit
④ IgpUnit
CppUnit은 C++언어용 단위 테스트 도구,
JUnit은 Java 언어용 단위 테스트 도구,
HttpUnit은 웹 브라우저 없이 웹사이트 테스트를 진행하기 위한 테스트 프레임워크입니다.
HttpUnit은 단위테스트보다 통합테스트에 유용하나, 단위테스트 도구로 사용될 수 있습니다.
'정보처리기사 필기' 카테고리의 다른 글
정보처리기사 22_04_24 필기 [4과목] (1) | 2023.05.16 |
---|---|
정보처리기사 22_04_24 필기 [3과목] (1) | 2023.05.15 |
정보처리기사 22_03_05 필기 [2과목] (0) | 2023.05.04 |
정보처리기사 22_03_05 필기 [1과목] (0) | 2023.05.02 |
정보처리기사 22_04_24 필기 [1과목] (0) | 2023.05.01 |