정보처리기사 2과목 소프트웨어 개발
4장. 애플리케이션 테스트 관리
049 애플리케이션 테스트 Ⓑ
애플리케이션 테스트의 기본 원리
- 파레토 법칙 : 오류의 80%는 20% 모듈에서 발견되므로 20%의 모듈을 집중적으로 테스트해야 한다.
- 살충제 패러독스(Pesticide Paradox) : 동일한 테스트 케이스로 동일한 테스트를 반복하면 더 이상 결함이 발견되지 않음
050 애플리케이션 테스트의 분류 Ⓑ
프로그램 실행 여부에 따른 테스트
- 정적 테스트 : 프로그램을 실행하지 않음 (ex. 워크스루, 인스펙션, 코드 검사)
- 동적 테스트 : 프로그램을 실행하여 오류를 찾음 (ex. 블랙박스 테스트, 화이트박스 테스트)
테스트 기반에 따른 테스트
- 명세 기반 테스트 : 요구사항을 테스트 케이스로 만들어 테스트 (ex. 동등 분할, 경계 값 분석)
- 구조 기반 테스트 : 소프트웨어 내부 논리 흐름에 따라 테스트 (ex. 구문 기반, 결정 기반, 조건 기반)
- 경험 기반 테스트 : 테스터의 경험을 기반으로 테슽 (ex. 에러 추정, 체크 리스트, 탐색적 테스팅)
시각에 따른 테스트
- 검증 테스트(Verification) : 개발자의 시각에서 테스트
- 확인 테스트(Validation) : 사용자의 시각에서 테스트
051 테스트 기법에 따른 애플리케이션 테스트 Ⓐ
화이트박스 테스트
- 원시 코드의 논리적인 모든 경로 테스트
- 모듈 안의 작동 직접 관찰
- 선택, 반복 등의 분기점을 수행
- ex) 기초 경로 검사, 조건 검사, 루프 검사, 데이터 흐름 검사
블랙박스 테스트
- 구현된 기능을 테스트
- 요구사항 명세를 보면서 테스트
- ex) 동치 분할 검사, 경계값 분석, 원인-효과 그래프 검사, 오류 예측 검사, 비교 검사
052 개발 단계에 따른 애플리케이션 테스트 Ⓐ
애플리케이션 테스트
-
단위 테스트(Unit Test)
- 코딩 직후 모듈이나 컴포넌트에 초점을 맞춰 테스트
- ex) 구조 기반 테스트, 명세 기반 테스트
- 통합 테스트(Integration Test)
- 시스템 테스트(System Test)
-
인수 테스트(Acceptance Test)
- 소프트웨어가 사용자의 요구사항을 충족하는지 테스트
- 알파 테스트 : 사용자가 개발자 앞에서 테스트, 통제된 환경에서 시행
- 베타 테스트 : 사용자는 제어되지 않은 상태에서 테스트
053 통합 테스트 Ⓐ
하향식 통합 테스트
- 상위 모듈에서 하위 모듈 방향으로 통합하면서 테스트
- 사용자에게 시스템 구조를 보여줄 수 있음
- 스텁(Stub) : 제어 모듈이 호출하는 타 모듈의 기능을 단순히 수행, 일시적인 시험용 모듈
- ex) 깊이 우선 통합법, 넓이 우선 통합법
상향식 통합 테스트
- 하위 모듈에서 상휘 모듈 방향으로 통합하면서 테스트
- 주요 제어 모듈과 관련된 종속 모듈의 그룹인 클러스터(Cluster) 필요
- 드라이버(Driver) : 테스트 대상의 모듈 호출, 파라미터 전달, 결과 도출
회귀 테스팅(Regression Testing)
- 이미 테스트된 프로그램의 테스팅 반복
- 통합 테스트로 인해 변경된 모듈이나 컴포넌트에 새로운 오류가 있는지 확인
057 결합 관리 Ⓑ
결함 관리 도구
- Mantis, Trac, Redmine, Bugzilla
058 애플리케이션 성능 분석 Ⓒ
성능 테스트 도구
- 애플리케이션에 부하나 스트레스를 가하며 성능을 점검
- JMeter, LoadUI, OpenSTA
시스템 모니터링 도구
- 애플리케이션이 실행되었을 때 시스템 자원의 사용량 확인 및 분석
- Scouter, Zabbix
059 애플리케이션 성능 개선 Ⓒ
소스 코드 품질 분석 도구
-
정적 분석 도구
- 코드를 실행하지 않고 코드를 확인
- ex) pmd, cppcheck, SonarQube, checkStyle, ccm, cobertura
-
동적 분석 도구
- 소스 코드를 실행하여 코드의 메모리 누수, 스레드 결함을 분석
- ex) Avalanche, Valgrind
REFERENCE
2020 시나공 정보처리기사 필기 : NCS 기반 전면 개편[개정판]