정보처리기사 실기 정리 10-1

seeseal·2022년 4월 19일
0

정보처리기사

목록 보기
19/29
post-thumbnail

📘 10-1단원 : 애플리케이션 테스트 관리 - 애플리케이션 테스트 케이스 설계

🎓 애플리케이션 테스트 케이스 설계

✏️ 애플리케이션 테스트 케이스 작성

🏷️ 소프트웨어 테스트의 이해

📘 소프트웨어 테스트 필요성

  1. 오류 발견 관점
  2. 오류 예방 관점
  3. 품질 향상 관점

📘 소프트웨어 테스트 원리

  1. 테스팅은 결함이 존재함을 밝히는 것
  2. 완벽한 테스팅 불가능
  3. 초기에 테스팅 시작
  4. 결함집중
  5. 살춘제 패러독스
  6. 정황에 의존
  7. 오류-부재의 궤변

🐥 결완초집 살정오
== 결과는 완전 초기에 나왔다. 집 살 수 있을지는 정오에 알게된다.

📘 소프트웨어 테스트 산출물

  1. 테스트 계획서 : 테스트 수행을 계획한 문서
  2. 테스트 베이시스 : 테스트 설계를 위한 기준이 되는 문서
  3. 테스트 케이스 : 테스트를 위한 설계 산출물, 사용자의 요구사항을 준수하는지 확인하기 위해 설계된 입력값 등 테스트 항목의 명세서
  4. 테스트 슈트 : 테스트를 위한 실행환경에 따라 구분해 놓은 테스트 케이스의 집합
  5. 테스트 시나리오 : 애플리케이션의 테스트가 되어야 할 기능, 특징, 테스트가 필요한 상황을 작성한 문서
  6. 테스트 스크립트 : 테스트 케이스의 실행 순서를 작성한 문서
  7. 테스트 결과서 : 테스트 결과를 정리한 문서로 테스트 프로세스를 리뷰하고, 테스트 결과를 평가하는 문서

📘 소프트웨어 테스트 유형

  1. 정적 테스트 : 리뷰, 정적 분석
  2. 동적 테스트 : 화이트박스 테스트, 블랙박스 테스트, 경험기반 테스트

🏷️ 테스트 기법에 따른 분류

📘 화이트박스 테스트 : 각 응용 프로그램의 내부 구조와 동작을 검사하는 소프트웨어 테스트

  1. 구문 커버리지 : 모든 명령문을 적어도 한 번 수행
  2. 결정 커버리지 : 결정 포인트 내의 전체 조건식이 적어도 한 번은 참과 거짓의 결과를 수행
  3. 조건 커버리지 : 결정 포인트 내의 각 개별 조건식이 적어도 한 번은 참과 거짓의 결과를 수행
  4. 조건/결정 커버리지 : 전체 조건식뿐만 아니라 개별 조건식도 참과 거짓의 결과를 수행
  5. 변경 조건/결정 커버리지 : 개별 조건식이 다른 개별 조건식에 영향을 받지않고 전체 조건식에 독립적으로 영향을 주도록 향상시킨 커버리지
  6. 다중 조건 커버리지 : 모든 개별 조건식의 모든 가능한 조합을 100% 보장하는 커버리지
  7. 기본 경로 커버리지 : 수행 가능한 모든 경로를 테스트하는 커버리지
  8. 제어 흐름 테스트 : 프로그램 제어 구조를 그래프 형태로 나타내어 내부 로직을 테스트
  9. 데이터 흐름 테스트 : 제어 흐름 그래프에 데이터 사용현황을 추가한 그래프 테스트

🐥 구결조 조변다 기제데

📘 블랙박스 테스트 : 프로그램 외부 사용자의 요구사항 명세를 보면서 수행하는 테스트

  1. 동등분할 테스트 : 입력 데이터의 영역을 유사한 도메인별로 그룹핑하여 대푯값 테스트 케이스 도출
  2. 경곗값 분석 테스트 : 등가 분할 후 경곗값 분석에서 오류 발생확률이 높기 때문에 경곗값을 포함하여 테스트 케이스 도출
  3. 결정 테이블 테스트 : 요구사항 논리와 발생조건을 테이블 형태로 나열하여, 조건과 행위를 모두 조합하는 기법
  4. 상태 전이 테스트 : 객체의상태를 구분하고, 이벤트에 의해 어느 상태에서 다른 상태로 전이되는 경우의 수를 수행하는 테스트 기법
  5. 유스케이스 테스트 : 유스케이스를 프로세스 흐름을 기반으로 테스트 케이스를 명세화하여 수행하는 테스트 기법
  6. 분류 트리 테스트 : SW의 일부 또는 전체를 트리 구조로 분석 및 표현하여 테스트 케이스를 설계하여 테스트하는 기법
  7. 페어와이즈 테스트 : 테스트 데이터 값들 간에 최소한 한 번씩을 조합하느 테스트 방식
  8. 원인-결과 그래프 테스트 : 그래프를 활용하여 입력 데이터 간의 관계 및 출력에 미치는 영향을 분석하여 효용성이 높은 테스트 케이스를 선정하여 테스트하는 기법
  9. 비교 테스트 : 여러 버전의 프로그램에 입력값을 넣어서 동일한 결과가 나오는지 비교해 보는 테스트 기법

🐥 동경결상 유분페원비

🏷️ 테스트 시각에 따른 분류

검증 : 소프트웨어 개발 과정을 테스트, 개발자 시각으로 소프트웨어가 명세화된 기능을 올바로 수행하는 지 알아보는 과정
확인 : 소프트웨어 결과를 테스트, 사용자 시각으로 올바른 소프트웨어가 개발되었는지 입증하는 과정

🏷️ 테스트 목적에 따른 분류

📘 테스트 목적에 따른 분류

  1. 회복 테스트 : 시스템에 고의로 실패하고 정상적 복귀 여부를 테스트하는 기법
  2. 안전 테스트 : 불법적인 소프트웨어가 접근하영 시스템을 파괴하지 못하도록 소스 코드 내의 보안적인 결함을 미리 점검하는 테스트 기법
  3. 성능 테스트 : 사용자의 이벤트에 시스템이 응답하는 시간, 특정 시간 내에 처리하는 업무량 등을 측정하는 테스트 기법
  4. 구조 테스트 : 시스템의 내부 논리 경로, 소스 코드의 복잡성을 평가하는 테스트 기법
  5. 회귀 테스트 : 오류를 제거하거나 수정한 시스템에서 새로이 유입된 오류가 없는지 확인하는 일종의 반복 테스트 기법
  6. 병행 테스트 : 변경된 시스템과 기존 시스템에 동일한 데이터를 입력 후 결과를 비교하는 테스트 기법

🐥 회안성 구회병
== 중국의 회안성에 사는 구회병씨

📘 성능 테스트의 상세 유형

  1. 부하 테스트 : 시스템에 부하를 계속 증가시키면서 시스템의 임계점을 찾는 테스트
  2. 스트레스 테스트 : 시스템 처리 능력 이상의 부하, 즉 임계점 이상의 부하를 가하여 비정상적인 상황에서의 처리를 테스트
  3. 스파이크 테스트 : 짧은 시간에 사용자가 몰릴 때 시스템의 반응 측정 테스트
  4. 내구성 테스트 : 오랜 시간 동안 시스템에 높은 부하를 가하여 시스템 반응 테스트

🐥 부스스내
== 부스스하고 일어나 내복을 입음

📘 테스트 종류에 따른 분류

  1. 명세 기반 테스트(블랙박스 테스트) : 프로그램의 요구사항 명세서를 기반으로 테스트 케이스를 선정하여 테스트하는 기법
  2. 구조 기반 테스트(화이트박스 테스트) : 소프트웨어 내부 논리 흐름에 따라 테스트 케이스를 작성하고 확인하는 테스트 기법
  3. 경험 기반 테스트(블랙박스 테스트) : 유사 소프트웨어나 유사 기술 평가에서 테스터의 경험을 토대로, 직관과 기술 능력을 기반으로 수행하는 테스트 기법

🐥 명구경
== 명나라 구경

🏷️ 정적 테스트

📘 리뷰

리뷰는 소프트웨어의 다양한 산출물에 존재하는 결함을 검출하거나 프로젝트의 진행 상황을 점검하기 위한 활동으로 전문가가 수행한다.

📘 리뷰의 유형

  1. 관리 리뷰 : 프로젝트 진행 상황에 대한 전반적인 검토를 바탕으로 통제 및 의사 결정을 지원
  2. 기술 리뷰 : 정의된 계획 및 명세를 준수하고 있는지 검토를 수행
  3. 인스펙션(동료 검토) : 소프트웨어 요구, 설계, 원시 코드 등의 저작자 외의 다른 전문가가 검사하여 문제를 식별하는 형식적인 검토 기법
  4. 워크 스루 : 검토 자료를 회의 전에 배포하여 사전 검토한 후 짧은 시간 동안 회의를 진행하는 형태로 가장 비형식적인 검토 기법
  5. 감사 : 소프트웨어 제품 및 프로세스가 규제, 표준, 가이드라인, 계획, 절차를 준수하고 있는지 독립적으로 평가하는 기법

🏷️ 동적 테스트

📘 기본 경로 커버리지

맥케이브의 순환 복잡도를 기반으로 커버리지를 계산

📘 순환 복잡도 측정 방법

V(G) = E - N + 2
(V(G) : 복잡도, E : 간선, N : 노드)

🏷️ 테스트 오라클

  1. 참 오라클 : 모든 입력값에 대하여 기대하는 결과를 생성하여 발생된 오류를 모두 검출
  2. 샘플링 오라클 : 특정한 몇 개의 입력값에 대해서만 기대하는 결과를 제공
  3. 휴리스틱 오라클 : 샘플링 오라클을 개선한오라클로, 특정 입력값에 대해 올바른 결과를 제공하고, 나머지 값에 대해서는 휴리스틱(추정)으로 처리하는오라클
  4. 일관성 오라클 : 애플리케이션 변경이 있을 때, 수행 전과 후의 결괏값이 동일한 지 확인

🐥 참샘휴일
== 참새가 휴일에 쉰다.

✏️ 애플리케이션 테스트 시나리오 작성

🏷️ 테스트 레벨 종류

  1. 단위 테스트 : 사용자 요구사항에 대한 단위 모듈, 서브루틴 등을 테스트하는 단계
  2. 통합 테스트 : 단위 테스트를 통과한 모듈 사이의 인터페이스, 통합된 컴포넌트 간의 상호작용을 검증하는 테스트 단계
  3. 시스템 테스트 : 통합된 단위 시스템의 기능이 시스템에서 정상적으로 수행되는지를 검증하는 테스트 단계
  4. 인수 테스트 : 계약상의 요구사항이 만족되었는지 확인하기 위한 테스트 단계

🐥 단통시인

🏷️ 인수 테스트 종류

  1. 사용자 인수 테스트 : 비즈니스 사용자가 시스템 사용의 적절성 여부 등을 확인하는 테스트
  2. 운영상의 인수 테스트 : 시스템 관리자가 시스템 인수 시 수행하는 테스트 활동으로 백업/복원 시스템, 재해 복구, 사용자 관리, 정기 점검 등을 확인하는 테스트
  3. 계약 인수 테스트 : 계약상의 조건을 준수하는 지 여부를 확인하는 테스트
  4. 규정 인수 테스트 : 정부 지침, 법규 등이 규정에 맞는지 확인하는 테스트
  5. 알파 테스트 : 선택된 사용자가 개발자 환경에서 통제된 상태로 개발자와 함께 수행하는 테스트
  6. 베타 테스트 : 실제 환경에서 일정 수의 사용자에게 대상 소프트웨어를 사용하게 하고 피드백을 받는 테스트

1개의 댓글

comment-user-thumbnail
2023년 10월 5일

정처기 공부 중, 글 잘 보았습니다 :)

답글 달기