본문 바로가기
정보처리기사

정처기 스터디 2주차

by 싼쵸 2022. 2. 6.
반응형

2과목(소프트웨어 개발)에서 출제 경향이 제일 높은 부분을 발표 스터디를 공유하려고 한다.

 

1 ) 자료 구조 

1. 자료 구조 분류

선형구조(Linear) :데이터들의  사이의 선후 관계가 1:1 구조, 스택(Stack), 큐(Queue), 데크(Deque) 선형 리스트(Linear List), 연결 리스트(Linked List) 비선형 구조(Non Linear) : 데이터들 사이의 선후 관계가 계층 또는 그물 형태를 가지는 구조 Tree, Graph

 

2. Stack

LIFO: 후입 선출 함수를 호출하여 복귀할 때, DFS(깊이 우선 탐색), Recursion(재귀) 함수, 인터럽트 수행

 

3. Queue

FIFO : 선입 선출프린터 스풀이나 입출력 버퍼에서 이용

 

4. Deque

양쪽 모두에서 입력과 출력 스크롤: 출력은 양쪽에서 모두 가능하지만, 입력은 한쪽에서만 사용하는 방법 셀프 : 입력은 양쪽에서 모두 가능하지만, 출력은 한쪽에서만 사용하는 방법

 

5. Linear List(선형 리스트)

Array와 같이 연속되는 기억공간에 저장되는 리스트 구조 액세스 시간이 짧고 구조가 간단 중간에 삽입/ 삭제 어려움

 

6. Linked List(연결 리스트)

각 자료의 포인터를 이용해 연결한 구조 자료의 삽입과 삭제가 용이 기억 공간이 연속적이지 않아도 자료를 저장 포인터 기억 공간이 추가적으로 필요 포인터를 찾는 시간 때문에 Linear List 보다 느림

 

7. 트리(Tree)

그래프의 특수한 형태로 노드와 선분으로 구성

8. 그래프

데이터의 검색, 데이터의 복잡도, 전자회로 분석 등 다양한 응용 분야에 적용

 

2 ) 애플리케이션 테스트 관리

1. 테스트 관련 용어

  • Debug : 디버그 또는 디버깅은 컴퓨터 프로그램의 논리적인 오류를 찾아내는 과정
  • Debugger : 디버거는 디버깅을 하려는 코드에 중단점을 지정해 단계를 지정된 값을 확인할 수 있도록 지원
  • Walk-Through : 소프트웨어 생명주기의 각 단계마다 산출된 명세서를 가지고 오류를 찾아내는 비정형 검토회의

 

2. 정형 기술 검토(FTR)의 검토 지침

  • 오류 검출에 초점을 두고 해결책은 나중으로 미룸(제품 검토의 집중성)
  • 검토를 위한 자료를 사전에 배포하여 검토(사전 준비성)
  • 의견을 제한하되 충분히 받아들임(의제의 제한성)
  • 안건을 세우면 고수(안건 고수성)
  • 논쟁과 반박을 제한(논쟁 반박의 제한성)
  • 문제 영역을 공개(문제 공개성)
  • 참가자의 수를 제한(참가 인원 제한성)
  • 발견된 오류는 문서화(문서성)

 

3. 테스트 원칙

  • 테스트는 계획 단계부터 함
  • 결함을 밝히는 활동
  • 개발자가 테스트하지 않음
  • 효율적인 결함 제거 법칙 사용

낚시의 법칙 : 특정 기능, 모듈, 라이브러리에서 결함이 많이 발견된다는 것이 낚시의 법칙 파레토의 법칙:  S/W 제품에서 발견되는 전체 결함의 80%는 S/W 제품의 전체 기능 중 20%에 집중 완벽한 테스트는 불가능 결함 집중(Defect Clustering)을 고려 살충제 패러독스(Persticide Paradox)를 고려 오류-부재의 궤변(Absence of Errors Fallacy)을 고려

 

4. 테스트 실행 기법

화이트 박스 테스트(투명 상자)

단위 테스트의 가장 기본적인 방법 소스코드의  모든 문장을 한 번 이상 수행함으로써 진행 소스코드를 보면서 테스트 케이스를 다양화하게 만들어 테스트 세부적 오류, 논리 구조상의 오류, 반복문 오류, 수행 경로 오류 등을 찾을 수 있음 화이트 박스 테스트 종류 : 기초 경로 테스트, 루프 테스트, 데이터 흐름 테스트, 조건 테스트

 

블랙박스 테스트(불투명 상자)

외부 사용자 요구사항 명세를 보면서 테스트 불투명 상자는 박스 안에 내용을 볼 수 없듯이 프로그램의 동작만으로 오류를 찾는 방법 부정확하거나 빠진 오류, 인터페이스 오류, 자료 구조상의 오류, 성능 오류를 찾을 수 있음 블랙박스 테스트 종류 : 균등 분할, 경곗값 테스트, 오류 예측, 원인 결과 그래프

 

5. 기초 경로 테스트의 복잡도 계산

  • 복잡도는 프로그램이 수행되는 경로의 수

복잡도 = 화살표로 둘러싸인 영역의 수 + 1

  • 오일러 공식을 이용

복잡도(R) : E- V + 2 (E : 간선, V : 노드)

 

6. 경계값 테스트

  • 범위의 한계 부분을 집중적 검사하는 경우를 정하여 검사하는 방법
  • 점수가 0부터 100이면, 0점에 인접한 자료나 100점에 인접한 자료를 집중적으로 검사

 

7. 하향식 통합과 상향식 통합 테스트

하향식 통합 상향식 통합 
테스트 시 프로그램 전체 실행 가능 전체 실행 불가능 
독립적인 구조를 가짐 독립적인 구조 불가능
가짜 모듈(Stub)필요 가짜 모듈(Stub)필요 없음
드라이버(시험 가동기)가 필요하지 않음 드라이버(시험 가동기)가 필요
하위 모듈 그룹(클러스터) 형성이 필요 없음 하위 모듈 그룹(클러스터) 형성이 필요
중요 모듈을 우선 테스트할 때 적합 하지 않음 중요 모듈을 우선 테스트할 때 적합
  • Stub(가짜 모듈) : 모듈명만 있고 모듈 안에 프로그램은 존재하지 않는 모듈
  • Driver(시험 가동기) : 독립적인 실행을 위해서 임시적으로 사용하는 시험 가동기

 

8. 인수 테스트 수행 방법

  • 알파 테스트 : 제한된 환경(개발자 환경), 사용자 실행, 사용자와 개발자가 함께 확인
  • 베타 테스트 : 제한되지 않은 환경(사용자 환경), 사용자 실행, 오류가 발견 시 개발자에 통보

 

9. 테스트 케이스

  • 명세 기반 테스트를 위한 설계 산출물
  • 실제로 다양한 데이터를 입력하여 그 결과를 확인해 보는 과정
  • 테스트 케이스 구성 항목
  • 식별자
  • 테스트 항목
  • 입력 명세
  • 출력 명세
  • 환경 설정
  • 특수 절차 요구
  • 의존성 기술

10. 테스트 오라클

  • 테스트의 결과가 참인지 거짓인지를 판단하기 위해서 사전에 정의된 참값을 입력해 비교하는 기법 및 활동

유형

True 오라클 Sampling 오라클 Heuristic 오라클 Consistent 오라클

 

11. 정적 분석 지원 도

  • 오픈소스 : pmd, Find Bug, checkstyle, cppcheck, Corbetura
  • 상용 소스 : Coverity, IBM Rational Software, PolySpace
  •  

12. 품질 목표 항목

  • Correctness(정확성)
  • Reliability(신뢰성)
  • Effeciency(효율성)
  • Integrity(무결성)
  • Maintainability(유지보수 용이성)
  • Usability(사용 용이성)
  • Testability(검사 용이성)
  • Portability(이식성)
  • Interoperability(상호 운용성)
  • Flexibility(유연성)
  • Reusability(재사용성)

 

13. 외계인 코드

아주 오래되었거나 참고 문서 또는 개발자가 없어 유지 보수 작업이 어려운 프로그램

개발 시 문서화를 하지 않았거나 개발자가 없거나 비구조적으로 작성한 경우

 

14. 인터페이스 기술의 표준

1.EAI

  • 기업에서 운영되는 서로 다른 플랫폼 및 프로그램 간의 정보 전달, 연계 통합을 가능하게 해주는 설루션
  • 각 비즈니스 간 통합 및 연계성을 증대시켜 효율성을 높이고 각 시스템 간의 확장성을 높여줌
  • 구축 유형

Point-to-point

Hub & Spoke

Message Bus(ESB 방식)

Hybrid

 

2. ESB

  • EAI와 유사, 서비스 중심으로 통합을 지향하는 기술
  • 웹 서비스 중심으로 표준화된 데이터, 버스를 통해 유연하게 통합하는 플랫폼 기술
  •  

3. EAI/ESB 방식

  • 트리거를 Java와 같은 프로그램 언어를 사용하거나 인터페이스 테이블 혹은 파일을 이용해 송신에서 수신으로 전송하는 방식

 

15. 데이터 통신을 통한 인터페이스 구현

  • 응용 프로그램 영역에서 인터페이스 형식에 맞춘 데이터 포맷을 인터페이스 대상으로 전송하고 수신 측에서 파싱 하여 해석
  • JSON 및 XML 형식의 데이터 포맷을 사용하여 인터페이스 구현

 

JSON

  • 데이터 객체를 속성-값 형태로 표현, 자바스크립트 토대로 개발횐 형식
  • 속성과 값으로 이루어진 데이터 객체

 

XML

  • 특수한 목적을 갖는 마크업 언어를 만드는 데 사용하도록 권장하는 마크업 언어
  • 다른 많은 종류의 데이터를 기술하는 데 사용
  • 다른 종류의 시스템끼리 데이터를 쉽게 주고받음

 

16. 인터페이스 구현 검증 도구

도구 설명
xUnit java,C++등 다양한 언어를 지원하는 단위 테스트 프레임 워크
STAF 서비스 호출, 컴포넌트 재사용 등 다양한 환경을 지원하는 테스트 프레임 워크
FitNesse 웹 기반 테스트 케이스 설계/실행/결과 을 지원하는 테스트 프레임 워크
NTAF 테스트 자동화 프레임워크
Selenium 다양한 브라우저 지원 및 개발 언어를 지원하는 웹 애플리케이션 테스크 프레임 워크
watir Ruby 기반 웹 애플리케이션 테스트 프레임 워크

 

반응형

'정보처리기사' 카테고리의 다른 글

정처기 #13 통합구현  (0) 2022.02.06
정처기 #12 정렬  (0) 2022.02.06
정처기#11 검색  (0) 2022.02.04
정처기#10 자료구조  (0) 2022.02.03
정처기 스터디 1주차  (0) 2022.01.30

댓글