이 문서는 Google Cloud Translation API를 사용해 자동 번역되었습니다.
어떤 문서는 원문을 읽는게 나을 수도 있습니다.
개발자와 테스터는 역할이 다르지만 둘 다 소프트웨어 품질에 필수적입니다. 개발자는 코드를 작성하고 테스터는 이를 테스트합니다. 테스터는 코드 경찰이 되어서는 안 되지만 결함에 대한 최후의 방어선입니다.
다양한 유형의 소프트웨어 테스트(단위, 통합, 기능적, 비기능적 등)가 있지만 공통된 목표는 결함을 찾는 것입니다.
단위 테스트는 개별 소프트웨어 구성 요소(단위)를 개별적으로 테스트하기 때문에 가장 중요한 테스트 유형입니다. 단위 테스트가 실패하면 일반적으로 실패 원인을 쉽게 식별할 수 있습니다.
통합 테스트는 단위 테스트 후에 수행됩니다. 단위가 함께 작동하는 방식을 테스트합니다. 통합 테스트가 실패하면 장치 중 하나의 결함 또는 장치가 서로 상호 작용하는 방식으로 인한 것일 수 있으므로 실패 원인을 식별하기 어려울 수 있습니다.
기능 테스트는 통합 테스트 후에 수행됩니다. 소프트웨어의 종단 간 기능을 테스트합니다. 기능 테스트가 실패하면 소프트웨어 구성 요소의 결함 또는 소프트웨어 구성 요소가 서로 상호 작용하는 방식으로 인한 것일 수 있으므로 실패 원인을 식별하기 어려울 수 있습니다.
비기능 테스트는 기능 테스트 후에 수행됩니다. 성능, 확장성, 보안 등과 같은 소프트웨어의 비기능적 측면을 테스트합니다.
소프트웨어 테스트는 소프트웨어가 고객에게 출시되기 전에 소프트웨어의 결함을 찾는 데 도움이 되기 때문에 중요합니다. 소프트웨어가 출시된 후에 발견된 결함은 수정하는 데 많은 비용이 들 수 있습니다.
소프트웨어가 출시되기 전에 모든 결함을 찾는 것이 항상 가능한 것은 아니지만 테스트의 목표는 소프트웨어가 자신 있게 출시될 수 있도록 가능한 한 많은 결함을 찾는 것입니다.