반응형
소프트웨어 패키징
- 소프트웨어 패키징은 모듈별로 생성한 실행 파일들을 묶어 배포용 설치 파일을 만드는 것을 말한다.
- 개발자가 아니라 사용자를 중심으로 진행한다.
- 소스 코드는 향후 관리를 고려하여 모듈화하여 패키징
한다. - 다양한 환경에서 소프트웨어를 손쉽게 사용할 수 있도 록 일반적인 배포 형태로 패키징한다.
디지털 저작권 관리(DRM)의 구성 요소 / 기술 요소
구성요소
- 클리어링 하우스(Clearing House) : 저작권에 대한 사용 권 한, 라이선스 발급, 사용량에 따른 결제 관리 등을 수행 하는 곳
- 콘텐츠 제공자(Contents Provider) : 콘텐츠를 제공하는 저 작권자
- 패키저(Packager) : 콘텐츠를 메타 데이터와 함께 배포 가능한 형태로 묶어 암호화하는 프로그램
- 콘텐츠 분배자(Contents Distributor) : 암호화된 콘텐츠를 유통하는 곳이나 사람
- 콘텐츠 소비자(Customer) : 콘텐츠를 구매해서 사용하는 주체
- DRM 컨트롤러(DRM Controller) : 배포된 콘텐츠의 이용 권 한을 통제하는 프로그램
- 보안 컨테이너(Securitly Container) : 콘텐츠 원본을 안전하 게 유통하기 위한 전자적 보안 장치
기술요소
- 암호화(Encryption) : 콘텐츠 및 라이선스를 암호화하고 전자 서명을 할 수 있는 기술
- 키 관리(Key Management) : 콘텐츠를 암호화한 키에 대 한 저장 및 분배 기술
- 암호화 파일 생성(Packager) : 콘텐츠를 암호화된 콘텐츠 로 생성하기 위한 기술
- 식별 기술(dentication) : 콘텐츠에 대한 식별 체계 표현 기술
- 저작권 표현(Right Expression) : 라이선스의 내용 표현 기술
- 정책 관리(Policy Management) : 라이선스 발급 및 사용에 대한 정책 표현 및 관리 기술
- 크랙 방지(Tamper Resistance) : 크랙에 의한 콘텐츠 사용 방지 기술
- 인증(Auhenication) : 라이선스 발급 및 사용의 기준이 되는 사용자 인증 기술
소프트웨어 패키징 형상 관리
- 형상 관리(SCM; Software Configuration Management) 는 소프트웨어의 개발 과정에서 소프트웨어의 변경 사항 을 관리하기 위해 개발된 일련의 활동이다.
- 소프트웨어 개발의 전체 비용을 줄이고, 개발 과정의 여러 방해 요인이 최소화되도록 보증하는 것을 목적으 로 한다.
- 관리 항목 : 소스 코드, 프로젝트 계획, 분석서, 설계서, 프로그램, 테스트 케이스 등
- 형상 관리 도구 : Git, CVS, Subversion, Mercurial 등
소프트웨어의 버전 등록 관련 주요 기능
- 저장소(Repostory) : 최신 버전의 파일들과 변경 내역에 대한 정보들이 저장되어 있는 곳
- 가져오기(mport) : 버전 관리가 되고 있지 않은 아무것도 없는 저장소(Repository)에 처음으로 파일을 복사함
- 체크아웃(Check-Out) : 프로그램을 수정하기 위해 저장 소(Repository)에서 파일을 받아오며, 소스 파일과 함 께 버전 관리를 위한 파일들도 받아옴
- 체크인(Check-n) : 체크아웃 한 파일의 수정을 완료한 후 저장소(Repository)의 파일을 새로운 버전으로 갱신함
- 커밋(Commit) : 체크인을 수행할 때 이전에 갱신된 내용 이 있는 경우에는 충돌(Conflict)을 알리고 diff 도구를 이용해 수정한 후 갱신을 완료함
- 동기화(Update) : 저장소에 있는 최신 버전으로 자신의 작업 공간을 동기화함
테스트 방법
화이트박스 테스트
- 화이트박스 테스트(White Box Test)는 모듈의 원시 코 드를 오픈시킨 상태에서 원시 코드의 논리적인 모든 경 로를 테스트하여 테스트 케이스를 설계하는 방법이다.
- 원시 코드(모듈)의 모든 문장을 한 번 이상 실행함으로 써 수행된다.
- 프로그램의 제어 구조에 따라 선택, 반복 등의 분기점 부분들을 수행함으로써 논리적 경로를 제어한다.
- 모듈 안의 작동을 직접 관찰한다.
- 종류 : 기초 경로 검사(Base Path Testing), 제어 구조 검사(Control Structure Testing) 등
화이트박스 테스트의 종류
- 기초 경로 검사(Base Path Testing) : 테스트 케이스 설계 자가 절차적 설계의 논리적 복잡성을 측정할 수 있게 해주는 테스트 기법으로, 테스트 측정 결과는 실행 경 로의 기초를 정의하는 데 지침으로 사용됨
- 기초 경로(Base Path = Basis Path) : 수행 가능한 모든 경로를 의미함
- 제어 구조 검사(Conirol Structure Testing)
- 조건 검사(Condition Tesing) : 프로그램 모듈 내에 있는 논리적 조건을 테스트하는 테스트 케이스 설계 기법
- 루프 검사(Loop Testing) : 프로그램의 반복(Loop) 구조 에 초점을 맞춰 실시하는 테스트 케이스 설계 기법
- 데이터 흐름 검사(Dala Flow Testing) : 프로그램에서 변 수의 정의와 변수 사용의 위치에 초점을 맞춰 실시하 는 테스트 케이스 설계 기법
블랙박스 테스트
- 블랙박스 테스트(Black Box Test)는 소프트웨어가 수 행할 특정 기능을 알기 위해서 각 기능이 완전히 작동되 는 것을 입증하는 테스트로, 기능 테스트라고도 한다.
- 프로그램의 구조를 고려하지 않기 때문에 테스트 케이 스는 프로그램 또는 모듈의 요구나 명세를 기초로 결정 한다.
- 블랙박스 테스트로 발견 가능한 오류
- 비정상적인 자료를 입력해도 오류 처리를 수행하지 않는 경우
- 정상적인 자료를 입력해도 요구된 기능이 제대로 수 행되지 않는 경우
- 경계값을 입력할 경우 요구된 출력 결과가 나오지 않는 경우
블랙박스 테스트의 종류
- 동치 분할 검사(Equivalence Pariioning Testing) : 프로그램 의 입력 조건에 타당한 입력 자료와 타당하지 않은 입 력 자료의 개수를 균등하게 하여 테스트 케이스를 정하 고, 해당 입력 자료에 맞는 결과가 출력되는지 확인하 는 기법
- 경계값 분석(Boundary Value Analysis) : 입력 조건의 중간 값보다 경계값에서 오류가 발생될 확률이 높다는 점을 이용하여 입력 조건의 경계값을 테스트 케이스로 선정 하여 검사하는 기법
- 원인-효과 그래프 검사(Cause-Efiect Graphing Testing) : 입 력 데이터 간의 관계와 출력에 영향을 미치는 상황을 체계적으로 분석한 다음 효용성이 높은 테스트 케이스 를 선정하여 검사하는 기법
- 오류 예측 검사(Eror Guessing) : 과거의 경험이나 확인자 의 감각으로 테스트하는 기법
- 비교 검사(Comparison Testing) : 여러 버전의 프로그램에 동일한 테스트 자료를 제공하여 동일한 결과가 출력되 는지 테스트하는 기법
단위 테스트 / 인수테스트 / 테스트 오라클
단위 테스트
- 단위 테스트(Unit Test)는 코딩 직후 소프트웨어 설계 의 최소 단위인 모듈이나 컴포넌트에 초점을 맞춰 테스 트하는 것이다.
- 단위 테스트로 발견 가능한 오류
- 알고리즘 오류에 따른 원치 않는 결과
- 탈출구가 없는 반복문의 사용
- 틀린 계산 수식에 의한 잘못된 결과
인수 테스트
- 인수 테스트(Acceptance Test)는 개발한 소프트웨어가 사용자의 요구사항을 충족하는지에 중점을 두고 테스 트하는 방법이다.
- 알파 테스트 : 개발자의 장소에서 사용자가 개발자 앞에 서 행하는 테스트 기법
- 베타 테스트 : 선정된 최종 사용자가 여러 명의 사용 자 앞에서 행하는 테스트 기법으로, 필드 테스팅(rield Testing)이라고도 불림
테스트 오라클
- 테스트 오라클(Test Oracle)은 테스트 결과가 올바른지 판단하기 위해 사전에 정의된 참 값을 대입하여 비교하 는 기법 및 활동을 말한다.
- 테스트 오라클은 결과를 판단하기 위해 테스트 케이스 에 대한 예상 결과를 계산하거나 확인한다.
- 특징 : 제한된 검증, 수학적 기법, 자동화 가능 등
- 종류 : 참 오라클, 샘플링 오라클, 추정오라클, 일관성
검사 오라클 등
반응형
'프로그래밍 > 2024 정보처리기사' 카테고리의 다른 글
2024 정보처리기사 - 데이터베이스 설계(1) (0) | 2024.02.15 |
---|---|
2024 정보처리기사 - 인터페이스 구현 (0) | 2024.02.14 |
2024 정보처리기사 - 자료구조 (0) | 2024.02.14 |
2024 정보처리기사 - 인터페이스 설계 (0) | 2024.02.14 |
2024 정보처리기사 - 애플리케이션 설계[객체지향 설계] (0) | 2024.02.14 |