continuous testing devops
DevOps의 연속 테스트 및 연속 테스트 파이프 라인이란 무엇입니까?
모두 마지막 튜토리얼을 즐겼기를 바랍니다. DevOps의 지속적인 배포 .
우리는 모든 소프트웨어 제공 및 DevOps에서 테스트의 중요성을 알고 있으며 짧은 전달주기이기 때문에 버전 제어 도구에서 한 줄의 코드가 업데이트 될 때마다 수동으로 설계된 모든 테스트 케이스를 실행할 수 없습니다. 테스트 및 자동화 된 연속 테스트 파이프 라인은 DevOps에서 그림으로 나타납니다.
추천 읽기 => 처음부터 DevOps 교육 자습서
CT의 이점 :
-
- 품질과 속도는 CT의 큰 이점입니다.
- 코드에 대한 더 빠르고 빠른 피드백.
- 팀의 자신감을 높이고 지속적으로 개선하도록 장려합니다.
비디오 파트 3 블록 4 : 연속 테스트– 14 분 39 초
성적 증명서:
이 블록에서 우리는 연속 테스트 및 연속 테스트 파이프 라인 상세히.
지속적 테스트는 지속적 통합과 함께 지속적 배포 파이프 라인의 또 다른 중요한 프로세스입니다. 파이프 라인에는 다음이 포함됩니다. 다양한 테스트 단계 여기서 자동화 된 테스트는 그 사이의 자동화 된 품질 게이트와 함께 실행됩니다.
따라서 연속 테스트는 코드 기반 및 다양한 배포 환경에 대해 지속적이고 반복적으로 자동화 된 테스트를 실행하는 것입니다.
주로 단위 테스트, 정적 코드 분석, 보안 코드 분석, 통합 테스트,로드 및 성능 테스트는 자동화 된 연속 테스트 파이프 라인에서 실행되는 연속 테스트의 일부입니다.
지속적 통합 및 지속적 배포를 CI, CD라고하므로 지속적 테스트는 종종 CT라고합니다.
지속적 배포 파이프 라인 인이 다이어그램이 보이면이 파이프 라인에는 두 개의 파이프 라인이 포함됩니다. 하나는 자동화 된 빌드 트리거, 컴파일, 빌드 및 배포로 구성된 CI 파이프 라인 또는 지속적 통합 파이프 라인 인 빌드 파이프 라인입니다.
다른 하나는 지속적인 테스트 파이프 라인 인 테스트 파이프 라인입니다.
이제 지속적인 테스트에 대해 자세히 살펴 보겠습니다.
우리는 테스트, 모든 코드 라인 테스트… .. 매번 테스트… 다른 단계에서 테스트의 중요성을 알고 있으며, 코드 라인이 버전 제어로 업데이트 될 때 매번 수동으로 설계된 모든 테스트를 실행하는 것은 거의 불가능합니다.
여기에서 지속적인 테스트가 필요합니다.
따라서 자동화 된 연속 통합 파이프 라인에 들어가는 코드가 철저하게 테스트되고 필요한 품질이 보장되지 않는 한 고객에게 소프트웨어를 배포 할 필요가 없습니다. 코드를 철저히 테스트하지 않으면 품질을 보장 할 수 없습니다.
따라서 앞에서 정의한대로 연속 테스트는 지속적 배포 파이프 라인에서 미리 정의되고 설계된대로 코드 기반과 배포되는 여러 환경에서 다양한 유형의 테스트를 지속적으로 실행하는 것입니다.
그림에서 볼 수 있듯이 단위 테스트는 CI 서버 자체에서 발생하며 시스템의 각 단위를 개별적으로 테스트합니다.
통합 테스트는 기본적으로 함께 통합 된 구성 요소를 확인하는 통합 환경에서 발생합니다. 모든 통합 구성 요소와 인터페이스를 갖춘 BIG 시스템이 시스템 테스트 환경 등의 시스템 수준 시나리오를 통해 테스트되는 시스템 테스트 환경에서 시스템 테스트.
그리고 환경 시뮬레이션이 생산에 가까워짐에 따라 테스트의 깊이가 종종 진행됩니다.
코드가 성숙되고 환경이 복잡 해짐에 따라 여러 테스트와 더 복잡한 테스트를 천천히 추가해야하므로 프로덕션 환경으로의 진행에 따라 지속적인 테스트가 점점 더 어려워지고 길어집니다.
동일한 테스트 케이스가 전체적으로 실행되는 것이 아닙니다. 테스트 케이스는 다른 단계에서 매번 업데이트되어야하며 자동화 된 스크립트가 업데이트되어야합니다. 코드가 더 성숙 해짐에 따라 구성 및 인프라도 더 높은 수준의 환경으로 진행됩니다. 생산에 들어갈 때까지 진행합니다.
따라서 일부 통합 테스트 또는 일부 시스템 테스트 또는 부하 테스트는 실행하는 데 몇 시간이 걸리거나 시간이 걸릴 수있는 반면 단위 테스트는 실행하는 데 매우 적은 시간이 걸릴 수있는 반면 테스트가 릴리스 지점으로 진행됨에 따라 테스트를 실행하는 데 걸리는 시간도 늘어납니다. 실행하는 데 며칠.
여기서 연속 테스트는 주로 트리거를 사용하여 자동화 된 테스트 케이스를 자동으로 실행합니다. 그러나 앞서 정의한 바와 같이 연속 제공에는 특정 수동 테스트 및 게이트가 포함되며, 특정 테스트는 생산에 들어가기 전에 수동으로 수행됩니다.
이러한 중간 품질 게이트는 모든 테스트 단계에서 코드의 신뢰도를 높입니다.
따라서 지속적인 테스트 파이프 라인에는 예비 자동화 된 보안 검증과 함께 단위 테스트가 포함됩니다. 그런 다음 자동화 된 통합 테스트가 실행되는 통합 수준의 테스트로 이동 한 다음 시스템 수준 시나리오가 자동화되고 실행되는 시스템 수준으로 이동합니다.
여기에서는 특정 성능 테스트 시나리오도 수행됩니다.
그런 다음 기본적으로 자동화 된 사이트 승인 테스트 사례를 포함하는 '승인 테스트'로 이동 한 다음 마지막으로 수동 실행이 될 수 있고 테스트를 수행하기위한 최종 사용자 참여를 포함하는 '사용자 승인 테스트'로 이동합니다. 제품 또는 기능에 대한 일종의 최종 사인 오프로, 수동 게이트가 호출되고 최종적으로 프로덕션 사이트에 배포됩니다.
따라서 기본적으로 연속 테스트가 진행됨에 따라 테스트 및 테스트 환경의 복잡성이 증가하고 시뮬레이션과 같은 프로덕션에 더 가까운 환경에 도달합니다.
과거 웹 사이트 스크린 샷
이 모든 테스트 단계에는 빌드 검증 테스트, 온 전성 테스트, 스모크 테스트 및 회귀 테스트가 포함된다는 점을 특별히 언급 할 필요가 없습니다. 다시 말씀 드렸듯이 이는 지속적인 테스트 및 전달 파이프 라인에서 설계 한 내용에 따라 다릅니다.
이것은 일반적인 연속 테스트 파이프 라인이며, 제품 유형과 제품이 요구하는 다양한 테스트 수준 및 테스트 유형에 따라 팀에서 설계 할 수 있습니다.
연속 테스트에는 다음과 같이 다양한 테스트 단계에서 기능 및 비 기능 테스트를 수행하기 위해 자동화 프레임 워크를 버전 제어 및 CI 도구 및 다양한 자동화 도구와 통합해야합니다.
- 정적 코드 분석을위한 Sonar,
- 보안 코드 분석을위한 Fortify,
- 기능 테스트를위한 셀레늄,
- 부하 테스트 등을위한로드 러너,
Microsoft TFS, Jenkins, chef, puppet은 시장에서 CI-CD 파이프 라인을 설계하는 데 사용할 수있는 몇 가지 도구입니다.
그러나 문제는 이러한 도구가 사용되는 버전 제어 도구에 따라 완전한 엔드 투 엔드 자동화를 지원하지 않을 수 있으므로 코드에서 제공 파이프 라인의 엔드 투 엔드 자동화를 가능하게하는 자체 자동화 프레임 워크를 개발하는 것을 선호하는 조직은 거의 없습니다. 코드 전달에 전념하십시오.
따라서 테스트의 매우 중요한 부분 인 지속적인 테스트는 제품 또는 릴리스의 품질을 보장하며 주로 제공 품질과 속도를 결정하는 도구, 프레임 워크 등의 선택에 매우주의해야합니다.
따라서 올바른 지속적 테스트 파이프 라인을 설정하려면 지속적 배포 파이프 라인에서 시간이 조금 더 걸립니다. 도구 및 프레임 워크 부분뿐만 아니라 테스트 케이스 부분에서도 마찬가지입니다. 연속 테스트에는 내부 배포 파이프 라인 정의도 포함됩니다.
CT는 여러 단계에서 다양한 환경에 빌드를 자동으로 배포해야하므로 배포를 자동화하고 자동화 된 스크립트를 통해 환경을 설정해야합니다.
인프라 및 환경 구성을 코드로 설정하는 것을 포함하는 이러한 자동화 된 스크립트는 버전 제어 도구에 체크인되고 Delivery 파이프 라인은 배포를 수행하기 위해 버전 제어 도구에서이를 선택합니다. 이를 배포 파이프 라인이라고합니다.
이제 CT의 이점에 대해 알아 보겠습니다.
품질과 속도를 달성하는 것이 지속적인 테스트의 가장 큰 장점입니다.
테스트가 끝날 때만 발생했던 이전과 달리 전체 테스트는 지속적인 테스트의 개념이므로 전달 파이프 라인의 지속적인 테스트를 통해 팀은 원하는만큼 품질 게이트를 원하는만큼 순서대로 도입 할 수 있습니다. 필요한 품질 수준을 달성하기 위해
Windows 10에서 json 파일을 여는 방법
따라서 파이프 라인의 특정 지점이나 게이트에서 코드가 테스트에 실패하면 팀은 돌아가서 해당 지점까지 전체 배포를 자동으로 실패 할 수 있습니다.
이것은 개발팀과 운영팀 모두에게 뭔가 빠진 부분이 있고 팀이이를 해결하기 위해 노력할 수 있다는 명확한 표시를 제공합니다. 따라서 이것이 지속적인 테스트 파이프 라인의 장점과 유연성입니다.
따라서 다양한 테스트 단계에서 품질 게이트를 도입하면 파이프 라인에서 코드의 품질이 더 잘 제어됩니다.
코드가 통과하는 게이트 수가 많을수록 더 높은 수준의 품질로 프로덕션에 적용 할 수있는 코드에 대한 팀의 확신이 커집니다.
따라서 지속적인 테스트는 팀의 자신감을 높이고 지속적으로 개선하도록 장려합니다.
전반적으로 팀이 파이프 라인의 테스트 단계 또는 품질 게이트에서 테스트 실패를 실제로 무시하지 않는다면, 확실히 지속적인 테스트는 고품질 목표 달성에 대한 보너스가 될 것입니다.
따라서 연속 테스트에 대해 결론을 내리기 위해 예비 단계에서 실행되는 단위 테스트부터 승인 테스트, 성능 테스트 및 실행할 특정 수동 테스트까지 DevOps 파이프 라인에서 연속 테스트를 정의하는 데 매우 중요합니다.
이것으로 지속적 통합, 지속적 배포 및 지속적 테스트의 Part3 주제에 대한 논의를 마쳤습니다.
다가오는 튜토리얼에서 구성 관리, 릴리스 관리 및 애플리케이션 성능 모니터링.