Shift-Left 테스트 살펴보기
애플리케이션 수명 주기 관리 테스트는 코드 품질을 최대화하고 소프트웨어 배포 및 업데이트와 관련된 운영 위험을 최소화하는 데 필수적입니다. 이 컨텍스트에서 shift-left라는 용어는 개발 단계에서 테스트 작업을 가능한 한 빨리 이동한다는 개념을 전달합니다. 샘플 시나리오의 조직은 현재 보안 및 안정성 문제를 최소화하기 위해 이 접근 방식을 DevOps 전략에 통합하는 것을 고려해야 합니다. 이 단원에서는 이러한 방식으로 구현할 수 있는 다양한 유형의 테스트를 검토한 다음 구현 방법을 검토합니다.
DevOps 테스트 원칙을 보여 주는
시프트 레프트 테스트에 포함되어야 할 테스트는 무엇인가요?
소프트웨어 개발은 광범위한 테스트 유형을 통합하지만, 특히 관심 있는 테스트 유형은 다음과 같습니다.
단위 테스트: 이러한 테스트는 개별 함수 또는 메서드와 같은 애플리케이션 코드의 가장 작은 테스트 가능한 부분에 초점을 맞춥니다. 목표는 각 코드 단위가 코드베이스의 나머지 부분과 외부 종속성에서 격리된 의도한 작업을 성공적으로 수행할 수 있는지 여부를 설정하는 것입니다. 이러한 테스트는 완전히 자동화되고 빠르며(30초 이내에 완료) 전체 코드 검사(기본적으로 모든 단위 테스트가 전체 코드베이스를 총체적으로 테스트해야 함)를 제공해야 합니다. 단위 테스트는 shift-left 방식에 적합합니다. 프로그래밍 단계의 시작 부분에서 가능한 한 개발 주기 초기에 모든 코드에 적용하는 것이 좋습니다.
테스트 및 단위 테스트의 비전을 보여 주는
스모크 테스트: 이러한 테스트는 테스트 환경에서 애플리케이션의 핵심 기능을 평가하기 위한 것입니다. 단위 테스트처럼 개별 격리된 구성 요소가 아닌 실제 애플리케이션을 테스트하는 동안 해당 목적은 애플리케이션 빌드 또는 배포가 보다 심층적인 테스트를 보증하기에 충분히 안정적인지 확인하는 것입니다. 그러나 앱 간의 상호 운용성을 확인하지는 않습니다. 단위 테스트와 마찬가지로 완전히 자동화되고 비교적 빠릅니다(브라우저 자동화 도구 및 사용자 인터페이스 자동화 프레임워크를 사용하여 사용자 상호 작용을 시뮬레이션할 수 있음). 스모크 테스트라는 용어는 가능한 한 빨리 해결해야 하는 주요 문제(화재)를 나타내는 연기라는 개념을 전달하기 위한 것입니다. 스모크 테스트는 개발 주기 초기에 구현되어야 하며, 핵심 기능을 제공하는 소프트웨어 버전을 사용할 수 있는 즉시 구현하는 것이 좋습니다. 이는 애플리케이션 빌드 및 배포 단계 모두에 적용됩니다.
통합 테스트: 이러한 테스트는 서로 다른 애플리케이션 구성 요소 간의 상호 작용의 유효성을 검사합니다. 단위 테스트와 달리 완료하는 데 상당한 시간이 걸릴 수 있습니다. 이러한 테스트의 연장된 기간은 일반적으로 소프트웨어 개발 수명 주기 초기에 실행하기 위한 인수로 사용됩니다. 일반적으로 단위 또는 스모크 테스트가 적합하지 않은 시나리오에서 통합 테스트를 고려해야 합니다. 그러나 정기적으로 실행되도록 예약하는 것이 좋습니다. 이 방법은 통합 문제를 검색하는 데 잠재적인 지연과 이를 완료하는 데 필요한 추가 대기 시간 사이에 적절한 절충을 제공합니다.
승인 테스트: 이러한 테스트는 소프트웨어 제품이 비즈니스 요구 사항을 충족하고 소비자에게 배달할 준비가 되었는지 여부를 결정합니다. 수락 테스트는 왼쪽 이동 전략에 적합하지 않지만 소프트웨어 개발 수명 주기 초기에 일부 요소를 통합할 수 있습니다. 예를 들어 승인 테스트의 필수 구성 요소인 수용 조건 및 사용자 스토리는 개발 프로세스 초기에 도입되어야 합니다. 이를 통해 개발 팀, 제품 소유자 및 프로젝트 이해 관계자 간의 협업이 용이합니다. 또한 소프트웨어 소비자 및 프로젝트 관련자는 피드백을 공유하기 위해 이전 테스트 단계에 참여해야 합니다. 공식 승인 테스트에 앞서 알파 또는 베타 테스트, 유용성 테스트 또는 초기 릴리스와 같은 방법을 사용하는 것이 포함될 수 있습니다.