본문 바로가기
자격증/정보처리기사

내가 공부하려고 정리하는 정보처리기사 실기 정리 (2/6)

by yun5o 2021. 9. 29.

UML 다이어그램

표준화된 범용 모델링 언어

구조적 클래스 다이어그램 클래스의 속성 및 연산과 클래스 간의 정적인 관계를 표현
객체 다이어그램 인스턴스를 특정 시점의 객체와 객체 사이의 관계로 표현
컴포넌트 다이어그램 시스템을 구성하는 물리적 컴포넌트와 그들 사이의 의존 관계 표현
배치 다이어그램 컴포넌트 사이의 종속성 표현, 물리적 요소들의 위치 표현
복합체 구조 다이어그램 클래스나 컴포넌트가 복합 구조를 갖는 경우, 그 내부 구조 표현
패키지 다이어그램 모델 요소들을 그룹화한 패키지들의 관계를 표현
행위적 유스케이스 다이어그램 시스템이 제공하는 기능과 관련 외부 요소를 사용자 관점에서 표현
시퀀스 다이어그램 객체 간 동적 상호작용을 시간적 개념 중심으로 메시지 흐름으로 표현
커뮤니케이션 다이어그램 동작에 참여하는 객체들이 주고받는 메시지와 객체 간 연관 표현
상태 다이어그램 하나의 객체가 자신이 속한 클래스의 상태 변화
혹은 다른 객체와의 상호작용에 따라 어떻게 변화하는지 표현
활동 다이어그램 시스템이 어떤 기능을 수행하는지
객체의 처리 로직이나 조건에 따른 처리 흐름을 순서대로 표현
타이밍 다이어그램 객체 상태 변화와 시간 제약을 명시적으로 표현

소프트웨어 테스트의 기본 원리

- 결함 발견 : 결함 제거가 아닌 결함의 발견을 목적으로 한다.

- 초기 집중 (요르돈 법칙) : 개발 설계 시부터 테스트를 고려, 결함의 조기발견 및 재유입을 방지한다.

- 결함 집중 (파레토 법칙) : 결함의 80%는 전체 모듈의 20% 내에서 발견된다. (결함이 높은 곳에 자원 집중)

- 오류-부재 궤변 : 요구사항을 충족시키지 못하면, 결함을 모두 제거하였다고 품질이 우수하다고 볼 수 없다.

- 불완전성 : 완벽한 테스팅은 불가능하다. 무한 경로, 무한 입력값, 무한 타이밍

- 살충제 페러독스 : 동일한 테스트 전략, 기법을 적용할 시 내성이 생긴다.

- 정황 의존성 : 테스트는 테스트 주변 환경에 의한 영향을 받는다.

 

* 브룩스 법칙 : 지체되는 소프트웨어 개발 프로젝트에 인력을 추가하는 것은 개발을 늦춘다.

* 요르돈 법칙 : SW 개발 초기 체계적인 분석 및 설계가 수행되지 못하면 그 결과가 프로젝트 후반에 영향을 미치게 되어 비용이 커진다는 법칙 (snowball effect, 눈덩이 법칙)

* 파레토 법칙 : 전체 결과의 80%가 전체 원인의 20%에서 일어나는 현상을 가리키는 말이다.
소프트웨어 테스트 원리 중 20%의 모듈에서 80%의 결함이 발견된다는 "결함 집중"의 원리를 내포하고 있다.

* 롱테일 법칙 : 사소해 보이는 80%의 다수가 20%의 소수 핵심보다도 뛰어난 가치를 창출해낸다는 이론

테스트 프로세스

테스트 계획 → 테스트 분석 및 디자인 → 테스트 케이스 및 시나리오 작성 → 테스트 수행 → 테스트 결과 평가 및 리포팅

테스트 오라클

테스트의 결과가 참인지 거짓인지를 판단하기 위해 사전에 정의된 참값을 입력하여 비교하는 기법
- 참 오라클 : 모든 입력값
- 샘플링 오라클 : 몇 개의 입력값
- 휴리스틱 오라클 : 경험에 의존

- 일관성 검사 오라클


테스트 분류

- 정적 테스트 : 리뷰, 정적 분석

- 동적 테스트 : 화이트박스 테스트, 블랙박스 테스트, 경험기반 테스트

 

리뷰

- 인스펙션(동료검토) : 소프트웨어 요구, 설계, 원시코드 등의 저작자 외의 다른 전문가 또는 팀이 검사하여 문제를 식별하고 올바른 해결을 찾아내는 검토기법

- 워크스루 : 검토자료를 회의 전에 배포해서 사전 검토한 후 짧은 시간 동안 회의를 진행하여 리뷰하는 비형식적인 검토기법

 

정적 분석

코딩 표준, 복잡도 측정(맥케이브의 순환 복잡도 개념), 자료 흐름 분석

 

화이트박스 테스트 [구결조 조변다 기제데]

내부구조와 동작을 검사하는 테스트 방식

 

- 문(문장) 커버리지 : 프로그램 내의 모든 명령문을 적어도 한 번 수행하는 커버리지

- 정(선택, 분기) 커버리지 : 결정 포인트 내의 전체 조건식이 적어도 한 번은 참과 거짓의 결과를 수행

- 건 커버리지 : 각 개별 조건식이 적어도 한 번은 참과 거짓 결과가 되도록 수행

- 건/결정 커버리지 : 전체 조건뿐 아니라 개별 조건식도 참 한 번, 거짓 한 번 결과가 되도록 수행

- 경 조건/결정 커버리지 : 개별 조건식이 다른 개별 조건식의 영향을 받지 않고 전체 조건식에
독립적으로 영향을 주도록 함으로써 조건/결정 커버리지를 향상시킨 커버리지

- 중 조건 커버리지 : 결정 조건 내 모든 개별 조건식의 모든 가능한 조합 100% 보장

- 본 경로 커버리지 : 수행 가능한 모든 경로 테스트, 맥케이브 순환 복잡도 기반으로 커버리지 계산

- 어 흐름 테스트 : 프로그램 제어 구조를 그래프 형태로 나타내어 내부로직을 테스트하는 기법

- 이터 흐름 테스트 : 제어 흐름 그래프에 데이터 사용 현황을 추가한 그래프를 통해 테스트

 

종류 설명
기초 경로 검사 대표적인 화이트 박스 테스트 기법
제어 구조 검사 조건검사 : 논리적 조건을 테스트하는 기법
루프검사 : 반복 구조에 맞춰 테스트하는 기법
데이터 흐름 검사 : 프로그램에서 변수의 정의와 변수 사용의 위치에 초점을 맞춰 테스트하는 기법

 

블랙박스 테스트 [동경결상 유분 페원비]

내부 구조나 동작을 모르는 상태에서 검사하는 테스트 방식

 

- 등 분할 테스트 : 입력 데이터의 영역을 유사한 도메인별로 유횻값/무효 값을 그룹핑하여 대푯값 테스트 케이스를 도출하여 테스트

- 곗값 분석 테스트 : 등가 분할 후 경곗값 부분을 포함하여 테스트 케이스를 설계하여 테스트

- 정 테이블 테스트 : 요구 사항의 논리와 발생조건을 테이블 형태로 나열, 조건과 행위를 모두 조합하여 테스트

- 태 전이 테스트 : 테스트 대상이나 객체 상태를 구분하고 이벤트에 의해 어느 한 상태에서 다른 상태로 전이되는 경우의 수를 수행하는 테스트

- 스 케이스 테스트 : 시스템이 실제 사용되는 유스 케이스로 모델링 되어 있을 때, 프로세스 흐름을 기반으로 테스트 케이스를 명세화해 수행하는 테스트

- 류 트리 테스트 : SW의 일부 또는 전체를 트리 구조로 분석 및 표현하여 테스트 케이스를 설계

- 어 와이즈 테스트 : 테스트 데이터 값을 최소한 한 번씩 조합하는 방식

- 인-결과 그래프 테스트 : 그래프를 활용해 입력 데이터 간의 관계 및 출력에 미치는 영향을 분석하여 효용성이 높은 테스트 케이스를 선정하여 테스트

- 교 테스트 : 여러 버전의 프로그램에 같은 입력값을 넣어 동일한 결과가 나오는지 테스트

 

종류 설명
동치 분할 검사 프로그램의 입력 조건에 타당한 입력 자료와 타당하지 않은 입력 자료의 개수를 균등하게 해 테스트 케이스를 정하고, 해당 입력 자료에 맞는 결과가 출력되는지 확인하는 기법 (동등 분할 기법)
경곗값 분석 입력 조건의 중간값보다 경계값에서 오류가 발생될 확률이 높다는 점을 이용해 입력 조건의 경계값을 테스트 케이스로 선정해 검사하는 기법
원인-효과 그래프 검사 입력 데이터 간의 관계와 출력에 영향을 미치는 상황을 체계적으로 분석한 다음 효용성이 높은 테스트 케이스를 선정해 검사하는 기법
비교 검사 여러 버전의 프로그램에 동일한 테스트 자료를 제공해 동일한 결과가 출력되는지 테스트하는 기법
오류 예측 검사 다른 블랙박스 테스트 기법으로 찾아낼 수 없는 오류를 찾아내는 일력의 보충적 검사 기법 (데이터 확인 검사)

단위 테스트 : 사용자 요구 사항에 대한 단위 모듈, 서브루틴 등 테스트  ex)컴포넌트 테스트

- 하향식통합 : 메인 제어 모듈부터 아래 방향으로 이동 (스텁 개발)

- 상향식 통합 :최 하위 레벨의 모듈부터 위쪽 방향으로 이동 (드라이버 개발)

통합 테스트 : 모듈 사이의 인터페이스, 통합된 컴포넌트 간 상호작용을 검증하는 테스트  ex)상향식, 하향식 테스트

시스템 테스트 : 통합된 단위 시스템의 기능이 정상적으로 수행되는지 검증하는 테스트  ex)기능, 비기능 테스트

인수 테스트 : 계약의 요구 사항이 만족되었는지 확인하는 테스트  ex)알파, 베타 테스트


개발 방법론

구조적 방법론

기능에 따라 나누어 개발한 후 통합(분할 정복)

프로세스 중심, 하향식 방법론, 나씨-슈나이더만 차트 사용

*나씨슈나이더만 (ns차트) : 구조적 프밍표현을 논리 기술을 중점으로 한 도형적 표현 방식

 

정보공학 방법론

정보 시스템 개발에 필요한 관리 절차와 작업 기법을 체계화한 방법론

개발 주기 사용, 대형 프로젝트

 

객체지향 방법론

객체를 기본 단위로 시스템 분식 및 설계
객체, 클래스, 메시지 사용

 

컴포넌트 기반 방법론

컴포넌트를 조립해서 하나의 응용 프로그램 작성
개발 기간↓, 생산성↑, 확장성, 재사용

 

제품 계열 방법론

공통 기능을 정의하여 개발
임베디드 SW에 유용, 영역 공학과 응용공학으로 구분

 

애자일방법론

절차보단 사람중심, 변화에 유연 신속 효율적 개발
유형 - XP, SCRUM(정해진 시간, 정해진 장소), LEAN(도요타 린)

 

XP의 5가지 가치 [용단의피존]

용기, 단순성, 의사소통, 피드백, 존중


비용추정

LOC (코드라인수) : 예측치 = 낙관치+4중간치+비관치 / 6
Man Month (MM) : 한 사람이 1개월간 할 수 있는 일의 양
COCOMO : 보헴이 제안, 프로그램 규모에 따라 비용을 선정하는 방식
- 조직형(=기본형,단순형) : 5만 라인 이하, 50KDSI 이하
- 반 분리형 : 30만 라인 이하, 300KDSI 이하
- 임베디드 형 : 30만 라인 초과, 300KDSI 초과
Putnam : Rayleigh-Norden 곡선
FP (기능점수) : 요구 기능에 따른 가중치 부여

댓글