반응형
애플리케이션을 테스트할 때
프로그램의 실행 여부에 따라 다음과 같이 나뉘게 됩니다.
정적 테스트 | 프로그램을 실행하지 않고 명세서나 소스 코드를 대상으로 분석하는 테스트. 소트프웨어 개발 초기에 결함을 발견할 수 있어 개발 비용을 낮추는데 도움이 된다. 종류로는 '워크스루', '인스펙션', '코드 검사'등이 있다. |
동적 테스트 | 프로그램을 실행하여 오류를 찾는 테스트로, 소프트웨어 개발의 모든 단계에서 수행할 수 있다. 종류로는 "블랙박스 테스트" , "화이트박스 테스트"등이 있다. |
또,
애플리케이션은 무엇을 "기반"으로
하느냐에 따라 다음처럼 나뉘게 됩니다.
명세 기반 테스트 | 사용자의 요구사항에 대한 명세를 빠짐없이 테스트 케이스로 만들어 구현하고 있는지 확인하는 테스트. 종류에는 "동등 분할" , "경계값 분석"등이 있다. |
구조 기반 테스트 | 소프트웨어 내부의 논리 흐름에 따라 테스트 케이스를 작성하고 확인하는 테스트. 종류에는 "구문 기반", "결정 기반", "조건 기반"등이 있다. |
경험 기반 테스트 | 유사 소프트웨어나 기술 등에 대한 테스터의 경험을 기반으로 수행하는 테스트. 이는 사용자의 요구사항에 대한 명세서가 불충분하거나, 테스트 시간에 제약이 있는경우 효과적이다. 종류에는 에러 추정, 체크 리스트, 탐색적 테스팅이 있다. |
그리고
테스트할 때,
누구를 기준(개발자, 사용자)으로 하느냐에 따라 나뉘게 됩니다.
검증(Verification) 테스트 | 개발자의 시각에서 제품의 생산 과정을 테스트 하는 것, 제품이 명세서대로 완성됐는지 테스트한다. |
확인(Validation) 테스트 | 사용자의 시각에서 생산된 제품의 결과를 테스트하는 것, 사용자가 요구한대로 완성됐는지, 제품이 정상적으로 동작한는지를 테스트한다. |
끝으로는
프로그램의 목적에 따라 테스트를 구분합니다.
회복(Recovery)테스트 | 시스템에 여러 가지 결함을 주어 실패하게 한 후, 올바르게 복구되는지 확인하는 테스트. |
안전(Security) 테스트 | 시스템에 설치된 시스템 보호 도구가 불법적인 침입으로부터 보호가능한지 확인하는 테스트. |
강도(Stress) 테스트 | 시스템에 과도한 정보량, 빈도등 과부하 시에도 소프트웨어가 정상적으로 실행되는지 확인하는 테스트 |
성능(Performance) 테스트 | 소프트웨어의 실시간 성능이나 전체적인 효율성ㅇ르 진단하는 테스트로, 소프트웽어의 응답 시간 , 처리량등을 테스트한다. |
구조(Structure) 테스트 | 소프트웨어 내부의 논리적인 경로, 소스 코드의 복잡도등을 평가하는 테스트. |
회귀(Regressiong) 테스트 | 소프트웨어의 변경 또는 수정된 코드에 새로운 결함이 없음을 확인하는 테스트. |
병행(Parallel) 테스트 | 변경된 소프트웨어와 기존 소프트웨어에 동일한 데이터를 입력하여, 그 결과를 비교하는 테스트이다. |
반응형
최근댓글