* 소프트웨어 개발 과정에서 발생할 수 있는 오류들을 가정하고, 그러한 오류들을 발견해 내는 활동
* [IEEE에서의 SW 테스트 정의]
* 수동이나 자동으로 시스템을 시험 작동시키고 평가하는 작업으로 명시된 요구를 잘 만족하는지, 즉 예상된 결과와 실제 결과와의 차이를 인식하기 위한 목적을 가진다.
* 소프트웨어의 내부 구조 파악 여부
* White Box
* 소스 코드의 구조를 기반으로 테스트를 수행하는 기법
* 코드의 수행 경로, 불필요한 코드 혹은 테스트 되지 못한 부분을 확인.
* Black Box
* 소프트웨어의 내부를 보지 않고 기능의 유효성을 판단하는 테스트 기법.
* 소프트웨어의 실행 여부
* Static
* 프로그램을 실행하지 않고 소스 코드 전체 또는 일부를 분석하는 기법.
* Dynamic
* SW를 실행하여 다양한 입력 값에 대해 기대하는 결과 값이 나타나는지 확인하는 테스팅 기법.

* V-Model
* 시스템이나 시스템 컴포넌트 또는 소프트웨어 프로그램 등을 테스트하는 작업이 이들에 포함된 단순한 코딩의 오류만을 찾는 작업이 아니라 **요구 사항 분석에서의 오류, 설계 등 개발 단계의 작업들에 대한 테스트를 포함한다는 내용**을 **개발 프로세스와 통합화여 체계화한 개념. <br>
V-모델은 소프트웨어 생명 주기를 모형화한 것으로 기존의 폭포수 모형에서 시스템 검증과 테스트 작업을 강조하고 있다.

### 소프트웨어 기능안전이란?
* 기능안전은 시스템이나 장비의 총체적 안전의 일환으로 하드웨어 고장, 소프트웨어 오류, 운영자 오류 그리고 환경적 영향 등에 대한 안전 관리를 뜻한다.