-
테스트(암기)정보처리산업기사(실기) 2022. 7. 10. 15:47
모바일은 여기를 확인하세요.
테스트
- 잠재적인 결함을 찾아내는 행위와 절차
- 요구사항 확인(Vaildation)
- 수행 검증(Verification)
테스트 원칙
- 파레토 법칙 : 20%에 해당하는 코드에서 결함의 80%가 발견됨
- 살충제 페러독스(pesticide Paradox) : 이전에 시행한 테스트 케이스 진행으로 동일한 결함은 없음
- 오류-부재의 궤변 : 결함을 모두 발견해도 요구사항을 만족해야만 높은 품질이라 할 수 있음
- 완벽한 테스트는 불가능
- 테스트는 정황에 의존
- 테스트와 위험은 반비례
- 테스트는 점진적 확대
- 테스트의 별도 팀 수행 : 개발자와 별도의 팀에서 수행
테스트 케이스
- 요구사항을 정확히 준수했는지 확인하기위한 테스트 항목 명세서
- 식별자 / 테스트 항목 / 입출력 / 환경 / 특수요구사항 / 의존성 으로 구성
테스트 시나리오 : 순서에 따라서 테스트 케이스들을 묶은 집합
테스트 오라클
- 테스트 케이스의 예상 결과를 판단하기 위해서 사전에 정의된 결과를 제공
- 제한된 검증 / 수학적 기법 사용 / 자동화 가능
- True Oracle : 기대하는 결과를 제공
- 샘플링 오라클 : 전수(체) 테스트가 불가능할때 몇가지의 결과만 제공
- 추정 오라클 : 특정 입력 결과만 제공하고 나머지는 추정처리
- 일관성 검사 오라클 : 어플리케이션 수정 전후의 결과가 동일한지 확인
V모델
- 1.개발 단계 ↘: 요구사항 - 분석 - 설계 - 구현
- 2.테스트 레벨 ↗: 단위 - 통합 - 시스템 - 인수
- 단위 테스트 : 모듈 / 컴포넌트에 초점을 두고 명세와 구조 기반 테스트
- 통합 테스트 : 모듈들의 결합 과정에서 발생하는 상호 오류 테스트
- 시스템 테스트 : 개발된 소프트웨어의 작동을 테스트
- 인수 테스트 : 인수인계시 요구사항에 충족하는지 테스트 (알파 / 베타)
*인수 사항의 분류 : 사용자 인수 / 운영상의 인수 / 계약 인수 / 규정 인수
통합테스트
점진적 통합 방식
*하향식 통합 테스트
- 상위에서 하위 모듈로 절차적으로 통합하며 테스트
- 주요 제어모둘(중심의 모듈)의 종속 모듈들은 스텁(stub , 대체용 테스트 모듈)로 대체
- 하나씩 실제 모듈로 대체하며 회귀 테스트
*상향식 통합 테스트
- 하위 모듈에서 상위 모듈으로 통합하며 테스트
- 클러스터에 하위 모듈들을 부착한뒤 입출력을 확인하는 드라이버(테스트 모듈)를 작성
- 클러스터 단위로 테스트 하며 드라이버를 실제 모듈로 대체해 나간다.
*혼합식 통합 테스트
- 상향식과 하향식을 동시에 병행
- 샌드위치식 통합 테스트
비점진적 통합 방식 : 절차 없이 미리 결합된 프로그램 전체를 테스트
회귀 테스트
- 통합 테스트로 변경된 모듈 / 컴포넌트의 오류를 확인하는 과정
- 다른 모듈과의 영향을 확인하기 위해 이미 테스트된 프로그램을 다시 검증
테스트 분류
- 실행기반 분류 : 정적 테스트(비실행 코드분석) / 동적 테스트(화이트/블랙박스 테스트)
- 시점기반 분류 : 명세기반(요구사항) / 구조기반(흐름) / 경험기반 / 검증(개발자시점) / 확인(사용자시점)
- 목적기반 분류 : 회복 / 안전(보안) / 강도(임계점) / 성능(시간) / 구조(복잡도) / 회귀(수정후) / 병행(수정후)
화이트박스 테스트
- 논리적인 경로들을 테스트하여 테스트 케이스를 설계
- 기초 경로 검사 : 절차적인 설계의 복잡성을 측정
- 제어 구조 검사 : 조건과 루프 / 데이터의 흐름을 검사
- 문장 검증 기준 : 코드의 모든 구문을 한번씩 실행하게 테스트 코드 설계
- 분기 검증 기준 : 모든 코드의 결과로 true 나 false 를 받아서 실행되게 설계
- 조건 검증 기준 : 조건식의 true 나 false 에 따라서 실행되게 설계
- 분기 조건 검증 기준 : 조건식의 true 나 false 에 따라 다른 입력값을 줘서 분기 검증
블랙박스 테스트
- 인터페이스를 통해서 각각의 기능이 온전히 작동되는지 테스트
- 동치분할 검사 : 타당한 입력자료와 안맞는 입력자료를 균등하게 테스트케이스 설계
- 경계 값 분석 : 본래 경계값을 벗어난 입력 값들을 같이 테스트
- 오류 예측 검사 : 경험과 감각 기반으로 테스트
- 비교 검사 : 이전 버전과의 차이점을 테스트
- 원인-효과 그래프 검사 : 입력값 간의 관계와 출력 영향을 분석
테스트 자동화
기능별 도구 분류
- 정적 분석 도구 : 실행하지 않고 표준과 복잡도를 분석하는 도구
- 테스트 실행 도구 : 스크립트 언어로 테스트 실행 (데이터 주도 접근방식/키워드 주도 접근방식)
- 성능 테스트 도구 : 처리량 / 시간 / 자원 이용률 테스트 수행으로 성능 목표를 확인
- 테스트 통제 도구 : 형상 관리 , 결함에 대한 계획과 수행을 관리함
- 테스트 하네스(harness) 도구 : 실행되는 환경을 시뮬레이션 하여 정상 작동하는지 확인
- 보조 도구 : 테스트 드라이버 / 스텁 / 목 오브젝트 / 슈트 / 케이스 / 스크립트
※Test Harness : 테스트 지원용 코드와 데이터
※슈트 : 테스트 케이스를 단순히 묶어둔 집합
자동화 단계
- 계획 : 요구사항 관리
- 분석·설계 : 테스트 케이스 생성
- 수행 : 자동화 구현 / 정적 분석 / 동적 분석 / 모니터링(자원흐름) / 성능 테스트
- 관리 : 형상관리 / 결함 추적,관리 / 커버리지 분석(테스트 충분 여부)
'정보처리산업기사(실기)' 카테고리의 다른 글
품질 관리(암기) (0) 2022.07.10 품질 관리 (0) 2022.07.10 테스트 (0) 2022.07.10 UI / UX(암기) (0) 2022.07.09 UI / UX (0) 2022.07.09