2장
- 데이터저장소
- 소프웨어 개발과정에서 다루어야할 데이터들을 논리적인 구조로 조직화하거나 물리적인 공간에구축(논리데이터저장소, 물리데이터저장소)
- 데이터베이스
- 통합된데이터(integrated Data) : 자료의중복베제
- 저장된데이터(stored Data): 컴퓨터가 접근 가능한 메체에 저장된 자료
- 운영데이터(operational Data): 반드시 필요한 자료
- 공용데이터(shared Data) : 공동으로 소유하고 유지하는 자료
- DBMS
- 사용자와 데이터베이스 사이에서 DB를 관리해주는 소프트웨어(종속성과 중복성 문제 해결)
- DBMS의 3가지 기능
- DBMS의 장점
- 논리적 물리적 독립성, 일관성, 무결성, 보안, 표준화, 통합, 최신데이터 ,실시간처리
- DBMS의 단점
- 전문가부족, 전산화비용증가,디스크overhead,백업과 복원, 시스템복잡
- DRM
- 저작권자가 의도한 용도로만 사용되도록하는 콘텐츠관리보호기술
- 크기가크면 미리패키징, 그게아니라면 실시간 패키징
- DRM-패키저
- DRM- 클리어링하우스
- 콘텐츠에 암호와되어 전자서명이 포함되고 라이선스 정보가 클리어링하우스에 등록됨
- DRM- 종량제 방식
- 클리어링 하우스를 통해 서비스의 실제사용량을 측정하여 이용한 만큼의 요금을 부과한다.
- DRM -콘텐츠 제공자
- DRM -패키저
- 콘텐츠를 메타 데이터와 함깨 배포 가능한 형태로 묶어 암호화하는 프로그램
- DRM -콘텐츠 분배자
- DRM - DRM 컨트롤러
- DRM -보안 컨테이너
- 콘텐츠 원본을 안전하게 유통하기 위한 전자화폐 보안장치
- 디지털 저작권 관리의 기술요소
- 암호화, 키관리, 암호화파일생성, 식별기술, 저작권표현, 정책관리,크랙방지, 인증
- 소프트웨어 버전관리도구 -공유폴더방식
- 약속된 공유폴더에 매일 복사 , 자기pc복사후 컴파일 , 파일변경사항 DB저장(SCCS,RCS,PVCS,QVCS)
- 소프트웨어 버전 관리도구 - 서버/클라이언트 방식
- 버전관리 자료가 시스템에 저장되어 관리, 서버자료를 pc(클라이언트)복사후 서버반영 , 서버에 문제생기면 작업중단(CVS ,SVN, CVSNT, clear case ,CMVC, Perforce)
- 소프트웨어 버전 관리도구 - 분산 저장소 방식
- 버전관리 자료가 하나의 원격저장소와 분산된 개발자의 PC로컬에 함꼐 저장되어있는방식 , 원격에서 로컬로 복사 ->작업- >로컬저장소에 우선반영(버전관리) ->원격저장소에 반영 (git ,GUN arch,..)
- 소프트웨어 버전 관리 도구 - SVN
- CVS를 개선한것으로 클라이언트서버구조 , 서버자료 복사해온후 변경내용 서버에 commit ,모든개발은 trunk 디렉토리에서, 추가작업은 branch 디렉토리에서 , 커밋할때마다 revision 1씩 증가 , 무료 , 이름변경 이동등이 가능
- add
- commit
- update
- checkout
- Lock/unlock -잠금하거나 헤제
- import - 처음소스파일을 저장하는 명령
- Export - 순수한 소스 파일만 서버에서 받아온다.
- 소프트웨어 버전관리 도구 -Git
- 2개의 저장소 , 로컬과 원격저장소 , 버전관리가 지역저장소에 저장되므로 오프라인으로도 가능 , 브랜치이용하면 틀에는 영향주지않고 다양한 기능태스트, 파일의 변화는 스냅샷으로 저장
- 화이트 박스 테스트
- 논리적인 모든 경로를 테스트하여 테스트 케이스를 작성한다. 모듈안 직접관찰, 모든문장 한번이상 실행, 분기점부분을 수행하여 논리적 경로제어
- 화이트 박스 테스트 - 기초경로검사
- 절차적 설계의 논리적 복잡성 측정 ,실행경로의 기초를 정의함
- 화이트 박스 테스트 - 제어구조검사
- 조건검사 : 논리적조건검사 , 루프검사 : 반복구조 초점검사 , 데이터흐름검사 : 변수의 정의와 변수사용 위치
- 화이트 박스 테스트의 검증기능
- 문장검증 : 한번이상실행,
- 분기검증: 한번이상수행,
- 조건검증 : True/False ,
- 분기/조건 기준 : 모든경우가 True or False
- 검증기능의 종류
- 기능기반 커버리지 : 실제 테스트가 실행된 기능수/전체기능수
- 라인 커버리지 : 수행한 소스코드 라인수 / 전체 소스코드수
- 코드 커버리지 : 구문 분기 조건들중에 어느정도 테스트 되었는지
- 블랙박스 테스트
- 각 기능이 완전히 작동되는지 입증하는 테스트(기능테스트) , 소프트웨어 인터페이스에서 실시
- 블랙박스 테스트의 종류
- 동치분할 검사 : 입력자료에 초점을 맞추고 검사, 동등분할기법 , 타당한 입력과 타당하지않은 입력 동등하게
- 경계값분석 : 동치분할검사 보안 , 경계값에서 확률이 높다
- 원인-효과 그래프 검사 : 미치는 상황을 체계적으로 분석한다음 케이스를 선정하여 검사
- 오류 예측 검사 : 과거의 경험이나 확인자의 감각
- 비교검사 : 여러버전의 테스트 동일한 결과가 나오는지
- 애플리케이션 테스트
- 단위테스트, 통합테스트, 시스템테스트, 인수테스트
- 소프트웨어 생명주기의 V모델
- 요구사항 - 분석 - 설계 - 구현 - 단위테스트 - 통합테스트 - 시스템테스트 - 인수테스트
- 애플리케이션 테스트 - 단위테스트
- 최소모듈이나 컴포넌트에 맞춰 테스트함
- 구조기반 테스트 - 구조 및 복잡도 검증 (제어 흐름 , 조건결정)
- 명세 기반 테스트 - 목적 실행코드 기반의 블랙박스테스트(동등분할 , 경계값 분석)
- 애플리케이션 테스트 -통합테스트
- 완료된 모듈을 결합하여 하나의 시스템으로 완성 , 컴포넌트간의 상호 작용 오류검사
- 애플리이션 테스트 - 시스템 테스트
- 컴퓨터에서 완벽하게 수행되는가 점검하는 테스트
- 기능적요구사항 : 블랙박스 테스트 시행
- 비기능적요구사항 : 화이트박스 테스트 시행
- 애플리케이션 테스트 - 인수 테스트
- 소프트웨어가 사용자의 요구사항을 충족하는지에 대해 중점을둠
- 사용자 인수테스트 : 사용자가 확인
- 운영상의 인수 테스트 :관리, 정검등 확인
- 계약 인수 테스트 : 조건을 준수하는지 여부 판단
- 규정 인수 테스트 : 규정에맞게 개발됬는지
- 알파 테스트 : 사용자가 개발자 앞에서 ( 통제된 구역에서)
- 베타 테스트 : 선정된 사용자가 여러명의 사용자앞에서 테스트 , 개발자 제어 되지 않음
- 통합 테스트
- 단위 테스트가 끝난 모듈을 통합하는 과정에서 발생하는 오류 및 결함을 찾는 방법
- 비점진적 통합방식 - 단계적 통합하지않고 한번에(빅뱅 통합 테스트 방식)
- 점진적 통합 방식 -단계적으로 통합한다 (완전히 테스트할 가능성이 높음)
- 하향식 통합 테스트
- 상위 모듈에서 하위 모듈로 통합한다(깊이 우선 통합법, 넓이 우선 통합법)
- 초기에 시스템 구조 보여줄수있다
- 상위 모듈에서는 테스트 케이스 사용하기 어렵다.
- 주요 제어 모듈의 종속 모듈을 스텁이라고 한다.
- 회기 테스트 진행
- 상향식 통합 테스트
- 스텁은 필요하지 않지만 관련된 종속 모듈의 그룹인 cluster가 필요하다.
- 상위 모듈에서 입출력을 확인하기 위해 더미 모듈인 드라이버 작성
- 통합된 클러스터 단위로 테스트한다.
- 개발이 완료되면 드라이버는 다시 모듈로 변경
- 혼합식 통합 테스트
- 회기 테스팅
- 이미 테스트 된 프로그램의 테스팅을 반복하는 것으로 새로운 오류가 잇는지 확인한는 것
- 모든 기능 수행가능한 대표적 테스트 케이스 선정
- 모듈 연계
- 외부 모듈 혹은 내부 모듈간의 데이터의 교환을 위해서 관계를 설정하는것으로 EAI 와 ESB가 있다.
- EAI
- 비즈니스 간 통합 및 연계성을 증대해서 시스템의 확장성을 높힌다.
- Point to point
- 가장 기본적인 애플리케이션 통합방식 , 변경및 재사용 힘듬
- Hub & spoke
- 중앙 집중형 방식 , 확장및 유지보수가 용이 ,허브가 장애생기면 전체에 영향미친다.
- Message Bus
- 애플리케이션 사이에 미들웨어를 둔다. 확장성이 뛰어나고 대용량 처리 가능
- hybrid
- hub &spoke 와 message bus 통합방식 , 필요하면 둘중 하나만 사용가능하다. 데이터병목화 최소화
- ESB
- ESB는 애플리케이션 간의 연계, 데이터 변환 , 웹서비스 지원등 표준 기반의 인터페이스 제공
- EAI와 비슷하지만 애플리케이션 보다는 서비스 중심이다.
- 범용적으로 사용하기위하여 결합도를 약하게 유지한다.
- 인터페이스 구현 검증
- 인터페이스 구현 검증은 인터페이스가 정상적으로 문제없이 작동하는지 확인하는것
- 인터페이스 구현 검증도구
- xUnit
- STAF
- Fitnesse
- 웹 기반 테스트 케이스 설계등을 지원하는 테스트 프레임워크
- NTAF
- FItnesse의 장점과 STAF의 장점을 혼합한 naver의 프레임워크
- selenium
- 다양한 브라우저 및 개발언어를 지원하는 웹 애플리케이션 테스트 프레임워크
- watir
- ruby를 사용하는 애플리케이션 테스트 프레임워크
- 인터페이스 구현 감시 도구
- 인터페이스 구현 검증 확인
- 최초입력값과 입력값에 의한 결과값의 실제검증값이 동일하다
- 오류처리는 제대로 되었는지