본문 바로가기

정보처리

애플리케이션 테스트 관리

오늘은 애플리케이션 테스트 관리에 대해 알아보겠습니다. 

애플리케이션 테스트는 애플리케이션에 잠재되어 있는 결함을 찾아내는 절차입니다. 

애플리케이션 테스트를 통해서 프로그램 실행전에 오류를 발견하여 조치할 수 있고 제품의 신뢰도를 향상 시킬 수 있는 가장 효과적인 방법입니다. 

 

애플리케이션 결함은 대부분 개발자의 특성이나 애플리케이션의 기능적 특징 때문에 특정 모듈에 집중되어 있습니다. 

20%에 해당하는 코드에서 전체 80%의 결함이 발견된다고 하여 파레토 법칙이 적용되기도 합니다. 또한 테스트 케이스로 동일한 테스트를 반복하면 더 이상 결함이 발견되지 않는 살충제 패러 독스 현상이 발생할 수 도 있습니다. 이러한 방법으로 지속적으로 보안 및 개선을 해야 높은 품질의 소프트웨어를 제작 가능합니다. 

 

애플리케이션 테스트는 소프트웨어 특징, 테스트 환경, 테스터 역량 등 정황에 따라 테스트 결과가 달라질 수 있으므로, 상황에 따라 다르게 테스트를 수행해야합니다. 하지만 소프트웨어의 결함을 모두 제거해도 사용자의 요구사항을 만족 시키지 못할 경우 해당 소프트웨어의 품질은 높다고 말할 수 없겠죠? 이를 오류-부재의 궤변이라고도 부릅니다. 

 

앱 테스트는 테스트 시 프로그램 실행 여부 또는 진행 목적에 따라 다양하게 분류 됩니다. 

 

크게 프로그램 실행여부 , 테스트 기반, 시각, 목적에 따른 테스트 종류가 있습니다. 

 

프로그램 실행 여부에 따른 테스트는 정적 테스트와 동적 테스트로 나뉩니다. 정적 테스트는 프로그램을 실행하지않고서 소슽코드를 대상으로 분석하는 것을 말하며 동적 테스트는 프로그램을 실행하여 오류를 찾는 테스트로 모든 단계에서 테스트를 수행 할 수 있다. 

 

정적 테스트의 종류 

  • 워크스루 - 소프트웨어 개발자의 작업 내역을 개발자가 모집한 전문가들이 검토하고 오류의 초기 검출을 진행 합니다. 
  • 인스팩션 - 개발 단계에서 산출된 결과물의 품질을 평가하고 개선을 위한 방법을 제시
  • 테스트 케이스- 구혀노딘 소프트웨어가 사용자의 요구사항을 정확하게 준수했는지 확인하기 위해 테스트 항목(설계된 입력값, 실행 조건, 기대 결과) 등으로 구성된 테스트 항목에 대한 명세서 

테스트 기반에따른 테스트 

애플리케이션을 테스트 할 때 무엇을 기반으로 수행하냐에 따라 종류가 나뉜다. 

  • 명세 기반 테스트 - 사용자의 요구사항에 대한 명세를 빠짐없이 테스트 케이스로 만들어 구현하고 있는지 확인하는 테스트 이다. 
  • 구조 기반 테스트 - 소프트웨어 내부의 논리 흐름에 따라 테스트 케이스를 작성하고 확인하고 테스트 
  • 경험 기반 테스트 - 유사 소프트웨어나 기술 등에 대한 테스터의 경험을 기반으로 수행하는 테스트 

시각에 따른 테스트 

  • 검증 테스트 - 개발자의 시각에서 제품의 생산 과정을 테스트 하는 것으로, 제품이 명세서대로 완성이 됬는지 확인한다. 
  • 확인 테스트 - 사용자의 시각에서 생산된 제품의 결과를 테스트하는 것으로, 사용자가 원하는데로 제품이 완성 됬는지, 제품이 정상적으로 동작하는지 테스트 하는것을 말한다. 

마지막으로는 목적에 따른 테스트의 종류에 대해 알아보자 종류로는 회복테스트, 안전 테스트, 강도 테스트, 성능 테스트 , 구조 테스트 , 회귀 테스트 , 병행 테스트 등이 있다. 목적에 따른 테스트는 종류 정도만 알아 놓자!

 

다음으로 공부해볼 내용은 테스트 기법에 따른 애플리케이션 테스트가 되겠다. 

화이트 박스 와 블랙 박스 테스트가 있는데 화이트 박스 테스트는 원시 코드를 오픈 시킨 상태에서 원시 코드의 논리적인 모든 경로를 테스트 하는 방법을 말한다. 종류로는 기초 경로 검사, 제어 구조 검사 등이 존재한다. 

 

검증기준은 테스트 케이스들이 테스트에 얼마나 적정한지 판단하는 기준으로 문장 검증기준, 분기 검증 기준, 조건 검증 기준, 분기/조건 검증 기준이 존재한다. 

 

블랙박스 테스트는 소프트웨어가 수행할 특정 기능을 알기 위해서 각 기능이 완전히 작동되는 것을 입증하는 테스트로 기능테스트라고도 불리운다. 종류로는 동치 분할 검사, 경계값 분석, 원인-효과 그래프 검사, 오류 예측검사, 비교검사 등이 있다. 

 

다음시간에는 개발 단계에 따른 애플리케이션 테스트에 대해 알아봅시다. 

'정보처리' 카테고리의 다른 글

데이터베이스 설계  (0) 2020.05.28
인터페이스 구현  (0) 2020.05.27
소프트웨어 패키징  (0) 2020.05.21
단위 모듈 구현과 테스트  (0) 2020.05.20
자료 구조에 대하여  (0) 2020.05.20