정보처리기사
테스트
테스트 기법
- 화이트 박스 테스트: 모듈 내부 소스 코드를 보면서 수행하는 테스트
- 종류
- 기본 경로 커버리지(Base Path Coverage): 수행 가능한 모든 경로 테스트
- 데이터 흐름 테스트(Data Flow Testing): 프로그램에서 변수의 정의와 변수 사용의 위치에 초점을 맞추어 검사
- 조건 커버리지(Condition Coverage): 각 개별 조건식이 적어도 한 번은 참과 거짓의 결과가 되도록 수행
- 루프 테스트
- 종류
- 블랙 박스 테스트: 외부 사용자의 요구사항 명세를 보면서 수행하는 테스트
- 동등(동치, 균등) 분할 테스트(Equivalence Partitioning Testing): 입력값의 범위를 유사한 특징을 갖는 동등그룹으로 나누고 각 그룹마다 대표값을 선정하는 테스트 기법
- 경곗값 분석 테스트(Boundary Value Analysis Testing): 경계값을 테스트 케이스로 선정하여 검사
- 원인-결과 그래프 테스트(Cause-Effect Graphing Testing)
- 오류 예측 테스트
- 의사 결정 테이블 테스트
- 상태 전이 테스트
테스트 목적
- 회복: 시스템에 여러 가지 결함을 주어 실패하도록 한 후 올바르게 복구되는지를 확인
- 안전: 불법적인 침입으로부터 시스템을 보호할 수 있는지를 확인
- 강도: 과부하 시에도 소프트웨어가 정상적으로 실행되는지를 확인
- 성능
- 구조
- 회귀: 변경 또는 수정된 코드에 새로운 결함이 없음을 확인
- 병행: 변경된 소프트웨어와 기존 소프트웨어에 동일한 데이터를 입력해 결과를 비교
테스트 기반
- 명세 기반 테스트: 사용자의 요구사항 명세를 빠짐없이 구현하고 있는지 확인
- 구조 기반 테스트: 소프트웨어 내부의 논리 흐름에 따라 테스트 케이스를 작성하고 확인
- 경험 기반 테스트: 테스터의 경험을 기반으로 수행
테스트 하네스(Test Harness)의 구성 요소
- 테스트 드라이버: 상향식 테스트에서 사용하는 임시 모듈, 가상의 서버 역할
- 테스트 스텁: 하향식 테스트에서 사용하는 임시 모듈, 가상의 클라이언트 역할
- 테스트 슈트: 테스트 케이스의 집합
- 테스트 케이스: 사용자의 요구사항을 정확하게 준수했는지 확인하기 위한 입력 값, 실행 조건, 기대 결과 등으로 만들어진 테스트 항목의 명세서
- 테스트 스크립트: 자동화된 테스트 실행 절차에 대한 명세서
- 목 오브젝트: 사전에 사용자의 행위를 조건부로 입력해 두면, 그 상황에 맞는 예정된 행위를 수행하는 객체
V모델
- 단위(Unit) 테스트
: 개발자가 명세서의 내용대로 정확히 구현되었는지 테스트- 정적: 소스코드의 실행없이 내부 확인
- 동적: 입력값에 대한 출력값 확인
- 통합(Integration) 테스트
: 단위 테스트를 통과한 컴포넌트 간의 인터페이스를 테스트- 빅뱅 테스트: 프로그램 전체를 대상으로 테스트
- 상향식 테스트: 테스트 드라이버 사용
- 하향식 테스트: 깊이 우선 통합법, 넓이 우선 통합법 사용, 테스트 스텁 사용
- 백본(BackBone) 테스트: : 하위 수준에서는 상향식 통합, 상위수준에서는 하향식 통합 사용하여 최적의 테스트를 지원, 샌드위치(Sandwich)식 통합 테스트 방법
- 회귀(Regression) 테스트: 통합 테스트가 완료된 후 변경된 모듈이나 컴포넌트가 있을 경우, 다른 부분에 영향을 미치는지 테스트하여 새로운 오류 여부를 확인
- 시스템(System) 테스트
: 전체 시스템 또는 제품의 동작에 대해 테스트- 기능 요구사항 테스트
- 비기능 요구사항 테스트: 기능 외 성능, 보안, 품질 등
- 인수(Acceptance) 테스트
: 계약상의 요구사항이 만족되었는지 확인- 알파 테스트: 개발자 + 사용자
- 베타 테스트: 사용자
- 형상 테스트: 구조 확인
형상관리
: 비용을 제외하고 SW 개발 과정에서 발생하는 모든 변경사항을 관리
형상관리 절차
식별 → 통제(BaseLine 설정) → 감사 → 기록(형상 관리 위원회: Configuration Control Board)
형상관리 도구
- 중앙집중방식: CVS, SVN
- 분산방식: GIT
Clean Code 작성 원칙
: 가독성, 단순성, 의존성, 중복성, 추상성
Alien Code: 아주 오래되거나 참고문서 또는 개발자가 없어 유지보수 작업이 어려운 프로그램
Spaghetti Code: 소스 코드가 복잡하게 얽힌 프로그램
Legacy Code: 더 이상 쓰기 힘들고 난해한 코드
ISO/IEC 9126 모델 품질 요구 사항 6가지
: 기능, 신뢰, 사용, 효율, 유지보수, 이식
Digital Rights Management
- 디지털 콘텐츠와 디바이스의 사용을 제한하기 위해 사용하는 접근 제어 기술
- 구성 요소
- Clearing House: 사용자에게 콘텐츠 라이센스를 발급하고 권한을 부여해주는 시스템
- 콘텐츠 제공자(Contents Provider)
- 패키저(Packager): 컨텐츠를 메타 데이터(컨텐츠를 설명하는 데이터)와 함께 배포 가능한 형태로 묶어 암호화하는 프로그램
- 콘텐츠 분배자(Contents Distributor)
- 콘텐츠 소비자(Customer)
- DRM 컨트롤러(DRM Controller): 배포된 콘텐츠의 이용 권한을 통제하는 프로그램(멜론 등)
- 보안 컨테이너(Security Container): 콘텐츠 원본을 안전하게 유통하기 위한 전자적 보안 장치
- 기술 요소
- 암호화(Encryption): 콘텐츠 및 라이선스를 암호화
- 키 관리(key Management): 콘텐츠를 암호화한 키에 대한 저장 및 분배
- 암호화 파일 생성(Packager): 콘텐츠를 암호화된 콘텐츠로 생성
- 식별 기술(Identification)
- 저작권 표현(Right Expression)
- 정책 관리(Policy Management)
- 크랙 방지(Tamper Resistance): 크랙(복제가 불가능 하도록 되어있는 파일)에 의한 콘텐츠 사용 방지 기술
- 인증(Authentication): 라이선스 발급 및 사용의 기준이 되는 사용자 인증
참고 자료
'Certificate > 정보처리기사' 카테고리의 다른 글
[정보처리기사] 2021년 3회차 (4)프로그래밍 언어 활용 (0) | 2023.07.11 |
---|---|
[정보처리기사] 2021년 3회차 (3)데이터베이스 설계 (0) | 2023.07.11 |
[정보처리기사] 2021년 3회차 (1)소프트웨어 설계 (0) | 2023.07.10 |
[정보처리기사] 2022년 1회차 (5)정보시스템 구축관리 (0) | 2023.07.09 |
[정보처리기사] 2022년 1회차 (4)프로그래밍 언어 활용 (0) | 2023.07.09 |