본문 바로가기
정보처리기사

애플리케이션 테스트 분류

by mooyou 2021. 5. 11.
728x90
300x250

 

어플리케이션 테스트

어플리케이션에 잠재되어있는 결함을 찾아내는 일련의 행위 또는 절차

우리가 사용하는 모든 컴퓨터는 발견만 못했을 뿐이지 버그가 있기 마련이다. 그렇기 때문에 어플리케이션 테스트를 통해서 오류를 발견하고 업데이트를 해서 버전업을 하는 것이다.

 

 

애플리케이션 테스트 원리와 특징

  • 결함을 줄일수는 있지만 완벽한 테스트는 불가능하다.
  • 테스팅은 정황 의존 - 테스트 결과는 환경이나 테스터의 역량등 정황(Context)에 따라 달라진다.
  • 파레토 법칙 - 2:8법칙 20%의 코드에서 80%의 오류가 집중되어있다
  • 살충제 패러독스 - 같은 살충제를 사용하면 벌레가 내성이 생겨서 죽지 않는 것처럼 같은 테스트를 계속 반복하면 오류를 찾을 수 없는 현상
  • 오류 부재의 궤변 - 테스트를 통해 소프트웨어의 결함을 모두 제거 해도 사용자 요구사항을 만족할 수 없다면 애초에 품질이 좋지 못했다는 것이다.
  • 테스트와 위험은 반비례 - 테스트를 많이 하면 할수록 미래 발생할 위험이 줄어든다.
  • 점진적 확대 - 테스트는 작은것부터 시작해서 점점 확대해서 진행해야 한다.
  • 별도 팀 수행 - 테스트는 개발자와 관계없는 별도의 팀에서 테스트를 해야 한다.

 

어플리케이션 테스트 분류

수많은 소프트웨어 종류가 존재하듯이 테스트 종류도 다양하다.

따라서 소프트웨어의 유형을 파악해서 어떤 종류의 테스트를 할 것인지 정하는 것이다.

 

 

프로그램 실행 여부에 따른 테스트

정적 테스트 프로그램을 실행하지 않고 명세서나 소스코드를 대상으로 분석
소스코드에서 코딩표준, 코딩 스타일, 코드 복잡도, 남은 결합등을 개발초기에 발견해서 개발 비용을 낮추는데 도움이 된다.
종류
워크스루 : 실행전 미리 오류검사 
인스펙션 : 전문가 집단 산출된 결과물 품질평가
코드 검사 등
동적 테스트 프로그램을 실행하여 오류를 찾음
소프트웨어의 모든 단계에서 테스트 수행
종류 : 화이트박스테스트, 블랙박스 테스트

 

테스트 기반에 따른 테스트

명세 기반 테스트 사용자 요구사항 명세서를 테스트 케이스(항목)으로 만들어서 구현하고 있는지 확인하는 테스트
종류 : 동등분할, 경계값분석등 
구조 기반 테스트 소프트웨어 내부의 논리 흐름에 따라 테스트 케이스를 만들어서 테스트
ex) 쇼핑몰을 예로들면 로그인하고 > 상품검색하고 > 구매하는 이런 흐름의 과정을 따라 테스트
종류 : 구문기반, 결정기반, 조건기반등
경험 기반 테스트 비슷한 SW의 테스트 경험을 기반으로 항목을 만들어서 테스트
사용자 요구 명세서가 불충분하거나 시간이 부족할 경우 빠른 테스팅이 가능하지만 정확도가 떨어질 가능성이 있다.
종류 : 체크 리스트, 탐색적 테스팅, 에러 추정

 

시각에 따른 테스트

검증(Verification) 테스트 개발자 입장에서 소프트웨어 기능이 의도한 대로 정확히 수행을 하는지 검증
확인(Validation) 테스트 사용자 입장에서 요구사항을 만족 시키는지 확인

 

 

 

애플리케이션 테스트의 목적

  • 회복 테스트 : 시스템이 올바르게 복구되는지 확인
  • 안전 테스트 : 외부 침입을 막을 수 있는지 확인
  • 강도 테스트 : 과부하에 잘 견디는지
  • 성능 테스트 : 응답시간과 처리량 확인
  • 구조 테스트 : 코드의 복잡도 확인
  • 회귀 테스트 : 수정된 코드에 결함이 없는지
  • 병행 테스트 : 기존 소프트웨어와 수정된 소프트 웨어의 동일한 입출력으로 결과를 비교
728x90
반응형

댓글