정보처리기사
정보처리기사요약
애플리케이션테스트
화이트박스테스트
블랙박스테스트
단위테스트
통합테스트
클린코드
리팩토링
애플리케이션 테스트 케이스 설계
애플리케이션 테스트 케이스 작성
-
소프트웨어 테스트의 이해
-
개념: 사용자가 요구하는 기능과 성능을 만족하는지 확인하고 결함을 찾는 활동이다.
-
필요성: 오류 발견, 오류 예방, 품질 향상
#발예향
-
-
소프트웨어 테스트의 기본 원칙
-
원리: 결함 존재 증명, 완벽 테스팅은 불가능, 초기 집중, 결함 집중, 살충제 패러독스, 정황 의존적, 오류-부재의 궤변
#결완초집 살정오
-
소프트웨어 테스트 프로세스: 테스트 계획 → 테스트 분석 및 디자인 → 테스트 케이스 및 시나리오 작성 → 테스트 수행 → 테스트 결과 평가 및 리포팅
-
테스트 산출물: 테스트 계획서, 테스트 베이시스, 테스트 케이스, 테스트 슈트, 테스트 시나리오, 테스트 스크립트, 테스트 결과서
-
-
소프트웨어 테스트 유형
-
프로그램 실행 여부에 따른 분류
-
정적 테스트
👉 종류: 인스펙션, 워크 스루
- 동적 테스트
👉 화이트박스 테스트: 구문 커버리지(모든 명령문), 결정 커버리지, 조건 커버리지, 조건/결정 커버리지, 변경 조건/결정 커버리지, 다중 조건 커버리지, 기본 경로 커버리지, 제어 흐름 테스트, 데이터 흐름 테스트
#구결조 조변다 기제데
👉 블랙박스 테스트: 동등분할 테스트, 경곗값 분석 테스트, 결정 테이블 테스트, 상태 전이 테스트, 유스케이스 테스트, 분류 트리 테스트, 페어와이즈 테스트, 원인-결과 그래프 테스트, 비교 테스트
#동경결상 유분페원비
👉 경험기반 테스트: 탐색적 테스트, 오류 추정
- 테스트 커버리지: 프로그램의 테스트 수행 정도를 나타내는 값으로 테스트 수행의 완벽성을 측정하는 도구이다.
👉 유형: 기능 기반 커버리지, 라인 커버리지, 코드 커버리지
-
정적 테스트
-
테스트 시각에 따른 분류: 검증, 확인
-
테스트 목적에 따른 분류: 회복 테스트, 안전 테스트, 성능 테스트, 구조 테스트, 회귀 테스트, 병행 테스트
#회안성 구회병
- 성능 테스트 상세 유형: 부하 테스트(임계점 찾기), 강도 테스트(임계점 이상의 부하), 스파이크 테스트(사용자 트래픽 증가), 내구성 테스트(긴 시간 부가를 가함)
-
테스트 종류에 따른 분류: 명세 기반 테스트, 구조 기반 테스트, 경험 기반 테스트 #명구경
-
-
테스트 케이스
-
개념: 특정 요구사항에 준수하는 지를 확인하기 위해 개발된 입력값, 실행 조건 예상된 결과의 집합이다.
-
주요 항목: 테스트 ID, 테스트 일자, 테스트 목적, 테스트 기능, 입력 데이터, 케이스 설명, 예상 출력, 중요도, 테스트 환경, 전제 조건, 성공/실패 기준, 기대 결과
-
-
테스트 오라클
-
개념: 테스트의 결과가 참인지 거짓인지 판단하기 위해서 사전에 정의된 참값을 입력하여 비교하는 기법이다.
-
종류: 참 오라클, 샘플링 오라클, 휴리스틱 오라클, 일관성 검사
-
애플리케이션 테스트 시나리오 작성
-
테스트 레벨
-
개념: 테스트 활동의 그룹이다. 테스트 레벨은 독립적이다.
-
종류: 단위 테스트, 통합 테스트, 시스템 테스트, 인수 테스트(사용자 인수 테스트, 운영상의 인수 테스트, 계약 인수 테스트, 규정 인수 테스트, 알파 테스트, 베타 테스트)
#단통시인
-
-
테스트 시나리오
- 개념: 테스트 케이스의 동작 순서를 기술한 문서이며 테스트를 위한 절차를 명세한 문서이다.
애플리케이션 테스트 수행
-
단위 테스트
-
개념: 개별적인 모듈을 테스트한다.
-
목 객체 생성 프레임워크
-
개념: 테스트 대상의 간접적인 출력 결과를 검증하고, 테스트 대상 오브젝트와 의존 오브젝트 사이에서 일어나는 일을 검증할 수 있도록 설계된 오브젝트이다.
-
유형: 더미 객체, 테스트 스텁, 테스트 드라이버, 테스트 스파이, 가짜 객체
#더스드 스가
-
-
-
통합 테스트
-
개념: 소프트웨어 각 모듈 간의 인터페이스 관련 오류 및 결함을 찾아내기 위한 체계적인 테스트 기법이다.
-
방법의 분류 #하스상드(하향식-스텁, 상향식-드라이버)
-
하향식 통합: 메인 모률로부터 아래 방향으로 진행, 깊이-우선, 너비-우선 방식으로 통합된다.
-
상향식 통합: 최하위 레벨의 모듈 또는 컴포넌트로부터 위쪽 방향으로 제어의 경로를 따라 이동하며 수행한다.
-
샌드위치 통합
-
-
-
테스트 자동화 도구
-
개념: 반복적인 테스트 작업을 스크립트 형태로 구현, 시간 단축과 인력 투입 비용 최소화할 수 있는 방법이다.
-
유형: 정적 분석 도구, 테스트 실행 도구, 성능 테스트 도구, 테스트 통제 도구
#정실성통
-
테스트 하네스
-
개념: 테스트를 지원하기 위한 코드와 데이터이다. 코드 개발자가 직접 작성한다.
-
구성요소: 테스트 드라이버, 테스트 스텁, 테스트 슈트, 테스트 케이스, 테스트 시나리오, 테스트 스크립트, 목 오브젝트
#드 스슈 케시스목
-
-
애플리케이션 테스트 결과 분석
-
테스트 결과 분석
- 소프트웨어 결함: 오류(사람에 의해 생성), 결점, 버그, 고장/문제(결점이 포함된 제품이 실행되면 발생)
-
결함 분석
- 방법: 구체화, 고립화, 일반화
애플리케이션 개선 조치사항 작성
-
테스트 커버리지
-
개념: 주어진 테스트 케이스에 의해 수행되는 소프트웨어의 테스트 범위를 측정하는 테스트 품질 측정 기준이다.
-
유형: 기능 기반 커버리지, 라인 커버리지, 코드 커버리지
#기라코
-
-
결함 식별 및 관리
-
결함 심각도별 분류: 치명적 결함, 주요 결함, 보통 결함, 경미한 결함, 단순한 결함
#치주보 경단
-
결함 심각도별 분류: 치명적 결함, 주요 결함, 보통 결함, 경미한 결함, 단순한 결함
애플리케이션 성능 개선
애플리케이션 성능 분석
-
애플리케이션 성능 점검 개요
-
측정 지표: 처리량, 응답 시간, 경과 시간, 자원 사용률
#처응경자
-
유형별 성능 분석 도구
-
성능 분석 도구: JMeter, LoadUI, OpenSTA
-
시스템 모니터링 도구: Scouter, Zabbix
-
-
애플리케이션 성능 저하 원인
-
데이터베이스 관련 성능 저하 원인: DB 락, 불필요한 DB 패치, 연결 누수(Leak), 부적절한 커넥션 풀 크기(Size), 커밋 관련
#락패릭사커
-
데이터베이스 관련 성능 저하 원인: DB 락, 불필요한 DB 패치, 연결 누수(Leak), 부적절한 커넥션 풀 크기(Size), 커밋 관련
-
애플리케이션 성능 테스트 프로세스
-
수행 절차: 성능 테스트 도구 설치 → 테스트 환경 설정 → 시나리오 생성 → 성능 테스트 실행 및 모니터링
#도환시성
-
수행 절차: 성능 테스트 도구 설치 → 테스트 환경 설정 → 시나리오 생성 → 성능 테스트 실행 및 모니터링
애플리케이션 성능 개선
-
소스 코드 최적화의 이해
-
배드 코드
-
사례: 외계인 코드, 스파게티 코드, 알 수 없는 변수명, 로직 중복
-
유형: 오염, 문서부족, 의미 없는 이름, 높은 결합도, 아키텍처 침식
-
-
클린코드
-
원칙: 가독성, 단순성, 의존성 최소, 중복성 제거, 추상화
#가단의 중추
-
유형: 의미 있는 이름, 간결하고 명확한 주석, 보기 좋은 배치, 작은 함수, 읽기 쉬운 제어 흐름, 오류 처리, 클래스 분할 배치, 느슨한 결합 기법 적용, 코딩 형식 기법 적용
-
-
-
소스 코드 품질 분석 도구
- 유형: 정적 분석 도구(pmd, cppcheck, SonarQube, checkstyle, ccm, cobertura), 동적 분석 도구(Avalanche, Valgrind)
-
리팩토링
- 목적: 유지보수성 향상, 유연한 시스템, 생산성 향상, 품질향상