어떤 종류의 소프트웨어 테스트를 알고 있습니까? 테스트 주도 개발, 단위 테스트 등에 대해 들었지만 그 중요성과 차이점을 이해할 수 없습니다. 예를 들어 회귀 테스트 또는 승인 테스트를 사용하는 이유는 무엇입니까? 그들이 제공하는 장점은 무엇입니까?
어떤 종류의 소프트웨어 테스트를 알고 있습니까? 테스트 주도 개발, 단위 테스트 등에 대해 들었지만 그 중요성과 차이점을 이해할 수 없습니다. 예를 들어 회귀 테스트 또는 승인 테스트를 사용하는 이유는 무엇입니까? 그들이 제공하는 장점은 무엇입니까?
답변:
내 마음에 넓은 범주는 다음과 같습니다.
블랙 박스 테스트 . 응용 프로그램이나 시스템의 내용이 숨겨져 있으므로 코드를 보지 못하고 어느 정도는 맹목적으로 테스트하고 있습니다. 따라서이 경우 사람들은 모든 오류 사례를 알지 못하며 모든 사례를 찾는 것이 분명하거나 그렇지 않은 다양한 경계 조건으로 추측해야합니다.
화이트 박스 테스트 . 코드를보고 코드 범위를 메트릭으로 사용하여 시스템에서 모든 논리가 사용되고 있는지 확인할 수 있도록 코드 경로를 확인할 수 있습니다. 여기서 아이디어는 코드가 블랙 박스 테스트만큼 신비하지 않도록 테스트를 안내하는 데 도움이되는 코드의 모양을 아는 것입니다.
그레이 박스 테스트 는 이전 두 가지의 하이브리드입니다.
경계 케이스는 적중 테스트를 작성하는 코드에 볼 수있는 다양한 조건이 있기 때문에 화이트 박스 테스트에서 볼 수있는 경향이 있습니다. 코드 어딘가에 보여야합니다.
테스트의 일반적인 분류는 다음과 같습니다.
단위 테스트 . 이것들은 일반적으로 다소 특정한 것을 테스트하는 가장 작은 테스트입니다. 예를 들어이 방법이이 경계를 처리합니까? 참고 의존성 주입을 포함한 경우에 대해 여기에서 사용될 수있는 모의 시험에 대한 의존성을 감소시키기 위해 개체.
통합 테스트 . 이는 몇 개의 구성 요소가 연결되어 있고 구성 요소가 제대로 작동하는지 테스트하기위한 테스트입니다. 단위 테스트는 독립적으로 작동 할 수 있지만, 계층 간 통신이 잘못되어 다양한 문제를 포착하는 데 유용 할 수 있으므로 계층 간 통신이 잘못 될 수 있기 때문에 여러 가지 요소가 잘 결합되어 있는지 테스트합니다. 엔드-투-엔드 (end-to-end) 테스트 라는 용어 는 "애플리케이션의 한 엔드 포인트에서 다른 엔드 포인트로"(그 의미가 무엇이든) 전체 구성 요소 체인을 테스트하는 통합 테스트에 사용됩니다.
회귀 테스트 . 과거에 수행 된 테스트는 수정 된 사항이 수정 된 상태로 유지되고 버그가 코드에 다시 도입되지 않도록하기 위해 다시 수행됩니다.
사용성 테스트 . 최종 사용자가 소프트웨어를 사용하여 다양한 작업을 얼마나 잘 수행 할 수 있는지 테스트하기위한 테스트입니다. 무언가를 더 빨리 사용하거나 UI를 조정하여 무언가를 더 쉽게 사용할 수 있도록 자동화 할 수있는 위치
사용자 승인 테스트 . 이 테스트는 최종 사용자가 수행 한 테스트이므로 어떤 방식으로 작동하는지 직접 확인할 수 있으며 소프트웨어가 처음에 요청한 비즈니스 요구를 충족시키는 데 동의 할 수 있습니다.
기능 테스트 는 테스트 중인 소프트웨어의 기능 사양을 기반으로하는 모든 종류의 테스트입니다. 이들은 항상 블랙 박스 테스트입니다.
성능 테스트. 이는 시스템이 너무 느려지지 않고 특정 양의 부하를 처리 할 수 있도록하기위한 테스트입니다. 예를 들어, 새로운 웹 서버 서버를 테스트하면 100 명의 사용자가 동시에 사이트를 방문하는 것을 처리 할 수있는 것이 성능 테스트의 예입니다. 여기에서는 일반적으로 시스템을 한계로 밀어 붙이거나 시스템이 다른 부서의 일부 프로젝션을 처리 할 수 있는지 확인하는 것으로 "로드 테스트"또는 "스트레스 테스트"라고도합니다. 이러한 테스트의 이론적 근거는 병목 현상을 발견하고 이에 대한 문제를 해결하는 데 약간의 노력이 소요될 수있는 최적화 할 구성 설정이 여러 개라는 경우가 많습니다. 여기서 병목 현상은 메모리, I / O, CPU 또는 네트워크 대역폭으로 인해 시스템이 예상대로 응답하지 않을 수 있습니다.
테스트 주도 개발 (Test Driven Development )은 방법론이며 특정 종류의 테스트를 의미하는 것이 아니라 코드보다 먼저 테스트를 작성하여 테스트가 행동 , 도메인 또는 기능 보다는 개발을 주도하는 요소 가되는 다른 사례가되는 것입니다. 방법.
연속 통합 은 단위, 통합 및 회귀 테스트와 같은 일부 테스트를 정기적으로 실행하여 변경으로 인해 테스트가 중단되는 경우 가능한 한 빨리 포착되도록하는 방법입니다.
회귀 테스트는하지 않은 기존의 기능을 중단하지 않은 시스템에 그 새로운 변화를 확인하기 위해 수행 되어 변경에 의해 영향을받은 것으로한다.
수락 테스트는 일반적으로 고객 / 클라이언트 / 비즈니스 사용자가 수행하며, 다른 형태의 테스트보다 더 높은 수준이며 변경을 요청한 사람들이 만족하고 변경 사항을 홍보 할 수 있도록 수행됩니다. 생산 시스템.