티스토리 뷰

소프트웨어 테스트란?

-소프트웨어 공학에서 테스트는 소프트웨어가 요구사항을 만족하고, 예상대로 동작하는지를 검증하기 위한 과정입니다. 즉, SQA(소프트웨어 품질보증)을 검증하는 활동입니다. 테스트는 소프트웨어의 품질을 개선하고, 결함이 없는걸 보여주는것이 아닌 결함을 발견하여 수정하는것을 목적으로 합니다. 테스트과정은 소프트웨어의 생명 주기 동안 반복적으로 수행되며, 소프트웨어가 변경될때마다 새로운테스트를 수행하여 이전에 발견하지 못한점을 발견할 수 있습니다.

 

소프트웨어 테스트 과정
  1. 계획 단계
    -테스트 목적,방법,일정,자원 등을 계획하며, 이단계에서는 테스트 계획서를 작성하고 테스트 수행에 필요한 자원을 확보합니다.
  2. 설계 단계
    -테스트 케이스를 설계합니다. 테스트 케이스는 소프트웨어가 요구하는 입력과 예상결과를 명시하는 것인데, 이단계에서는 테스트 케이스 명세서를 작성합니다.

  3. 구현 단계
    -설계한 테스트 케이스를 구현합니다. 이단계에서는 테스트 케이스를 실행할 수 있는 테스트 도구를 개발합니다.

  4. 수행 단계
    -구현한 테스트 케이스를 실행하고 결과를 기록합니다. 이 단계에서는 결함을 발견하면 결함 보고서를 작성하고, 개발자에게 보고합니다.

  5. 보고 단계
    -수행한 테스트 결과와 결함 보고서를 요약하여 관리자나 이해관계자에게 보고합니다. 보고서는 결함의 심각도와 우선순위, 수정계획등을 포함합니다.

 

 

 

 

 

소프트웨어 Verification(검증) vs 소프트웨어 Validation(유효성 검사)
  • 소프트웨어 Verification
    -소프트웨어가 명세서에 따른 요구사항에 부합하고, 설계및 개발 과정에서 정해진 절차를 따라 제작되었는지 확인하는 과정. 코드검토, 테스트 및 검사를 통해 수행됨. 즉, 프로세스의 논리적인 부분을 검사합니다.

  • 소프트웨어 Validation
    -소프트웨어가 실제 사용자 요구사항을 충족시키는지 확인하는 프로세스.  소프트웨어가 목적에 맞게 작동하는지, 사용자가 요구하는 기능을 정확하게 제공하는지를 확인함. 시스템 테스트,사용자 테스트 등을 통해 수행됨. 즉,프로세스와 사용자의 상호작용을 검토함.

 

 

 

 

 

소프트웨어 테스트 종류
  • Unit test (유닛 테스트)
    -가장작은 모듈(component, class) 단위로 테스트를 수행합니다. 이과정에서 코드 단위의 검증을 목적으로합니다.
    -모듈이 의도한대로 작동하는지를 확인 하며, 개발자가 수행함.
    - 테스트케이스를 가져와 테스트 드라이버가 정보를 입력한후 테스트 모듈을 이용해 테스트를진행함.
    -white-box가 쓰임
  • Integeration Test(통합 테스트)
    -각 모듈을 하나로 통합하고 모듈간의 상호작용이 예상한대로 이루어지는지 검증하는과정.
    -유닛테스트와 마찬가지로 개발자가 수행함
    -top-down방식(상위 모듈 테스트 -> 하위 모듈 테스트) , bottom-up방식(하위 모듈 테스트 -> 상위 모듈 테스트)
  • Validation Test(검증 테스트)
    -사용자가 원하는 요구사항을 충족시키는지를 검증하는 과정.
    -일반적으로 사용자가 수행함.

  • System Test(시스템 테스트)
    -시스템 전체의 기능과 성능을 검증합니다.
    -사용자 요구사항을 시키는지를 검증하며, 일반적으로 완전한 환경에서 수행됩니다.
    -개발자가 수행함.

 

테스트는내부 시스템 테스트에 오랜 시간을 쓰고, 사용자테스트는 적게 쓰는게 바람직한 구조임.

 

 

 

 

 

Black-Box 테스트

-소프트웨어 내부 구조나 작동원리를 모르는 상태에서 소프트웨어를 테스트 하는 것으로, 검사과정에서 소프트웨어 코드, 내부구조의 정보는 제외하며, 소프트웨어 특징, 요구사항 등에 초점을 맞춰 검사가 이뤄짐. 즉, 사용자 입장에서 특정 프로그램에 대한 내부 과정은 모른 채로 입력값과 출력값으로 테스트하는 과정과 유사한 테스트입니다. 프로그램의 기능적인 문제를 찾아내긴 유용하지만, 내부동작을 고려하지않아 오류의 원인을 찾기 어렵다는 것이 단점입니다.

 

Black-Box 테스트 기법

  1. 동등분할 (Equivalent Partitionning)
    -입력값을 몇개의 동등한 그룹으로 나누고, 각 그룹을 대표하는 입력값으로 테스트를 수행하는 기법입니다.
    예를 들어, 입력값이 0~100 사이의 수인 경우 -> 음수 ,  0~50 , 50~100 , 100이상 으로 나누어 테스트를 수행합니다.
  2. 경계값 분석 (Boundary Value Analysis)
    -입력값의 경계값을 중심으로 테스트를 수행하는 기법입니다.
    예를 들어 0~100사이의 수인경우 -> 0 , 100 , 1 , 99 , 그외 그룹사이 가 경계값인데 이 값들로 테스트를 수행합니다.

 

 

 

 

 

 

 

White-Box 테스트

-소프트웨어의 내부 구조와 코드를 검증하는 테스트 방법. 이를통해 코드의 문제점을 발견하고 개선가능합니다.개발자가 소프트웨어 내부 로직에 대한 테스트를 수행하기위해 사용하는 테스트기법입니다.

 

 

White Box 테스트 기법

구분 설명 예시
문장검증 프로그램의 모든 문장이 적어도 한번씩 수행되는 검증 실제 코드에서 모든 문장을 검증함
선택검증 모든 분기점을 한번이상 실행하도록 하는 검증 if문의 조건문이 만족하는 경우,만족하지 않는경우 두가지를 검증함
경로검증 수행가능한 모든 경로를 한번이상 실행하도록하는 검증 각각의 코드경로가 올바르게 동작하는지 검증함
조건검증 if문장이나 while문장내 조건식을 한번이상 실행하도록 하는검증 if문의 조건문에서 발생할 수 있는 모든 조건들을 검증함.

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함