파이어맨 이야기


오랜시간동안 테스팅 활동을 진행해 오면서 다양한 테스팅의 일반적인 원리가 적립해 왔는데요 

오늘은 이러한 테스팅의 원리 중에서 테스팅의 7대 주요원리에 대해서 알아보도록 하겠습니다.  


  1. 테스팅은 결함이 존재함을 밝히는 활동이다. (Testing shows presence of defects)
    • 테스팅은 결함이 존재함을 밝히는 활동입니다. 어떤 환경에서 어떤 시나리오로 프로그램이 동작할때 문제가 발생을 찾는 활동입니다. 그리고 이러한 테스트를 통해 요구사항 만족에 대해 확인하고 개발회사에 자신감을 주게됩니다. 
  2. 완벽한 테스팅은 불가능하다 (Exhaustive testing is impossible.)
    • 소프트웨어의 모든 입력값 및 출력값을 조합을 테스트하는 것은 불가능합니다. 
  3. 개발초기에 테스팅을 시작하라. (Early Testing)
    • 초기에 테스트를 진행할 경우 미리 문제점을 발견하여 나중에 결함을 발견하고 수정하는 것에 비해 비용 및 시간을 절약할 수 있습니다. 
    • 여기서 말하는 개발초기는 개발진행과 동시에 요구사항 분석서와 설계서등 개발 중간 산출물을 분석해 테스트케이스를 도출하는 과정을 통해 결함을 발견하는 것을 의미합니다. 
  4. 결함집중 (Defect clustering)
    • 이 원리는 결함이 발견되는 모듈에 결함이 집중되어 있는 경우가 많기때문에 결함이 많은 모듈에 좀 더 집중 테스트가 필요합니다. 
  5. 살충제 패러독스 (Pesticide paradox)
    • 살충제 패러독스는 살충제를 계속 뿌리면 벌레가 내성이 생겨 죽지 않는 현상입니다.  소프트웨어 테스팅에서도 이러한 현상이 발생하는데요 매번 같은 테스트케이스를 항상 똑같이 돌리면 새로은 결함을 발견할 수 없다는 내용입니다. 
  6. 테스팅은 정황에 의존적이다. (Testing is context dependent)
    • 모든 프로그램에 모두 같은 테스트를 하는게 아니라 도메인에 맞게 테스트 전략 및 내용을 수정하여 테스트를 하라는 내용입니다. 
  7. 오류 - 부재의 궤변 (Absence-of-errors fallacy)
    • 개발한 시스템이 사용자의 필요와 기대에 부응하지 못하고 쓸모없다면 결함을 찾는 활동도 의미가 없다는 내용입니다. 


'IT > 소프트웨어 엔지니어링' 카테고리의 다른 글

Validation 과 Verification 차이  (0) 2015.09.07
CMMI for Development, Version 1.3 Part 1 1부 한글  (0) 2015.09.07
Code Coverage  (0) 2015.05.02
Autoit - Hello World!!  (0) 2015.04.22
Autoit 설치  (0) 2015.04.22

공유하기

facebook twitter kakaoTalk kakaostory naver band