[2과목:소프트웨어 개발]
*통합 테스트(Integration Test)
- 상향식
: 하나의 주요 제어 모듈과 관련된 종속 모듈의 그룹인 클러스터(Cluster) 필요
- 하향식
: 상위 모듈에서 하위 모듈 방향으로 / 깊이 우선 통합법, 넓이 우선 통합법 사용
* 이진 탐색(Binary Search)
- low, middel, high 값을 사용
- 찾고자 하는 데이터를 중앙에 위치한 중간 값과 비교
- 전제조건 : 데이터 목록은 오름차순으로 정렬되어 있어야 함
1단계. 배열의 중간 값 찾기 >> 검색 값과 비교
2단계. 중간 값보다 검색 값이 크다면 >> 오른쪽 구간을 탐색
중간 값보다 검색 값이 작다면 >> 왼쪽 구간을 탐색
3단계. 값이 발견 될 때까지 반복
>> Q. 다음을 이진 검색 방법으로 14를 찾을 경우 비교되는 횟수는? 3회
[ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ]
1회. 1~15의 중간값 : 8
14 > 8 이므로, 오른쪽 구간 탐색
2회. 8~15의 중간값 : 12
14> 12 이므로, 오른쪽 구간 탐색
3회. 13~15의 중간값 : 14
14=14 이므로 탐색 종료.
- 워크스루(Walkthrough)
: 팀원들이 함께 검토하는 비공식적인 검토 기법
- 인스펙션(Inspection)
: 산출물(요구사항명세서 등)을 체계적이고 공식적인 방식으로 검토하여 결함을 발견하는 기법
- 인스펙션 순서
: 계획 > 사전 교육(배경지식) > 준비 단계(자료) > 인스펙션 회의 > 수정 > 후속 조치(수정반영확인)
- 복호화 : 디코딩. 부호화 된 데이터를 부호화 되기 전 형태로 바꾸어 사람들이 읽을 수 있는 형태로 되돌려 놓는 것
- 크랙 : 소프트웨어나 시스템의 보안 기능을 무력화하거나 제거하여 정품인증 등을 우회하는 행위(주로 불법적 목적)
- 형상관리 : 소프트웨어 개발 과정에서 발생하는 변경 사항을 관리하기 위한 일련의 활동 (버전관리, 변경사항 추적)
- 테스트 케이스(Test Case)
: 테스트의 목표와 방법이 정해진 후에 작성.
결함이 있더라도 정상적인 결과가 나올 수 있기 때문에 결함을 검사 할 수 있는 테스트 케이스를 찾아야 함.
개발된 서비스가 정의된 요구 사항을 준수하는지 확인하기 위한 입력값, 실행조건, 예상결과의 집합.
테스트 오라클 : 테스트의 예상 결과를 제공하는 메커니즘. 테스트 케이스 결과가 맞는지 틀린지 판단
- DRM(Digital Right Management)
: 디지털 콘텐츠와 디바이스의 사용을 제한하기 위해 하드웨어 제조업자, 저작권자, 출판업자 등이 사용할 수 있는 접근 제어 기술
- RCS(Revision Control System)
: 동시에 소스를 수정하는 것을 방지하며 다른 방향으로 진행된 개발 결과를 합치거나 변경 내용을 추적할 수 있는 소프트웨어 버전 관리 도구
* 테스트 기법
- 화이트박스 테스트
: 내부 로직과 구조 고려.
정적 분석(코드만 분석)과 동적 분석(코드 실행).
논리흐름도(Logical Flow Diagram) 통해서 코드 흐름 분석.
Test Coverage 기준으로 테스트 데이터 선택
- 블랙박스 테스트
: 내부 구조를 고려하지 않고, 외부 동작과 요구사항 명세를 기반으로 입출력 결과를 테스트
*알고리즘
- 알고리즘 : 문제를 해결하기 위한 명확한 단계의 집합. 컴퓨터가 이를 수행하기 위해 순서대로 실행되는 명령어로 구성됨
- 검색(Searching) : 정렬되어 있든 아니든 키값을 찾는 방법
1) 선형 검색(Linear Search) : 정렬 여부와 관계없이 작동
2) 이진 검색(Binary Search) : 정렬된 데이터에서만 작동
- 정렬(Sorting) : 흩어져있는 데이터를 키값을 이용하여 순서대로 열거\
*버블 정렬
: 인접한 두 데이터를 비교하여 정렬
1단계. 첫번째 요소부터 인접한 두 요소 비교
2단계. 두 요소의 크기를 비교하여 위치 교환
3단계. 한번의 PASS 동안 가장 큰 값이 배열 끝으로 이동
4단계. 배열 전체가 정렬될 때까지 위 과정 반
>> Q. 버블 정렬을 이용하여 다음을 오름차순으로 정렬할 경우, PASS1의 결과는?
[ 9 6 7 3 5 ] >> [ 6 7 3 5 9 ]
PASS1 : 첫번째 요소인 9를 각 요소와 비교
*단위테스트에서의 Stub과 Driver
- 스텁(Stub) : 테스트 중 모듈이 호출하는 가상의모듈. 데이터를 제공
- 드라이버(Driver) : 테스트 할 모듈을 호출하여 테스트 결과를 검증 (결과값을 전달 받음)
*IDE(Integrated Development Environment)
: 소프트웨어 개발을 위해 필요한 다양한 도구들을 하나의 환경에 통합한 프로그램
- Coding, Compile(사람의 고급언어를 컴퓨터의 저급언어로 변환), Debugging, Deployment(배포)
*트리 순회
- 트리의 구성요소 : 루트 노드(최상위 노드) / 왼쪽 서브트리 / 오른쪽 서브트리
- 종류 (데이터를 처리하는 순서)
1) 전위 순회(Preorder) : Root > Left > Right
2) 중위 순회(Inorder) : Left > Root > Right
3) 후위 순회(Postorder) : Left > Right > Root
- JSON(JavaScript Object Notation)
: 속성-값 쌍(Attribute-Value Pairs)으로 이루어진 데이터 오브젝터를 전달하기 위해 사용하는 개방형 표준 포맷
*순서가 있는 리스트
- Stack : LIFO(Last-In-First-Out)
- Queue(큐) : FIFO(First-In-First-Out)
*단위테스트 도구
- JUnit(Java) 제이유닛
- CppUnit(C++) 씨피피유닛
- NUnut(.NET) 엔유닛
- Pytest(Python) 파이테스
- HttpUnit(웹 어플리케이션)
oxxxxooooo
oxxoooxoox
12/20
60점
2과목은 고득점 취득하도록 기출 많이 돌리기
'👩🏻💻TIL (Today I Learn) > 정처기' 카테고리의 다른 글
정처기 22년 4월 24일 기출 오답정리_05 (0) | 2025.01.24 |
---|---|
정처기 22년 4월 24일 기출 오답정리_04 (0) | 2025.01.23 |
정처기 22년 4월 24일 기출 오답정리_02 (0) | 2025.01.21 |
정처기 22년 4월 24일 기출 오답정리_01 (0) | 2025.01.20 |
정처기 5과목_ 1. 소프트웨어 개발 방법론 테일러링 (0) | 2025.01.16 |