본문 바로가기

Study

(18)
정보처리기사 실기 7장. 애플리케이션 테스트 관리_4 7-10. 복잡도 • 복잡도 (Complexity) 시스템/시스템 구성 요소/소프트웨어의 복잡한 정도 • 시간 복잡도 알고리즘을 수행하기 위해 프로세스가 수행하는 연산 횟수를 수치화한 것 - 점근 표기법의 종류 빅오 표기법 (Big-O Notation) 알고리즘의 실행 시간이 최악일 때를 표기 입력 값에 대해 알고리즘을 수행했을 때 명령어의 실행 횟수는 어떠한 경우에도 표기 수치보다 많을 수 없음 세타 표기법 (Big-θ Notation) 알고리즘의 실행 시간이 평균일 때를 표기 입력 값에 대해 알고리즘을 수행했을 때 명령어 실행 횟수의 평균적인 수치를 표기 오메가 표기법 (Big-Ω Notation) 알고리즘의 실행 시간이 최상일 때를 표기 입력값에 대해 알고리즘을 수행했을 때 명령어의 실행 횟수는 어..
정보처리기사 실기 7장. 애플리케이션 테스트 관리_3 7-6. 테스트 케이스 / 테스트 시나리오 / 테스트 오라클 • 테스트 케이스 (Test Case) 사용자의 요구사항을 정확하게 준수했는지를 확인하기 위해 설계된 테스트 항목에 대한 명세서 ‣ 개발한 소프트웨어가 제대로 작동하는지를 확인하기 위한 데이터나 실행 조건 등의 집합 ‣ 입력 값, 실행 조건, 기대 결과 등 • 테스트 시나리오 (Test Scenario) 테스트 케이스를 적용하는 순서에 따라 여러 개의 테스트 케이스를 묶은 집합 ‣ 테스트 케이스를 적용하는 구체적인 절차 명세 ‣ 순서에 대한 구체적인 절차, 사전 조건, 입력 데이터 등 • 테스트 오라클 (Test Oracle) 테스트 결과가 올바른지 판단하기 위해 사전에 정의된 참값을 대입하여 비교하는 기법 ‣ 예상 결과를 계산하거나 확인 - ..
정보처리기사 실기 7장. 애플리케이션 테스트 관리_2 7-4. 개발 단계에 따른 애플리케이션 테스트 • 개발 단계에 따른 애플리케이션 테스트 ✓ 테스트 레벨 소프트웨어의 개발 단계에 따라 분류된 것 ; 단위 테스트, 통합 테스트, 시스템 테스트, 인수 테스트 ✓ V-모델 애플리케이션 테스트와 소프트웨어 개발 단계를 연결하여 표현한 것 • 단위 테스트 (Unit Test) 모듈이나 컴포넌트에 초점을 맞춰 테스트 ‣ 사용자의 요구사항을 기반으로 한 기능성 테스트를 최우선으로 수행 ‣ 인터페이스, 외부적 I/O, 자료 구조, 독립적 기초 경로, 오류 처리 경로, 경계 조건 등 검사 ‣ 구조 기반 테스트와 명세 기반 테스트로 나뉘나, 주로 구조 기반 테스트를 시행 • 통합 테스트 (Integration Test) 단위 테스트가 완료된 모듈들을 결합해 하나의 시스템..
정보처리기사 실기 7장. 애플리케이션 테스트 관리_1 7-1. 애플리케이션 테스트 • 애플리케이션 테스트 애플리케이션에 잠재되어 있는 결함을 찾아내는 일련의 행위 또는 절차 ‣ Validation : 사용자 입장에서 개발된 소프트웨어가 고객의 요구사항을 만족시키는지 확인 ‣ Verification : 개발자 입장에서 소프트웨어가 기능을 정확히 수행하는지 검증(점검) • 애플리케이션 테스트의 기본 원리 완벽한 테스트 불가능 소프트웨어의 잠재적인 결함을 줄일 수 있지만, 소프트웨어에 결함이 없다고 증명할 수 없음 파레토 법칙 (Pareto Principle) 애플리케이션의 20%에 해당하는 코드에서 전체 결함의 80%가 발견된다는 법칙 살충제 패러독스 (Pesticide Paradox) 동일한 테스트 케이스로 동일한 테스트를 반복하면 더 이상 결함이 발견되지 ..
정보처리기사 실기 4장. 서버 프로그램 구현_5 4-11. 개발 지원 도구 • 통합 개발 환경 (IDE; Integrated Development Environment) 개발에 필요한 다양한 툴을 하나의 인터페이스로 통합하여 제공하는 환경 ‣ 통합 환경 도구 : 통합 개발 환경을 제공하는 소프트웨어 ‣ 편집기, 컴파일러, 디버거 등 - 통합 개발 환경 도구의 종류 프로그램 개발사 플랫폼 운영체제 지원 언어 이클립스 (Eclipse) Eclipse Foundation, IBM 크로스 플랫폼 Window, Linux, MacOS 등 Java, C, C++, PHP, JSP등 비주얼 스튜디오 (Visual Studio) Microsoft Win32, Win64 Windows Basic, C, C++, C#, .Net 등 엑스 코드 (Xcode) Apple ..
정보처리기사 실기 4장. 서버 프로그램 구현_4 4-9. 코드 • 코드 (Code) 자료의 분류, 조합, 집계, 추출을 용이하게 하기 위해 사용하는 기호 ‣ 정보를 신속, 정확, 명료하게 전달 가능 ‣ 일정한 규칙에 따라 작성 ‣ 정보 처리의 효율과 처리된 정보의 가치에 영향 • 코드의 주요 기능 식별 기능 데이터 간의 성격에 따라 구분 가능 분류 기능 특정 기준이나 동일한 유형에 해당하는 데이터를 그룹화 가능 배열 기능 의미를 부여하여 나열 가능 표준화 기능 다양한 데이터를 기준에 맞춰 표현 가능 간소화 기능 복잡한 데이터 간소화 가능 • 코드의 종류 순차 코드 (Sequence Code) 자료의 발생 순서, 크기 순서 등 일정 기준에 따라 최초의 자료부터 차례로 일련번호를 부여 = 순서 코드 / 일련번호 코드 예) 1, 2, 3, 4 ⋯ 블록 코드..
정보처리기사 실기 4장. 서버 프로그램 구현_3 4-6. 모듈 • 모듈 (Module) 모듈화를 통해 분리된 시스템의 각 기능 ‣ 서브루틴, 서브시스템, 소프트웨어 내의 프로그램, 작업 단위 등을 의미 - 모듈의 독립성 모듈이 하나의 기능만을 수행 ‣ 다른 모듈과의 과도한 상호작용을 배제 ‣ 모듈의 독립성은 결합도와 응집도에 의해 측정 ‣ 모듈의 독립성 ↑ = 결합도 ↓, 응집도 ↑, 크기 ↓ • 결합도 (Coupling) 모듈 간에 상호 의존하는 정도 ‣ 두 모듈 사이의 연관 관계 ‣ 결합도가 약할수록 품질이 높고, 강할수록 품질이 낮음 - 결합도의 종류 내용 결합도 (Content Coupling) 한 모듈이 다른 모듈의 내부 기능 및 그 내부 자료를 직접 참조하거나 수정할 때의 결합도 공통(공유) 결합도 (Common Coupling) 공유되는 ..
정보처리기사 실기 4장. 서버 프로그램 구현_2 4-4. 객체지향 (Object-Oriented) • 객체지향 각 요소들을 객체로 만든 후, 객체들을 조립해서 소프트웨어를 개발하는 기법 ‣ 구조적 기법의 문제점으로 인한 소프트웨어 위기의 해결책으로 채택 ‣ 소프트웨어의 재사용 및 확장 용이 ‣ 고품질의 소프트웨어를 빠르게 개발 ‣ 유지보수가 쉬움 • 객체지향의 구성 요소 : 객체, 클래스, 메시지 • 1. 객체 (Object) 데이터와 이를 처리하기 위한 함수를 묶어 놓은 소프트웨어 모듈 데이터 (속성, 상태, 변수, 상수, 자료구조) 객체가 가지고 있는 정보 속성, 상태, 분류 등 함수 (메소드, 서비스, 동작, 연산) 객체가 상태를 참조하거나 변경하는 수단 객체가 수행하는 기능으로 데이터를 처리하는 알고리즘 • 2. 클래스 (Class) 공통된 속..