Test란?
'테스팅'이란 응용 프로그램 또는 시스템의 동작과 성능, 안정성이 요구하는 수준을 만족하는지 확인하기 위해 결함을 발견하는 과정이라고 말할 수 있습니다.
전통적인 테스팅 개념은 응용프로그램 또는 시스템이 잘 작동하는지 확인하는 것입니다.
현재의 테스팅 개념은 사용자의 기대 수준과 요구 사항에 맞게 구현되고 동작하는지를 확인하고 이를 통해 결함을 발견하고, 최종적으로 결함 데이터를 근간으로 개발 프로젝트의 리스크에 대한 수치적인 판단 근거를 의사 결정권자에게 전달하는 것을 말합니다.
개발 프로젝트 초기에 개발 중간 산출물을 테스팅 관점에서 리뷰하고, 테스트 케이스를 미리 만드는 과정에서 결함을 발견하는 작업도 테스팅 활동의 중요한 부분이라고 말할 수 있습니다.
정적 테스트
프로그램을 개발하기 전에 요구사항 등을 리뷰하는 것
동적 테스트
프로그램 개발 이후에 실제 실행하면서 테스트하는 것
테스트가 필요한 이유?
- 금전적인 손실
- 시간 낭비
- 비즈니스의 이미지 손상
- 부상이나 사망
테스팅의 역할
- 테스팅을 통해 릴리즈 전에 발견되지 않은 결함들이 수정된다면, 운영 환경 내에서 발생하는 리스크를 줄이는데 기여할 수 있으며 소프트웨어 품질에 도움을 줍니다.
- 테스팅은 개발 초기의 요구사항 분석 단계부터 리뷰 및 인스펙션을 통해 정적으로 이뤄질 수 있으며 각각의 개발 단계에 대응하는 테스트 레벨에 따른 테스팅이 이뤄집니다.
- 기존에 운영되는 소프트웨어 시스템이 유지 보수 활동으로 변경 및 단종되거나 환경이 변하는 경우, 변경된 소프트웨어에 대한 테스팅과 변경된 환경에서의 운영 테스팅이 요구됩니다.
- 소프트웨어 테스팅은 계약상 요구조건들, 또는 산업에 특화된 표준들을 만족시키기 위해서 필요합니다.
테스팅의 일반적인 원리
- 테스팅은 결함이 존재함을 밝히는 활동이다.
- 완벽한 테스팅은 거의 불가능하다.
- 테스팅을 개발 초기에 시작한다.
출처
https://www.boostcourse.org/web326/lecture/58975?isDesc=false