인터페이스
서로 다른 두 개의 시스템이나 장치 사이에서 정보나 신호를 주고받는 경우의 접점이나
경계면.
인터페이스 구성 요소 : 송신시스템, 중계시스템, 수신시스템, 프로토콜, 데이터포맷
인터페이스 구현기술
REST : 웹상의 리소스를 데이터구조로 정의하여 주고 받을 수 있게 정의된 기술
SOAP : XML기반의 메시지를 네트워크상에서 신뢰성 있게 전송할 수 있는 기술.
RSS : 웹상에서 미리 서비스를 구독 요청한 클라이언트에게 정기적으로 메시지를 제공하는 기술
소켓 : TCP/IP 기반으로 안정적인 인터페이스를 구현하는 기술.
RPC(원격 프로시저 호출)
시스템 간 원격 제어를 위해 다른 시스템의 함수, 프로세스를 실행할 수 있게하는
프로세스 간 통신 기술
DB Link : 송신 시스템의 DB내에서 수신시스템의 DB로 내부적인 Link를 하여 인터페이스를
하는 기술.
인터페이스 데이터 포맷
고정길이방식,
가변길이방식(가변길이 데이터 포맷)
XML(eXtensible Markup Language)
시스템내에서 다양한 데이터를 구조화된 형태로 표현, 전달할 수 있는 표준화된
마크업 언어
JSON(JavaScript Object Notation)
웹상에 전송되는 데이터를 속성-값의 쌍으로 표현할 수 있는 데이터 포맷.
MTOM
메시지 전송 최적화 매커니즘.
인터페이스 솔루션
인터페이스 구현은 인터페이스 구현 기술, 데이터 포맷 등에 따라서 상이할 수 있으므로,
솔루션을 사용할 수 있다.
MCI : 다양한 고객 접점 채널과 기업 내부의 시스템 간에 인터페이스를 통합하고 관리하는 솔루션.
FEP : 기업내부(특히 금융권) 시스템과 대외기관 간읜 인터페이스를 통합하고 관리하는 솔루션.
EAI : 기업의 내부 및 외부 애플리케이션 사이의 통합을 위해 제공되는 프로세스로, 기술
및 툴의 집합
ESB : 고객의 서비스 요청에 대해서 백단의 다양한 시스템을 고객이 원하는 서비스로
제공하는 솔루션. SOA기반.
인터페이스 데이터 표준
외부 및 내부 모듈 간 데이터 교환 시 상호 호환이 가능하도록 구현하기 위해 인터페이스에서
사용하는 데이터 항목의 표준을 정의하고 이를 관리한다.
데이터 표준은 표준 용어와 도메인으로 구성된다.
표준용어(업무적으로 사용하고 있는 명사형 용어를 취합하여 정의한 단어들의 집합)
표준도메인(도메인은 각 용어 속성의 특징, 유형을 분류한 것으로 번호, 코드등의 데이터 유형.)
EAI(Enterprise Application Integration, 기업 내,외부 정보시스템 통합)
EAI 구성요소
EAI Platform : 데이터전송을 보장하는 메시지 큐와 트랜잭션 미들웨어 기능을 수행.
Application Adaptor : 애플리케이션을 신속하고 재사용성이 높은 인터페이스로 지원한다.
브로커 : 시스템 상호 간 데이터가 전송될 때 데이터 포맷과 코드를 변환
Business Workflow : 비즈니스 Workflow에 따라 업무를 처리해 주는 기능
EAI 주요 기능
비즈니스 프로세스 관리 기능 : 각 업무에 대한 흐름의 정의,운용
데이트 브로커 기능 : App 상호 간에 중개되는 데이터를 자동 변환하여 전달.
APP접근 기능 : 이기종 시스템과의 접속
데이터 접근 기능 : 데이터에 대한 통합을 담당.(데이터 전송, 타입 변환, 데이터의 정제
및 추출 기능)
플롯폼 기능 : APP서버 또는 미들웨어로 구성되어 있는 영역.
EAI 구축 유형
Point to Point : 1:1
Hub & Spoke : 허브를 통해 데이터전송
Message Bus : 버스를 이용하여 데이터 전송
Hybrid : Hub & Spoke와 Message Bus 방식의 통합.
EAI 통합 4단계
데이터 - 애플리케이션 - 비즈니스로직 - 사용자 인터페이스.
인터페이스 기능 구현 방법 : 데이터통신, 인터페이스 테이블
Ajax(Asynchronous Javascript And XML)
브라우저와 서버간의 비동기 통신기술. 자바스크립트와 XML의 집합 같은 기술 포함.
HTML페이지 전체가 아닌 일부분만 갱신할 수 있도록 함.
인터페이스 공통 기능
예외처리 : 인터페이스 응답값에 따라 성공, 실패를 판단하고 실패 시 예외 처리 로직을 구현.
시큐어코딩
웹 애플리케이션에 대한 보안 취약점은 매년 OWASP(Open Web Application Security Project)
를 통해 발표.
인터페이스 시뮬레이터
사전에 약속된 인터페이스 데이터 항목 스키마를 선언하고 송신 또는 수신 프로그램에서 입력할
인터페이스 데이터 항목의 값을 임의로 설정.
APM(Application Performance Management)
구현된 인터페이스가 외부시스템과 연결 모듈 간에 정상 동작하는지 감시하는 도구.
인터페이스 테스트 도구
테스트자동화도구
xUnit : 다양한 언어를 지원하는 단위테스트프레임워크
STAF : 다양한 환경을 지원하는 테스트프레임워크
Fitnesse : 웹 기반 테스트 케이스
NTAF : STAF + Fitnesse
Selenium : 다양한 브라우저 및 개발언어를 지원하는 웹 애플리케이션 테스트 프레임워크
Watir : Ruby 기반 웹 애플리케이션 테스트 프레임워크
테스트 시나리오 및 테스트 케이스.
테스트 시나리오는 실제 사용자 업무 또는 시스템 내 프로그램의 처리 절차에 따라 작성되며,
각 절차에서 수행하는 작업이 테스트 케이스로 작성.
테스트데이터
테스트수행을 위해 필요한 테스트 데이터를 사전에 확보.
소프트웨어 연계 테스트
연계 테스트 케이스 작성 - 테스트 환경 구축 - 테스트 수행 - 수행 결과 검증.
소프트웨어 아키텍처
개발하고자 하는 소프트웨어의 사전 작업을 통해 소프트웨어 개발을 쉽게 하기 위한 기본
틀을 만드는 것.
사용자 인터페이스(UI, User Interface)
인간과 소프트웨어가 의사소통할 수 있도록 만들어진 매개체로, 사용자가 실제로 마주하게 될
디자인 레이아웃의 개념이다.(사용자 환경)
사용자와 시스템 간의 상호작용이 원활하게 이뤄지도록 도와주는 장치나 소프트웨어.
UX(User eXperience)
사용자 경험
CLI, GUI, NUI(Natural, 사용자의 말과 행동기반의 움직임을 인식.), OUI(유기적 상호작용 기반 인터페이스. 모든 사물이 입,출력 장치가 될 수 있음.)
사용자 인터페이스의 기본원칙
직관성(Intuitiveness) : 누구나 쉽게 이해하고 사용할 수 있도록 제작.
유효성(Efficiency) : 정확하고 완벽하게 사용자의 목표가 달성될 수 있도록 제작.
학습성(Learnability) : 모두가 쉽게 배우고 사용할 수 있도록 제작
유연성(Flexibility) : 사용자의 인터랙션을 최대한 포용하고 실수를 방지할 수 있도록 제작.
HCI(Human Computer Interaction)
인가ㄴ과 컴퓨터 간의 상호작용에 대한 연구.
설계모형 : 설계 모형, 사용자 모형, 시스템 인식, 시스템 이미지.
UI표준 : 화면 구성, 화면 간 이동 등에 관한 규약(모든 UI에 적용)
UI 프로토타입
페이퍼프로토타입 : 화이트보드, 펜, 종이
디지털프로토타입 : 컴퓨터 등 도구(파워포인트, HTML, Marvel)
장점
사용자 설득과 이해가 쉽다.
개발 시간이 감소한다.
오류를 사전에 발견할 수 있다.
단점
너무 많은 수정과정을 거친다면 오히려 개발시간이 늘어날 수 있다.
필요 이상의 자원을 소모한다.
사용자의 요구사항은 가능한 들어주되 적절한 타협이 필요하다.
UI설계 도구
웹 사이트 또는 모바일 앱을 제작하기 위한 화면 설계 도구.
종류
와이어프레임(Wireframe) : 화면단위의 레이아웃을 설계하는 작업
목업(Mockup) : 정적 형태의 모형
스토리보드(Storyboard) : 디자이너와 개발자가 참고하는 최종적인 산출 문서이다.
프로토타입 : 실제 서비스와 흡사한 모형을 만드는 작업.
체크박스, 라디오박스, 텍스트박스, 명령버튼, 리스트박스
감성공학
인간의 감성을 과학적으로 측정하고 평가한 것에 공학적 기술력을 결합시켜 새로운 제품을 만들어
인간이 더욱 편리하도록 하려는 기술.
UI시나리오 작성의 원칙
UI의 전체적인 기능과 작동 방식을 개발자가 한눈에 쉽게 이해 가능하도록 구체적으로 작성해야 한다.
UI시나리오 문서 작성의 요건
안전성, 일관성, 이해성, 가독성, 수정용이성, 추적용이성.
13.애플리케이션 테스트 케이스 설계
애플리케이션 테스트
결함을 찾기 위해 애플리케이션을 작동시키는 일련의 행위와 절차.
디버깅은 애플리케이션 테스트 후 발견된 결함을 제거하는 작업이다.
40(분석,설계)-20(구현)-40(테스트)
테스트 프로세스
테스트 계획 - 테스트분석 및 디자인 - 테스트케이스 및 시나리오 작성 - 테스트 수행 -
테스트 결과 평가 및 리포팅
스프트웨어 테스트 산출물
테스트 계획서 : 테스트 수행을 계획한 문서
테스트 케이스 : 설계 산출물로, 요구 사항을 준수하는지 검증하기 위하여 테스트 조건, 입력값,
예상 출력값 및 수행한 결과 등의 테스트 조건을 명세한 것.
테스트 시나리오
테스트 수행을 위한 여러 개의 테스트 케이스의 집합으로 테스트 케이스의 동작 순서를
기술한 문서
테스트 시나리오 작성철자
요구사항 문서를 리딩 -
각 요구사항에 대해 가능한 사용자 행동 및 목표를 파악 -
적절한 분석 후에 소프트웨어의 각 기능을 검증하는 다양한 테스트 시나리오를 나열 -
추적성 매트릭스 생성 : 가능한 모든 테스트 시나리오를 나열하여 각 요구사항에 대한
테스트 시나리오가 있는지 확인 -
생성된 시나리오 검토
테스트 결과서 : 테스트 결과를 평가 및 리포팅하는 문서.
테스트케이스
최적의 테스트 케이스로 가능한 많은 결함을 발견할 수 있어야 한다.
테스트케이스 작성 절차
참조문서수집 - 테스트케이스 작성 - 내부검토 - 요구사항 대비 커버리지 분석 - 단계승인
테스트케이스 구성 항목
식별자번호 : 테스트 케이스를 식별하기 위한 번호 또는 식별자
사전조건 : 테스트 수행에 필요한 조건 또는 실행 환경
테스트데이터 : 테스트에 필요한 데이터.
수행절차 : 테스트할 상세 순서를 순서대로 기입.
예상결과 : 테스트 순서대로 진행 시에 예상되는 결과.
테스트의 종류
테스트 단계에 의한 분류
모듈(단위)테스트 - 통합테스트 - 시스템테스트 - 인수테스트.
테스트 목적에 의한 분류
기능테스트(Functional Test) : 주어진 입력에 대해 기대되는 출력 제공 여부를 테스트
성능테스트(Performance Test) : 응답시간, 처리량, 메모리 활용도, 처리 속도 등을 테스트
스트레스테스트(Stress Test)
복잡도테스트(Complexity Test) : 논리경로의 복잡도를 평가
검증(Verification, 개발자의 시각)과 확인(Validation, 사용자의 시각)
테스트 기법에 의한 분류
블랙박스 테스트 : 소프트웨어의 외부 명세서를 기준으로 그 기능과 성능을 테스트
화이트박스 테스트 : 소프트웨어 내부의 논리적 구조를 테스트.
|정적테스트(인스펙션, 워크스루, 코드검사)
|동적테스트(화이트박스테스트, 블랙박스테스트)
테스트 하네스(장치)
특정 환경에서 테스트하기 위해 만든 소프트웨어 코드와 데이터.
구성요소
테스트 드라이버 : 테스트 대상 하위 모듈을 호출하고, 파라미터를 전달(가짜메인)
테스트 스텁 : 제어 모듈이 호출하는 타 모듈의 기능을 단순히 수행하는 도구(가짜모듈)
테스트 슈트 : 테스트 케이스의 집합
테스트 케이스
모듈테스트(Unit test)
코딩이 끝난 후 설계의 최소 단위인 모듈에 초점을 두고 검사하는 단계.
화이트박스테스트 기법이 적용된다.
통합테스트(Integration Test)
단위테스트가 끝난 모듈들을 하나로 결합하여 시스템으로 완성하는 과정에서의 테스트이다.
시스템테스트(System Test)
외부기능테스트, 내부기능테스트, 부피테스트, 스트레스테스트, 성능테스트(응답시간, 처리량, 처리속도),
호환성테스트, 신뢰성테스트, 복구테스트, 보수용이성테스트.
인수테스트(Acceptance Testing)
사용자측 관점에서 소프트웨어가 사용자의 요구를 충족시키는가를 두고 테스트한다.
알파테스트 : 개발자의 장소
베타테스트 : 사용자의 환경
테스트오라클
테스트의 결과가 참인지 거짓인지를 판단하기 위해 사전에 정의된 참값을 입력하여 비교하는 기법 및 활동
참(True)오라클 : 모든 입력값에 대하여 기대하는 결과를 생성함으로써 발생된 오류를 모두 검출
샘플링(Sampling)오라클 : 특정한 몇 개의 입력값에 대해서만 기대하는 결과를 제공
휴리스틱(Heuristic)오라클 : 샘플링오라클을 개선한 오라클로, 특정 입력값에 대해서만 기대하는
결과를 제공하고, 나머지는 휴리스틱(추정)으로 처리
일관성 검사(Consistent)오라클 : 애플리케이션 변깅이 있을 때 수행 전과 후의 결과 값이
동일한지 확인.
블랙박스테스트
1.동등분할(Equivalence Partitioning)
프로그램의 입력 도메인을 테스트 사례가 산출될 수 있는 데이터의 클래스로 분류하여 테스트
사례를 만들어 검사하는 방법.
x = 0~100 일때,
유효 동등 클래스 집합 : 프로그램에 유효한 입력을 가진 테스트 사례 0<=x<=100
무효 동등 클래스 집합 : 프로그램에 타당치 못한 입력을 가진 테스트 사례 x<0, x<100
2.경계값 분석(Boundary Value Analysis)
입력 조건의 중간값보다는 경계값에서 오류가 발생될 확률이 높다는 점을 이용하여, 입력조건의
경계값에서 테스트 사례를 선정
3.원인-효과 그래프(Cause-Effect Graph)
입력 데이터 간의 관계까 출력에 미치는 상황을 체계적으로 분석하여 효용성 높은 테스트 사례를
추출하여 시험하는 기법.
4.오류추측기법(Error-Guessing) : 오류를 감각과 경험으로 찾아내는 테스트 기법.
5.비교검사기법(Comparison Testing)
Back-to-Back 테스트.
소프트웨어의 신뢰성이 절대적으로 중요한 경우 똑같은 기능의 소프트웨어를 개발하여 비교.
화이트박스 테스트
프로그램내의 모든 논리적 구조를 파악하거나 경로들의 복잡도를 계산하여 테스트 사례를 만든다.
1.기초경로테스트(Base Path Test)
프로그램의 논리적 복잡도를 측정하여 실행 경로의 기초를 정의하는데 사용할 수 있게한다.
(논리흐름도 사용)
V(G) 복잡도 = E(간선, Edge) - N(노드, Node) + 2
2.루프테스트(Loop Test)
프로그램 반복(Loop)구조에 국한해서 실시하는 화이트박스 테스트 기법
3.조건테스트(Condition test)
모듈내에 포함된 논리적 조건을 검사하여 테스트사례를 설계하는 방법.
4.데이트 흐름 테스트(Data Flow Test)
변수 정의의 위치와 변수들의 사용에 따라 검사 경로를 선택하는 조건 구조 검사 방법.
화이트박스 테스트 검증 기준
문장 검증 기준(Statement Coverage) : 소스코드의 모든 구문이 한 번 이상 수행되도록
테스트 케이스를 설계했는지 검증
분기 검증 기준(Branch Coverage) : 소스코드의 모든 조건이 한 번 이상 수행되도록 //
조건 검증 기준(Condition Coverage) : 소스코드의 모든 조건문의 참, 거짓이 각 한 번이상
수행되도록 //
분기/조건 기준 : 소스코드의 모든 조건문과 각 조건문에 포함된 개별 조건식이 결과가
참, 거짓인 경우 각각을 한 번 이상 수행되도록 //