CS/SoftwareEngineering 6

테스트 목적에 따른 분류

회복(Recovery) 테스트시스템에 고의로 실패를 유도하고 시스템이 정상적으로 복귀하는지 테스트안전(Security) 테스트불법적인 소프트웨어가 접근하여 시스템을 파괴하지 못하도록 소스코드 내의 보안적인 결함을 미리 점검하는 테스트강도(Stress) 테스트시스템에 과다 정보량을 부과하여 과부하 시에도 시스템이 정상적으로 작동되는지를 검증하는 테스트성능(Performance) 테스트사용자의 이벤트에 시스템이 응답하는 시간, 특정 시간 내에 처리하는 업무량, 사용자 요구에 시스템이 반응하는 속도 등을 테스트구조(Structure) 테스트시스템의 내부 논리 경로, 소스코드의 복잡도를 평가하는 테스트회귀(Regression) 테스트변경 또는 수정된 코드에 대하여 새로운 결함 발견 여부를 평가하는 테스트병행(P..

형상 관리 도구

형상 관리(SCM, Software Configuration Management)소프트웨어 개발 프로세스 각 단계에서 소프트웨어의 변경점을 체계적으로 추적하고 관리하는 일련의 활동단순 소스 코드의 버전 관리만을 의미하는 것이 아닌, 소프트웨어의 생명 주기 동안의 요구 사항, 설계 문서, 소스 코드, UI 문서, Test Case 및 각종 결과물에 대하여 형상을 만들고, 형상들의 관계 및 변경 사항, 변경 시점 등을 체계적으로 관리 로컬 전용 방식RCS(Revision Control System)소스파일을 한 명만 수정할 수 있도록 제한하여 다수가 소스파일을 동시에 수정할 수 없도록 파일을 잠금으로써 버전을 관리하는 도구SCCS(Source Code Control System)소프트웨어 개발단계나 완료 시..

정적/동적 다이어그램

객체는 클래스의 인스턴스 정적(구조) 다이어그램시스템의 정적인 부분을 가시화하기 위해서 다이어그램을 이용하여 표현클래스 다이어그램(Class Diagram)시스템을 구성하는 클래스와 인터페이스 사이의 정적인 관계를 나타낸 다이어그램으로 클래스 다이어그램을 통해 주요 시스템 구조를 파악하고 구조 상의 문제점을 도출할 수 있음객체 다이어그램(Object Diagram)클래스 다이어그램에 포함된 사물들의 인스턴스(Instance)를 특정 시점의 객체와 객체 사이의 관계로 표현한 다이어그램컴포넌트 다이어그램(Component Diagram)실제 구현 모듈인 컴포넌트 간의 관계를 표현하는 다이어그램배치 다이어그램(Deployment Diagram)노드와 노드 사이에 존재하는 컴포넌트들의 물리적인 구성을 표현 동적..

GoF 디자인 패턴

1. 생성(Creational) 패턴 – 객체 생성 방식에 중점1. Singleton클래스의 인스턴스를 오직 하나만 생성하도록 보장2. Factory Method객체 생성을 서브클래스에서 처리. 객체 생성 책임을 위임3. Abstract Factory관련된 객체들을 구상 클래스에 의존하지 않고 그룹으로 생성4. Builder복잡한 객체 생성을 단계별로 구성 (같은 프로세스로 다양한 표현 가능)5. Prototype기존 객체를 복사(clone)하여 새 객체 생성 2. 구조(Structural) 패턴 – 클래스나 객체를 조합하여 더 큰 구조를 만듦6. Adapter인터페이스 호환이 안 되는 클래스들을 호환되도록 연결7. Bridge추상화와 구현을 분리하여 독립적으로 확장 가능하게 함8. Composite트..

응집도(Cohesion)/결합도(Coupling)

응집도 : 모듈 내부의 연관 정도결합도 : 모듈과 모듈의 연관 정도 응집도기능>순차>통신>절차>시간>논리>우연 기능적 응집도하나의 명확한 목적/기능을 수행하는 모듈 (최고 수준) 순차적 응집도한 기능의 출력이 다음 기능의 입력이 됨통신적 응집도동일한 데이터를 사용하는 여러 기능을 함께 묶음절차적 응집도특정 절차를 따라 순차적으로 수행되는 기능을 묶음시간적 응집도실행 시점이 같은 기능을 묶음 (ex. 초기화 루틴)논리적 응집도비슷한 성격의 여러 기능이 논리적으로 그룹화. (e.g. 하나의 함수에 여러 switch-case로 동작 구분)우연적 응집도관련 없는 기능이 우연히 하나의 모듈에 있음. (최악) 결합도내용>공통>외부>제어>스탬프>데이터 내용 결합도한 모듈이 다른 모듈의 내부 내용까지 접근함 (예: 변..

테스팅 기법

블랙박스 테스트 1. 구문(Syntax)- 입력 데이터가 사전에 정의해 놓은 데이터 유형에 부합하는지(valid), 아닌지(invalid)를 분류한 뒤 예상되는 결과를 테스트- 블랙박스 테스트 방법 중 가장 간단 2. 동등 분할(Equivalence Partitioning, 동치 분할)- 입력 데이터를 중심으로 테스트 케이스를 만들어 테스트하는 방법- 입력 조건에 부합하는 데이터와 부합하지 않는 데이터의 개수를 균등하게 설정하여 테스트 케이스를 작성 3. 경계값 분석(Boundary Value Analysis)- 입력 조건의 중앙 부근의 값보다는 경계 지점의 값에서 오류 발생의 확률이 높은 점을 감안하여 입력 조건의 경계값을 테스트 케이스에 반영하여 테스트 하는 방법- 범위 바깥의 값과 경계값으로 테스트..