ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 테스트(암기)
    정보처리산업기사(실기) 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 : 테스트 지원용 코드와 데이터

    ※슈트 : 테스트 케이스를 단순히 묶어둔 집합

     

    자동화 단계

    1. 계획 : 요구사항 관리
    2. 분석·설계 : 테스트 케이스 생성
    3. 수행 : 자동화 구현 / 정적 분석 / 동적 분석 / 모니터링(자원흐름) / 성능 테스트
    4. 관리 : 형상관리 / 결함 추적,관리 / 커버리지 분석(테스트 충분 여부)

     

     

    '정보처리산업기사(실기)' 카테고리의 다른 글

    품질 관리(암기)  (0) 2022.07.10
    품질 관리  (0) 2022.07.10
    테스트  (0) 2022.07.10
    UI / UX(암기)  (0) 2022.07.09
    UI / UX  (0) 2022.07.09

    댓글

개발에 관심을 가지는 블로그