>  기사  >  CI/CD 파이프라인의 자동화된 테스트: 유형 및 단계

CI/CD 파이프라인의 자동화된 테스트: 유형 및 단계

百草
百草원래의
2024-04-16 14:05:58996검색

소프트웨어 개발 수명 주기에서 CI/CD(지속적 통합 및 지속적 전달) 파이프라인에 통합된 자동화된 테스트는 소프트웨어 품질을 보장하는 데 중요합니다. 자동화된 테스트는 오류를 빠르게 찾고, 수동 작업을 줄이고, 테스트 정확도와 적용 범위를 향상시키는 데 도움이 됩니다. CI/CD 파이프라인에서는 실행 속도를 높이기 위해 병렬로 실행할 수 있는 단위 테스트, UI 테스트, 통합 테스트를 포함하여 일반적으로 빌드가 완료된 후 코드가 배포되기 전에 자동화된 테스트가 수행됩니다. 통합 테스트는 애플리케이션 구성 요소 간의 상호 작용을 테스트하고 시스템의 전체 기능을 검증하므로 CI/CD 파이프라인에서 특히 중요합니다.

CI/CD 파이프라인의 자동화된 테스트: 유형 및 단계

이전 기사에서는 애자일 팀을 위한 자동화된 테스트 사례의 다양한 사용 사례에 대해 논의했습니다. 한 가지 시나리오는 팀이 테스트를 모든 빌드와 통합하고 빌드 프로세스의 일부로 지속적인 통합을 구현하려는 경우입니다.

이 기사에서는 지속적인 통합/지속적인 전달 플랫폼의 통합 테스트에 대해 설명합니다.

기본부터 시작하겠습니다.

자동 테스트란 무엇인가요?

소프트웨어 테스팅은 일련의 테스트 사례를 기반으로 테스트를 실행하고 실제 결과와 예측 결과를 비교하는 것을 말합니다. 이 프로세스 동안 따라야 할 몇 가지 단계와 테스트 기술이 있습니다. 테스트는 제품 품질을 보장하는 데 필수적입니다. 이 프로세스는 일반적으로 테스터 팀에 의해 수동으로 수행됩니다. 그러나 자동화된 테스트에서는 소프트웨어 도구와 기술을 사용하여 프로세스가 자동화됩니다. 여기서는 수동 단계가 더 이상 필요하지 않지만 스크립트가 자동으로 생성되고 테스트 사례가 실행됩니다. 자동화된 테스트는 인적 오류, 적용 범위 및 기타 여러 문제를 제거합니다. 또한 시간을 절약하고, 테스트 수행의 편의성을 향상시키며, 효율성과 효과성을 높입니다.

CI/CD 파이프라인의 자동화된 테스트

빠른 실행 테스트는 개발자에게 초기 피드백을 제공하므로 자동화된 테스트는 CI/CD 파이프라인의 핵심 부분입니다. 조기에 발견된 문제나 오류는 더 빨리 수정될 가능성이 있습니다. 결과적으로 게시된 제품은 더욱 정확하고 오류가 없게 됩니다. 이를 통해 제품의 전반적인 품질이 향상되어 고객 만족을 얻을 수 있습니다. 간단히 말해서 CI/CD 파이프라인에서 자동화된 테스트의 장점은 다음과 같습니다.

  • "빠른 구축, 빠른 실패"라는 CI/CD 개념에 맞춰

  • 수동 작업량을 줄여 비용 절감 시간과 오류 섹스의 가능성을 줄입니다.

  • 테스트 케이스 수가 늘어날수록 테스트 결과가 더 정확해지고 더 넓은 영역을 다룰 수 있습니다.

  • 모든 문제에 대해 즉각적인 피드백 받기

  • 품질과 일관성을 보장하기 위해 여러 테스트 결과를 생성하고 비교할 수 있음

CI/CD 파이프라인에 사용되는 자동화된 테스트 유형

  • 단위 테스트: 이는 모듈을 코딩하고 검토한 후 수행되는 저수준 테스트입니다. 테스트 케이스는 개별 구성 요소를 테스트하도록 설계되었습니다. 그 목적은 모든 구성 요소가 어떤 상황에서도 예상대로 작동하는지 확인하는 것입니다.

  • 통합 테스트: 통합은 애플리케이션 내 구성 요소의 상호 작용을 테스트하는 것을 의미합니다. 이 테스트는 모든 모듈이 단위 테스트된 후에 수행됩니다. 주요 목표는 모듈 인터페이스를 테스트하고 한 모듈이 다른 모듈의 함수를 호출할 때 매개변수 전달에 오류가 있는지 확인하는 것입니다.

  • 시스템 테스트: 테스트는 완전히 개발된 시스템을 검증하고 요구 사항 사양 문서를 준수하는지 확인하도록 설계되었습니다. 일반적으로 이 단계에서는 잠재적 사용자가 소프트웨어를 사용할 준비가 됩니다. 이러한 유형의 시스템 테스트를 알파(조직 내 개발 팀에서 수행), 베타(선택한 사용자/고객 그룹에서 수행) 또는 승인 테스트(제공된 시스템의 승인을 결정하기 위해 사용자/고객이 수행)라고 합니다.

지속적 통합과 지속적 전달이란 무엇인가요?

간단히 말하면 지속적인 통합을 통해 개발 팀은 코드를 공유 저장소에 통합할 수 있습니다. 이는 코드 품질을 유지하고 코드의 로컬 버전과 관련된 잠재적인 문제를 조기에 식별하는 데 도움이 됩니다.

지속적 전달은 종종 "지속적 배포"라고도 합니다. 개발팀이 지속적으로 병합하는 모든 것은 라이브 환경에 지속적으로 배포되고 있습니다.

대부분의 개발자는 병렬로 작업하기 때문에 코드를 저장소에 지속적으로 통합한다는 것은 마스터 브랜치가 새로운 기능으로 지속적으로 업데이트된다는 것을 의미합니다. 너무 빠르게 발생하는 변경으로 인해 코드 품질이 저하되지 않도록 하려면 테스트를 동일한 속도로 실행해야 합니다.

당연히 이 환경에서 수동 테스트가 이 목표를 달성하는 최선의 방법은 아닙니다. 자동화된 테스트는 CI/CD 파이프라인에서 성공적인 테스트를 위한 핵심입니다.

9 지속적 제공 단계

  • 개발: 개발자는 프로젝트 요구 사항 또는 기능 요청을 기반으로 코드를 작성합니다.

  • 테스트 작성: 코드를 작성한 후에는 테스트를 작성해야 합니다. 이 시점에서 이러한 테스트는 일반적으로 개발자가 작성한 단위 테스트입니다.

  • 로컬 테스트: 그런 다음 로컬 테스트를 수행하여 모든 테스트가 통과하는지 확인하고 코드가 손상되지 않는지 확인하세요. 일반적으로 백분율은 실행 중인 테스트가 충족해야 하는 합격률로 설정됩니다.

  • 리베이스 및 충돌 해결: 실제 개발 시나리오에서는 여러 사람이 코드를 병합합니다. 개발자는 자신의 브랜치가 항상 업데이트되는지 확인해야 합니다. 최신 병합 코드로 브랜치를 업데이트하는 것을 "리베이스"라고 합니다. 위치가 변경되면 해결해야 할 일부 충돌이 발생할 수 있습니다. 그런 다음 리베이스된 코드에 대해 테스트를 다시 실행하세요.

  • 커밋: 테스트가 통과되면 코드는 모든 변경 사항을 커밋할 준비가 됩니다.

  • 빌드: 그런 다음 개발된 소스 코드를 어셈블하여 환경이 로컬인 서버와 같은 인스턴스에서 실행할 수 있는 배포 아티팩트를 빌드합니다. 이제 이 코드를 다른 테스트 환경에 배포할 준비가 되었습니다.

  • UAT: 그런 다음 코드가 테스트 서버에 배포되고 테스터가 기능 테스트를 시작합니다. 이러한 테스트는 자동화되거나 수동으로 수행될 수 있습니다.

  • Merge: 테스트 중인 커밋이 테스터에 의해 승인되면 마스터 브랜치로 병합됩니다.

  • 프로덕션 배포: 코드가 병합되면 프로덕션에 배포됩니다.

개발자가 코딩한 모든 빌드는 위 프로세스를 완료해야 합니다.

CI/CD 파이프라인에서 자동화된 테스트는 어디에 적합합니까?

이상적으로는 빌드 단계가 완료되고 코드를 배포할 수 있으면 자동화된 테스트가 수행됩니다. 이 단계에서는 단위 테스트, UI 테스트 및 통합 테스트를 모두 실행할 수 있습니다. 이러한 테스트는 코드가 품질 표준을 충족하는지 확인하는 데 도움이 됩니다.

이 단계는 자동화 구성 방식에 따라 몇 분에서 몇 시간까지 지속될 수 있습니다.

테스트를 병렬로 실행하여 더 빠르게 실행할 수 있습니다. 테스트 단계에서 코드가 실패하면 수동 테스트 시간을 추가로 투자하지 않고도 빌드가 거부될 수 있습니다.

CI/CD용 도구

  • Jenkins: Jenkins는 지속적인 통합을 위한 오픈 소스 도구입니다. 무료로 사용할 수 있으며 인터페이스와 스크립트를 통해 작업을 구성할 수 있습니다.

  • Travis CI: 이 도구는 오픈 소스 프로젝트에 대해 무료이며 GitHub에서 호스팅됩니다.

  • Gitlab: Gitlab은 CI에 대한 자체 클라우드 기반 접근 방식을 갖춘 버전 제어 도구입니다. 여러 플랫폼에서 지원되며 무료 버전과 유료 버전이 모두 있습니다.

  • Bamboo: Bamboo는 Jira용 CI 도구입니다. 조직에서 Jira를 사용하는 경우 이 도구를 확인하는 것이 도움이 될 것입니다. 또한 티켓 승인 시 자동 병합도 지원합니다.

테스트 자동화를 최대한 활용하기 위한 CI/CD 파이프라인 모범 사례

  • 점증적 변경: 항상 기능별 접근 방식을 따르는 것이 좋습니다. 기능이 정말 큰 경우에는 더 작고 빠르게 테스트할 수 있는 기능으로 나누는 것이 좋습니다. 이는 문제가 발생하는 경우 근본 원인을 식별하는 것이 더 쉽기 때문에 자동화에 중요합니다. 헌신이 너무 크면 문제의 원인을 알아내는 것이 어려운 작업이 될 것입니다.

  • 자동화할 수 있는 항목 결정: 팀이 신속하게 "모든 것을 자동화하자"고 말하는 것이 일반적이지만 이는 흔한 실수입니다. 자동화의 목적을 이해하고 자동화해야 하는 테스트 사례를 식별해야 합니다.

  • 병렬 테스트: 테스트를 보다 효율적이고 시기적절하게 만들려면 테스트를 병렬로 실행해야 합니다. 테스트 실행에 필요한 시간을 크게 줄여 결과를 더 빠르게 얻을 수 있습니다. 그러나 단순히 이러한 테스트를 병렬로 실행하는 것만으로는 충분하지 않으며 테스트 속도를 실제로 높이려면 테스트를 실행하는 서버의 크기를 확장하는 것도 중요합니다.

결론

자동화된 테스트는 품질 표준을 유지하면서 프로젝트를 성공적으로 배포하는 데 중요한 부분입니다. 모든 단계에서 테스트가 실행되도록 하면 코드 품질에 대한 투명성이 높아집니다. 오류를 조기에 발견할 수 있으며 이로 인해 발생한 지연을 즉시 해결할 수 있습니다. 통합 테스트를 위한 CI/CD 파이프라인이 있으면 테스트 및 배포 프로세스 속도를 높이는 데 도움이 됩니다.

위 내용은 CI/CD 파이프라인의 자동화된 테스트: 유형 및 단계의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.