소프트웨어 개발(애플리케이션 테스트 관리)
2025. 2. 11. 14:03ㆍ자격증
반응형
1. 애플리케이션 테스트 케이스 설계 | (1)테스트 케이스 개념 : 특정 요구사항에 준수하는 지를 확인하기 위해 개발된 입력값, 실행조건, 예상된 결과의 집합 (2)구성요소 ISO/IEC/IEEE 29119-3표준 구성요소 (식항입출환특의) ①식별자 ②테스트 항목 ③입력명세 ④출력명세 ⑤환경설정 ⑥특수절차요구 ⑦의존성 기술 테스트케이스:모듈, 기능] (3)테스트 오라클의 종류 (참샘휴일) ①참 오라클 ②샘플링 오라클 ③휴리틱스 오라클 ④일관성 검사 오라클 (4)테스트 레벨 종류 (단통시인) ①단위테스트 : 명세 기반 테스트 (=블랙박스테스트)와 구조 기반 테스트 (=화이트박스) 테스트 나눠 진다. 주로 구조기반 테스트 수행 ②통합테스트 : 각 모듈 간의 인터페이스 관련 오류 및 결함을 찾아내기 위한 체계적인 테스트 기법 ③시스템테스트 : 기능이 시스템에서 정상적으로 수행 되는지를 검증하는 테스트 이다. (기능적, 비기능적 요구사항 테스트) ④인수테스트 : 최종 사용자와 업무의 이해관계자 등이 테스트를 수행함으로써 개발된 제품에 대해 운영 여부를 결정하는 테스트 1. 알파 테스트 : 회사 내부, 자체 테스트, 회사와 밀접한 사람만 참여하게 된다. 사용자와 개발자, 함께 수행되는 인수 테스트 2. 베타 테스트 : 회사 외부, 정식 출시전, 사용자 참여, 필드 테스팅이라고 불리며, 개발자 없이 고객의 사용 환경에 소프트웨어를 설치하여 검사를 수행하는 인수 테스트. 검증Verification : 소프트웨어 개발 과정을 테스트(개발자 시각) / 확인 Validation : 소프트웨어 결과를 테스트 (사용자 시각) (5)프로그램 실행 여부에 따른 분류 (6)화이트박스 테스트 : 각 응용 프로그램의 내부 구조와 동작을 검사하는 소프트웨어 테스트 (구글코로) ①구조 기반 테스트 ② 글래스 박스 테스트 ③ 코드 기반 테스트 ④ 로직 기반 테스트 (7)화이트박스 테스트 유형 (구결조 조변다 기제데) ①구문 커버리지 ②결정 커버리지 ③조건 커버리지 ④조건/결정 커버리지 ⑤변경 조건/결정 커버리지 ⑥다중 조건 커버리지 ⑦기본 경로 커버리지 ⑧제어 흐름 테스트 ⑨데이터 흐름 테스트 (8)블랙박스테스트 : 1. 프로그램 외부 사용자의 요구사항 명세를 보면서 수행하는 테스트(기능 테스트) 2. 블랙박스 테스트 기능 및 동작 위주의 테스트를 진행하기 때문에 내부 구조나 작동 원리를 알지 못해도 가능 3. 블랙박스 테스트는 명세 테스트라고도 부름 (9)블랙박스 테스트 유형 (동경결 상유분 폐원비) ①동등 분할 테스트 ②경곗값 분석 테스트 ③결정 테이블 테스트 ④상태전이 테스트 ⑤유스케이스 테스트 ⑥분류 트리 테스트 ⑦페어와이즈 테스트 ⑧원인-결과 그래프 테스트 ⑨비교 테스트 (10)테스트 목적에 따른 분류 (회안성 강 구회병) ①회복 테스트 ②안전 테스트 ③성능 테스트 ④강도 테스트 ⑤구조 테스트 ⑥회귀 테스트 ⑦병행 테스트 (11)소프트웨어 테스트의 원리 (결완초집 살정오) ①결함 존재 증명 ②완벽 테스팅은 불가능 ③조기 집중 ④결함 집중 ⑤살충제 패러독스 ⑥정황 의존성 ⑦오류-부재의 궤변 |
2. 애플리케이션 통합 테스트 | (1)결함 관리 프로세스 (발등에확할조검) ①에러 발견 ②에러 등록 ③에러 분석 ④결함 확정 ⑤결함 할당 ⑥겸함 조치 ⑦결함 조치 검토 및 승인 (2)결함 추이 분석 유형 (분추에) ①결함 분포 분석: 결함의 수를 측정하여 결함의 분포를 분석 ②결함 추세 분석: 시간의 흐름에 따른 결함의 수를 측정 ③결함 에이징 분석: 특정한 결함 상태의 지속 시간을 측정하여 분석 (3)테스트 커버리지 유형 (기라코) ①기능 기반 커버리지: 실제 테스트가 수행된 기능의 수를 측정 ②라인 커버리지: 수행한 소스 코드의 라인 수를 측정하는 방법 ③코드 커버리지: 구조 코드 자체가 얼마나 테스트 되었는지를 측정 (4)코드 커버리지 유형 (구결조 조변다) ①구문 커버리지 ②결정 커버리지 ③조건 커버리지 ④조건/결정 커버리지 ⑤변경 조건/결정 커버리지 ⑥다중 조건 커버리지 (5)소프트웨어 결함 관련 용어 ①오류Error : 사람(개발자)에 의해 생성된 실수 (Human Mistake) ②결함Defect/결점Fault : 시스템이 고장Failure을 일으키게 하며, 오류Error가 있는 경우 발생하는 현상 ③버그Bug : 프로그램 오류로 인해 예상치 못한 결과가 나는 현상 ④고장Failure / 문제Problem : 소프트웨어 제품에 포함된 결함이 실행될 때 발생하는 현상 (6)결함 심각도별 분류 (치주보경단) ( Critical – Major – Normal – Minor – Sample ) ( 치명적 – 주요 – 보통 – 경미한 – 단순 ) ①치명적Critical 결함 : 데이터 손실, 시스템 충돌 ②주요Major 결함 : 기능 장애 ③보통Normal 결함 : 부자연스러운 결함, 사소한 기능 오작동 ④경미한Minor 결함 : UI잘림 ⑤단순Simple 결함 :미관상 좋지 않음, 기능에 영향이 없지만 수정되어야 하는 결함 (7)테스트 자동화 도구 유형 ①정적 분석 도구Static Analysis Tools : 1. 애플리케이션을 실행하지 않고 분석 2. 제품 : PMD, Checkstyle, CppCheck, Splint, SonaQube 3. 소스 코드에 대한 코딩표준, 코딩 스타일, 코드 복잡도 및 남은 결함을 발견 ②테스트 실행 도구Test Execution Tools : 1. 작성된 스크립트를 실행하는 도구, 2. 제품 : JMeter, OpenSTA 3. 유형 : 데이터 주도 접근 방식과 키워드 주도 접근 방식이 있다. ③성능 테스트 도구Performance Test Tools 1. 처응경자 ①처리량 ②응답 시간 ③경과 시간 ④자원 사용률에 대해 가상의 사용자를 생성하고 테스트를 수행 2. 제품 : Cobertura, Clover ④테스트 통제 도구Test Control Tools : 제품 : Hudson, Ant, xUnit (8)테스트 장치 구성 요소 (드스슈 케시스목) ①테스트 드라이버 : 상향식 통합시험 (하위à상위로 개발) ②테스트 스텁 : 하향식 통합시험 (상위à하위) ③테스트 슈트 ④테스트 케이스 ⑤테스트 시나리오 ⑥테스트 스크립트 ⑦목 오브젝트 (9)테스트 케이스, 테스트 시나리오, 테스트 스크립트의 차이점 (10)테스트 케이스 자동 생성 도구를 통한 테스트 데이터 도출 방법 ①자료 흐름도: 입력값을 찾아내는 방법 ②기능 테스트: 입력값을 생성하는 방법 ③입력 도메인 분석 ④램덤 테스트 (11)통합 테스트Integration Test 1. 단위 테스트가 끝난 모듈 또는 컴포넌트 단위의 프로그램 설계 단계에서 제시한 애플리케이션과 동일한 구조와 기능으로 구현된 것인지를 확인하는 테스트 2. 각 모듈 간의 인터페이스 관련 오류 및 결함을 찾아내기 위한 테스트 (12)하향식 통합 테스트Top Down Test (상위모듈이 개발 완료되어 있는 상태) 하향식 – 스텁 ①메인 제어 모듈로부터 아래 방향으로 제어의 경로를 따라 이동하면서 하향식으로 통합하는 테스트 ②메인 제어 모듈에 통합되는 하위 모듈과 최하위 모듈은 ‘깊이 — 우선’ 또는 ‘너비 — 우선’ 방식으로 통합 1. 깊이—우선 방식 (수직) : 해당 모듈에 종속된 모든 모듈을 통합하고, 다음 모듈의 종속된 모듈까지 통합하는 방법 (M1 àM8순서) 2. 너비—우선 방식 (수평) : 구조의 수평을 중심으로 해당하는 모듈을 통합하는 방법 (M1 à M2 àM4àM8àM3àM5àM6àM7) (13)상향식 통합 테스트Botton Up Test (하위모듈이 개발 완료되어 있는 상태) 상향식 – 드라이버 ①애플리케이션 구조에서 최하위 레벨의 모듈 또는 컴포넌트로부터 점진적으로 상위 모듈과 함께 테스트하는 기법 ②테스트는 모듈 하나하나 테스트 하지 않고, 클러스터Cluster로 묶어서 테스트 한다. ③드리이버가 있어야 한다. (14)샌드위치 통합 테스트 – 상 : 하스 / 하 : 상드 방식으로 큰 규모의 통합 테스트에서 사용 (15)빅뱅 테스트 : 한번에 테스트한다. 테스트 비용과 시간이 적게 든다. 하지만 치명적인 Error은 나중에 발견 된다. 하향식 -- 스텁(Stub) : 하스 1. 모듈 및 모든 하위 컴포넌트를 대신하는 더미 모듈 2. 스텁은 하위 모듈의 반환 값만 전달하면 됨 상향식 -- 드라이버(Driver) : 상드 1. 상위의 모듈에서 데이터의 입력과 출력을 확인하기 위한 더미 모듈 2. 드라이버는 상위 모듈 흐름을 작성해야 하기 때문에 스텁이 개발하기 쉬움 |
반응형
3. 애플리케이션 성능 개선 | (1)알고리즘 Algotithm : 어떠한 문제를 해결하기 위한 정해진 일련의 절차나 방법을 공식화한 형태로 표현한 기법 (해결방법) (2)알고리즘 기법 (분동탐백) ①분할과 정복 Divide and ConQuer : 큰 덩어리를 잘게 잘라서 다시 결합하는 Top-Down방식 ②동적 계획법 Dynamic Programing: 작은것의 해답을 이용해서 큰 것의 해답을 알아내는 Bottom-Up 방식 ③탐욕법 Greedy : 결정을 해야 할 순간에 가장 좋다고 생각되는 것을 해답으로 선택 ④백트래킹(되돌아간다) Backtracking : 그 노드의 부모 노드로 되돌아간 후 다른 자손 노드를 검색하는 알고리즘 (3)시간 복잡도에 따른 알고리즘 분류 O(1) – O(logn) – O(n) – O(nlogn) – O(n2) ① O(1) : 상수형 복잡도 / 같은 속도로 작동 일정 / 해시 함수(Hashining Function) ② O(logn) : 로그형 복잡도 / 이진 탐색(Binary Searcg) ③ O(n) : 선형 복잡도 / 수행 시간이 자료 크기와 직접적 관계로 정비례 / 순차 탐색 ④ O(nlogN) : 선형 로그형 복잡도 / 퀵 정렬, 병합 정렬, 힙 정렬 ⑤ O(n2) : 제곱형 주요 처리 루프 구조가 2중인 경우 / 거품 정렬, 삽입 정렬, 선택 정렬 (4)해싱함수Hashing Function : 해싱함수는 임의의 길이의 데이터를 고정된 길이의 데이터로 매핑하는 함수 이다. (산곱숫 폴기무) ①제산법 : 나머지 연산자(%)를 사용하여 테이블 주소를 계산하는 방식 ②제곱법 : 레코드 키 값을 제곱한 후에 결과값의 중간 부분에 있는 비티를 선택하여 해시 테이블 홈 주소 사용 ③숫자 분석법 : 고른 분포를 나타내는 자릿수를 필요한 만큼 선택하여, 레코드의 홈 주소로 사용 ④폴딩법 : XOR 한 값을 홈 주소로 사용하는 방식 ⑤기수 변환법 : 키를 변환해 홈 주소를 얻는 방식 ⑥무작위 방법 : 난수를 발생시켜 각 레코드 키의 홈 주소를 결정하는 방식 (5)검색 알고리즘 ①순차 검색 (Sequential Search) : 배열의 처음부터 끝까지 차례대로 비교하여 원하는 데이터를 찾아내는 알고리즘 ②이진 검색 (Binary Search) : 정렬되어 있는 리스트에서 탐색 범위를 절반씩 좁혀가며 데이터를 탐색하는 알고리즘 예) 소주 뚜껑 숫자 게임. 정답 13 찾기 = 1부터 13까지 차례가 아닌 절반씩 좁혀 가면서 탐색 (6)정렬 알고리즘 ①퀵 정렬Quick Sort : 피벗(기준)을 정해서 큰 원소와 작은 원소들로 분할하여 배열 레코드의 많은 자료 이동을 없애고 하나의 파일을 부분적으로 나누어 가면서 정렬 ②합병 정렬Merge Sort : 전체 원소를 하나의 단위로 분할한 후 분할한 원소를 다시 병합해서 정렬 (퀵하고 비슷) ③힙 정렬 Heap Sort 1. 완전 이진트리로 입력 자료의 레코드를 구성(꽉 찬 이진 트리), 2. 최적, 평균, 최악O(nlog2n) 이다. ④거품 정렬Bubble Sort 1. 두 인접한 원소를 검사하여 정렬하는 방법 2. 요소의 개수 -1 번 수행하게 되면 모든 숫자가 정렬된다. ⑤삽입 정렬Insertion Sort : 자료 배열의 모슨 요소를 앞에서부터 차례대로 이미 정렬된 배열 부분과 비교하여, 자신의 위치를 찾아 삽입함으로써 정렬을 완성하는 알고리즘 ⑥선택 정렬 Selection Sort : 정렬되지 않은 데이터들에 대해 가장 작은 데이터를 찾아 정렬되지 않은 부분의 가장 앞의 데이터와 교환해나가는 알고리즘 (7)소스 코드 품질 분석 도구 (8)맥케이브 회전 복잡도 측정 방식 : 브에노이 (V=E-N+2) (9)클린 코드를 저해하는 베드 코드 : 다른 개발자가 로직(Logic)을 이해하기 어렵게 작성된 코드 ①외계인 코드Alien Code : 매우 오래되거나 참고문서 또는 개발자가 없어 유지보수 작업이 몹시 어려운 코드 ②스파게티 코드Spaghetti Code : 스파게티 코드는 컴퓨터 프로그램의 소스 코드가 복잡하게 얽힌 모습을 스파게티의 면발에 비유 작동은 정상적으로 하지만, 사람이 코드를 읽으면서 그 코드의 작동을 파악하기는 어려운 코드 (10)클린 코드 작성 원칙 (가단의 중추) ①가독성 ②단순성 ③의존성 최소 ④중복성 제거 ⑤추상화 |
반응형
'자격증' 카테고리의 다른 글
소프트웨어 설계(통합) (0) | 2025.02.11 |
---|---|
소프트웨어 개발(인터페이스 구현) (0) | 2025.02.11 |
소프트웨어 개발(제품 소프트웨어 패키징) (0) | 2025.02.11 |
소프트웨어 개발(통합 구현) (0) | 2025.02.11 |
소프트웨어 개발(데이터 입출력 구현) (0) | 2025.02.11 |