소프트웨어 테스트(Software Testing)
소프트웨어 테스트(Software Testing)

1. 단위 테스트 (Unit Testing)
- 개요
소프트웨어의 가장 작은 단위(예: 함수, 메서드)를 독립적으로 테스트하는 방식입니다. 주로 화이트박스 테스트 방식으로 이루어집니다.
- 목표
각 단위가 개별적으로 정상 작동하는지 확인합니다.
- 특징
화이트박스 테스트로 진행하는 경우가 많으며, 코드 내부의 흐름과 로직을 테스트합니다.
자동화 도구를 사용하여 테스트를 반복적으로 수행할 수 있습니다.
코드 커버리지가 높을수록 코드의 품질이 향상됩니다.
2. 통합 테스트 (Integration Testing)
- 개요
여러 단위 모듈이 합쳐졌을 때, 이들이 잘 상호작용하는지를 테스트하는 방식입니다.
- 목표
개별적으로는 잘 동작하던 모듈들이 결합되었을 때, 데이터 흐름이나 상호작용에서 문제가 없는지 확인합니다.
- 특징
모듈 간의 인터페이스, 통신 및 의존성을 중점적으로 테스트합니다.
블랙박스 테스트와 화이트박스 테스트가 혼합되어 사용될 수 있습니다.
단위 테스트 후에 시행되며, 일반적으로 점진적으로 규모를 키워가며 테스트합니다.
3. 회귀 테스트 (Regression Testing)
- 개요
소프트웨어가 수정된 후에도 기존 기능이 제대로 작동하는지 확인하는 테스트입니다.
- 목표
기능 수정, 버그 수정 이후에도 새로운 결함이 발생하지 않았는지 검증합니다.
- 특징
블랙박스 테스트 방식으로 진행되는 경우가 많지만, 화이트박스 테스트로도 수행될 수 있습니다.
소프트웨어 업데이트 후에 자주 수행되며, 주로 자동화된 테스트 도구로 진행됩니다.
코드가 변경될 때마다 기존 기능을 다시 검증해야 하므로, 자동화된 테스트 환경에서 유용합니다.
- 개요
소프트웨어의 성능(속도, 안정성, 리소스 사용 등)을 측정하는 테스트입니다.
- 목표
주어진 상황에서 소프트웨어가 얼마나 빠르고 안정적으로 동작하는지 확인하며, 스트레스 테스트, 부하 테스트 등으로 나뉩니다.
- 특징
블랙박스 테스트 방식으로 사용자가 요구하는 성능 기준을 만족하는지 검증합니다.
응답 시간, 처리량, 확장성, 안정성 등을 주로 테스트합니다.
성능상의 병목 현상이나 시스템 과부하 시의 반응을 확인합니다.
