ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 내가 공부하기 위한 공간 - [소프트웨어공학] 11 - 테스트
    소프트웨어공학 2025. 6. 7. 11:52
    반응형

    [테스트]

    정의 : 시스템 동작이 예상대로 확인하는 것

    • 잘 되는지 확인보다 오류를 찾아내는 것
    • 블랙박스, 화이트박스

     

    <버그>

    오류 : 개발자의 실수

    고장 : 시스템이 정상 작동을 못함

    결함 : 오류의 결과

    • 고장 없어도 결함은 있을 수 있음 > 유저에게 영향없는 결함이 있을 수 있음
    • 고장이 있다고 반드시 결함으로 발견되지 않을 수 있음

     

    <원리>

    1. 오류 발견이 목적
    2. 완벽한 테스트 불가(모든 상황, 값들에 대해 테스트는 불가하기 때문)
    3. 개발에 독립적인 사람일수록 객관적으로 볼 수 있음

     

    <과정>

    1. 테스트 대상 결정
    2. 방법 결정
    3. 테스트케이스(테스트 자료, 실행조건) 개발
    4. 예상 결과 작성
    • 테스트오라클(판단 기준)로 판단
    1. 테스트케이스 기반으로 실행
    • 테스트하니스(일부만 테스트하기 위한 변경)는 전체 테스트 후 제거

     

    <단계>

    단위 : 각 모듈 테스트

    통합 : 모듈을 모아서 테스트

    시스템 : 완성품 테스트

    인수 : 유저대상 테스트(문서점검도 동시에)

    리그레션 : 유지보수에서의 테스트

     

     

    [블랙박스]

    정의 : 내부를 보지않고 테스트

    • 장점 : 기술정보 필요없음, 테스터와 개발자가 독립적으로 작업, 크고 복잡할수록 효율적, 초기단계에서 식별 가능
    • 단점 : 가능한 조건을 못볼 수 있음, 크고 복잡할수록 완전한 테스트 불가

     

    <동등분할기법>

    정의 : 동작이 같을것으로 예상되는 것들로 묶어서 테스트

    <경계값분석>

    정의 : 입력값의 경계(동작이 변경되는 값)에 중점을 두는 테스트

    <조합>

    정의 : 입력값들을 조합하여 최소한으로 테스트

    • 페퍼와이즈 : 입력값 쌍으로 테스트
    • n원 : n개 간 모든 조합 테스트
    • 직교배열 : 통계적 방법을 사용하여 테스트

    <원인결과>

    정의 : 입력값들을 조합하여 체계적으로 테스트

    • 원인과 결과를 파악
    • 결정테이블로 테스트케이스 생성

     

     

    [화이트박스]

    정의 : 내부를 보면서 테스트

    • 코드로 구조이해(논리흐름) > 검증 기준 결정 > 각 기준마다 수행, 결과비교

     

    <논리흐름>

    정의 : 논리에 영향을 주는 요소들(선형, 조건, 반복)의 흐름

     

    <검증기준>

    정의 : 테스트 실행이 어떤 기준들을 커버하는지 결정

    • 문장 커버리지 : 코드라인들이 한번은 실행되는지 확인
    • 분기 커버리지 : 분기들이 한번은 실행되는지 확인
    • 경로 커버리지 : 모든 실행 경로를 테스트

    > 싸이클로매틱 복잡도 : 복잡도를 수치로 표현

    1. E - N + 2
    2. 폐쇄영역수 + 1
    3. 단일조건수 + 1
    • 루프테스트 
    1. 단순 
    2. 중첩 : 내부부터 외부
    3. 연속 : 독립적이면 단순, 영향을 주면 중첩
    4. 비구조적 : 구조적으로 바꿈

     

     

    [상태기반]

    정의 : 상태가 있는 프로그램을 위한 테스트

     

    <상태머신>

    상태 : 과거에 대한 영향 표시

    트랜지션 : 이벤트로 인한 상태변화

    이벤트 : 입력

    액션 : 출력

     

    <테스트케이스>

    모든 트랜지션 : 상태 그래프의 모든 트랜지션 점검

    모든 트랜지션 쌍 : 모든 이웃 트랜지션(유입, 방출)쌍을 점검

    트랜지션 트리 : 모든 단순 경로를 만족시키는 기준

     

     

    [통합테스트]

    드라이버(호출하는) : 시험 대상 모듈을 불러오는 간이 소프트웨어

    스텁(호출되는) : 시험 대상 모듈에서 불러오는 모듈의 간이 소프트웨어

     

    빅뱅 : 한번에 테스트

    하향식 : 최상위 모듈(명령어 처리 모듈)부터 내려가면서 테스트

    상향식 : 최하위 모듈부터 올라가면서 테스트

    연쇄식 : 특수, 중요 기능을 먼저 구현

     

     

    [시스템테스트]

    기능 테스트 (Functionality Test)

    목적: 소프트웨어가 요구된 기능을 제대로 수행하는지 확인

    예시: 버튼을 누르면 로그인 기능이 제대로 작동하는지 확인

     

    성능 테스트 (Performance Test)

    목적: 시스템의 속도, 응답시간, 처리량 등을 평가

    예시: 1000명이 동시에 접속할 때 서버가 버티는지 테스트

     

    보안 테스트 (Security Test)

    목적: 시스템이 외부 공격으로부터 안전한지 확인

    예시: 비밀번호가 암호화되어 저장되는지, SQL Injection 방어 여부 확인

     

     

    [인수테스트]

    사용성 테스트 (Usability Test)

    목적: 사용자가 소프트웨어를 쉽게 사용할 수 있는지 평가

    예시: 메뉴 구성이 직관적인지, 초보자도 쉽게 사용할 수 있는지 확인

     

    인수 테스트 (Acceptance Test)

    목적: 최종 사용자가 요구사항을 만족하는지 확인

    예시: 고객이 직접 기능을 테스트하고 “이대로 사용해도 되겠다”고 판단하는 테스트

    • 알파테스트 : 개발자, 관련 인원이 테스트
    • 베타테스트 : 유저들이 테스트

     

    설치 테스트 (Installation Test)

    목적: 소프트웨어가 다양한 환경에서 올바르게 설치되는지 확인

    예시: Windows, Mac, Linux에서 설치가 정상적으로 되는지 확인

    반응형

    댓글

Designed by Tistory.