애플리케이션 테스트
기본 원리
- 파레토 법칙 Pareto Principle
20%에서 결함 80%발견 - 살충제 패러독스 Pesticide Paradox
동일한 테스트로는 더 이상 결함이 발견 안됨 - 오류-부재의 궤변 Absence of Errors Fallacy
결함이 없어도 사용자 만족 안되면 품질이 높지 않음
실행여부에 따른 테스트
- 정적 테스트
워크스루, 인스펙션, 코드 검사 - 동적 테스트
블랙박스 테스트, 화이트박스 테스트
시각에 따른 테스트
- 검증 Verification 테스트
명세서 - 확인 Validation 테스트
동작
목적에 따른 테스트
- 회복 Recovery 테스트
- 안전 Security 테스트
- 강도 Stress 테스트
- 성능 Performance 테스트
- 구조 Structure 테스트
- 회귀 Regression 테스트
바뀐것들 문제 없는지 - 병행 Parallel 테스트
같은 값 넣어서
화이트박스 테스트
- 기초 경로 검사 Base Path Testing
- 제어 구조 검사 Control Structure Testing
- 조건 검사 Condition Testing
- 루프 검사 Loop Testing
- 데이터 흐름 검사 Data Flow Testing
화이트박스 테스트의 검증 기준
- 문장 검증 기준 Statement Coverage
모든 구문 한번 이상 - 결정 검증 기준 Decision Coverage
조건식의 결과가 True, False 모두 - 조건 검증 기준 Condition Coverage
조건식안의 개별 조건 True, False - 조건/결정 검증 기준 Condition/Decision Coverage
결정검증기준과 조건검증기준 만족, 입력 데이터 구분 - 변경 조건/결정 기준 Modified Condition/Decision Coverage
개별 조건식 영향 안받고, 결과에 독립적으로 영향 - 다중 조건 검증 기준 Multiple Condition Coverage
모든 조합 고려
블랙박스 테스트
- 동치 분할 검사 Equicalence Partitioning Testing
맞는 자료, 틀린 자료 균등하게 - 경계값 분석 Boundary Value Analysis
- 원인-효과 그래프 검사 Cause-Effect Graphing Testing
미치는 영향 분성 - 오류 예측 검사 Error Guessing
- 비교 검사 Comparison Testing
여러 버전에 동일한 테스트로
개발 단계에 따른 애플리케이션 테스트
- 요구사항 Requirements
- 분석 Specification
- 설계 Design
- 구현 Code
- 단위 테스트 Unit Testing
모듈이나 컴포넌트 - 통합 테스트 Integration Testing
- 비점진적 통합 방식
전부 통합, 빅뱅 통합 방식 - 점진적 통합 방식
- 하향식 통합 테스트 Top Down Integration Test
스텁 stub - 상향식 통합 테스트 Bootom Up Integration Test
하위 모듈을 클러스터 Cluster로 결합
하위 모듈을 테스트 드라이버 Test Driver로 호출
- 하향식 통합 테스트 Top Down Integration Test
- 비점진적 통합 방식
- 시스템 테스트 System Testing
완벽한지 - 인수 테스트 Acceptance Testing
- 알파 테스트
- 베타 테스트
테스트 오라클 Test Oracle
- 참 True 오라클
- 샘플링 Sampling 오라클
- 추정 Heuristic 오라클
- 일관성 검사 Consistent 오라클
테스트 자동화 도구
- 정적 분석 도구 Static Analysis Tools
- 테스트 케이스 생성 도구 Test Case Generation Tools
- 자료 흐름도
- 기능 테스트
- 입력 도메인 분석
- 랜덤 테스트
- 테스트 실행 도구 Test Execution Tools
- 성능 테스트 도구 Performance Test Tools
테스트 하네스의 구성 요소
- 테스트 드라이버 Test Driver
- 테스트 스텁 Test Stub
- 테스트 슈트 Test Suites
- 테스트 케이스 Test Case
- 테스트 스크립트 Test Script
- 목 오브젝트 Mock Object
결함 Fault
애플리케이션 성능 측정 지표
- 처리량 Throughput
- 응답 시간 Response Time
- 경과 시간 Turn Around Time
- 자원 사용률 Fesource Usage
빅오 표기법으로 표현한 최악의 시간 복잡도
| O(1) | 스택 pop, push |
| O(log₂n) | 이진 트리, 이진 검색 |
| O(n) | for |
| O(nlog₂n) | 힙 정렬, 합병 정렬 |
| O(n²) | 삽입 정렬, 쉘 정렬, 선택 정렬, 버블 정렬, 퀵 정렬 |
| O(2ⁿ) | 피보나치 수열 |
순환 복잡도 Cyclomatic Complexity
맥케이브 순환도 McCabe's Cyclomatic
V(G) = E - N + 2 = 화살표 수 - 노드 수 + 2
코드 최적화
- 가독성
- 단순성
- 의존성 배제
- 중복성 최소화
- 추상화
소스 코드 품질 분석 도구
- 정적 분석 Static Analysis 도구
pmd, cppcheck, SonarQube, checkstyle, ccm, cobertura - 동적 분석 Dynamic Analysis 도구
Avalanche, Valgrind
'Certificate > 정보처리기사' 카테고리의 다른 글
| [정보처리기사][요약] 9.소프트웨어 개발 보안 구축 (0) | 2026.07.09 |
|---|---|
| [정보처리기사][요약] 8.SQL 응용 (0) | 2026.07.09 |
| [정보처리기사][요약] 6.화면 설계 (0) | 2026.07.08 |
| [정보처리기사][요약] 5.인터페이스 구현 (0) | 2026.07.08 |
| [정보처리기사][요약] 4.서버 프로그램 구현 (0) | 2026.07.08 |