DevOps의 지속적인 테스트

지속적인 테스트란 무엇입니까?

지속적인 테스트 DevOps에서는 소프트웨어 개발 수명 주기의 모든 단계에서 소프트웨어를 테스트하는 소프트웨어 테스트 유형입니다. 지속적인 테스트의 목표는 조기에 테스트하고 자주 테스트하여 지속적인 전달 프로세스의 모든 단계에서 소프트웨어 품질을 평가하는 것입니다.

DevOps의 지속적인 테스트 프로세스에는 개발자, DevOps, QA 및 Opera시스템.

지속적인 테스트는 어떻게 다릅니까?

지속적인 테스트
지속적인 테스트

기존 테스트 방식은 핸드 오프 중심이었습니다. 소프트웨어는 한 팀에서 다른 팀으로 전달되었습니다. 프로젝트에는 명확한 개발 및 QA 단계가 있습니다. QA 팀은 항상 품질을 보장하는 데 더 많은 시간을 원했습니다. 목표는 품질이 프로젝트 일정보다 우선해야 한다는 것이었습니다.

그러나 기업은 최종 사용자에게 더 빠른 속도로 소프트웨어를 제공하기를 원합니다. 소프트웨어가 최신일수록 더 효과적으로 마케팅할 수 있고 회사의 수익 잠재력도 높아집니다. 따라서 새로운 테스트 방법이 개발되었습니다.

연속이란 중단 없이 지속적으로 테스트가 수행되는 것을 의미합니다. 지속적인 DevOps 프로세스에서 소프트웨어 변경(릴리스 후보)은 개발에서 테스트, 배포로 지속적으로 이동합니다.

지속적인 DevOps 프로세스
지속적인 DevOps 프로세스

코드는 지속적으로 개발, 제공, 테스트 및 배포됩니다.

예를 들어, 개발자가 Jenkins와 같은 소스 코드 서버에서 코드를 확인할 때마다 자동화된 단위 테스트 세트가 지속적인 프로세스로 실행됩니다. 테스트가 실패하면 빌드가 거부되고 개발자에게 알림이 전송됩니다. 빌드가 테스트를 통과하면 성능, QA 서버에 배포되어 포괄적인 기능 및 부하 테스트를 실시합니다. 테스트는 병렬로 실행됩니다. 테스트가 통과하면 소프트웨어가 프로덕션에 배포됩니다.

지속적인 테스트는 지속적인 개발, 통합 및 배포 주기의 작은 톱니바퀴입니다.

현재 테스트 스택
현재 테스트 스택

소프트웨어 개발은 ​​과거와 같지 않습니다. 우리는 개발을 한 달에서 몇 주로 단축했습니다. 현재 테스트 스택(위 그림 참조)의 제목은 UI 테스트입니다. 그러나 목표는 점점 더 자동화된 단위 테스트를 갖는 것입니다.

지속적인 테스트는 테스트 자동화와 어떻게 다릅니까?

테스트 자동화와 지속적인 테스트

매개 변수 테스트 자동화 지속적인 테스트
정의 테스트 자동화는 작업을 자동화하기 위해 도구나 소프트웨어를 사용하는 프로세스입니다. 지속적인 품질 및 개선 달성에 초점을 맞춘 소프트웨어 테스트 방법론입니다.
목적 유사하거나 반복적인 작업 세트로, 기계는 실수를 줄이고 더 빠르게 실행할 수 있습니다. 지속적인 테스트 프로세스는 위험을 찾아 해결하고 제품 품질을 향상시키는 데 도움이 됩니다.
필요 조건 지속적인 테스트를 통합하지 않고도 테스트 자동화가 가능합니다. 테스트 자동화 없이는 지속적인 테스트를 구현할 수 없습니다.
Time 소프트웨어 출시에는 한 달에서 몇 년이 걸릴 수 있습니다. 소프트웨어 릴리스는 매주 또는 매시간 릴리스될 수 있습니다.
피드백 각 릴리스를 테스트한 후 정기적인 피드백을 제공합니다. 각 단계의 피드백은 즉각적이어야 합니다.
연혁 테스트 프로세스를 더 빠르게 만들기 위해 수십 년 동안 자동화된 테스트가 수행되었습니다. 지속적인 테스트는 비교적 새로운 개념입니다.

지속적인 테스트를 수행하는 방법

  • 사용자 스토리/요구사항에서 테스트 자동화 제품군을 생성하는 도구 사용
  • 테스트 환경을 만듭니다.
  • 생산 데이터를 복사하고 익명화하여 테스트 데이터 베드를 만듭니다.
  • 서비스 가상화를 사용하여 API 테스트
  • 병렬 성능 테스트

지속적인 테스트 도구

다음은 선별된 최고의 목록입니다. 지속적인 테스트 도구 :

1) 쿼리서지

쿼리서지 지속적인 데이터 테스트를 위한 최초의 Full DevOps 솔루션인 스마트 데이터 테스트 솔루션입니다. 주요 기능에는 60개 이상의 호출을 갖춘 강력한 API, 상세한 데이터 인텔리전스 및 데이터 분석, 지속적인 테스트를 위한 DevOps 파이프라인과의 원활한 통합, 대량의 데이터를 신속하게 확인하는 기능이 포함됩니다.

무료로 테스트 시작하기

2) 젠킨스

Jenkins는 다음을 사용하여 작성된 지속적인 통합 도구입니다. Java 언어. 이 도구는 GUI 인터페이스 또는 콘솔 명령을 통해 구성할 수 있습니다.

링크를 다운로드 : https://jenkins.io/

3) 트래비스

Travis는 GitHub에서 호스팅되는 지속적인 테스트 도구입니다. 호스팅 및 온프레미스 변형을 제공합니다. 다양한 언어와 좋은 문서를 제공합니다.

링크를 다운로드 : https://travis-ci.org/

4) Selenium

Selenium 오픈 소스 소프트웨어 테스트 도구입니다. 다음과 같은 모든 주요 브라우저를 지원합니다. Firefox, 크롬, IE, 사파리. Selenium WebDriver는 웹 애플리케이션 테스트를 자동화하는 데 사용됩니다.

링크를 다운로드 : https://www.seleniumhq.org/

지속적인 테스트의 이점

  • 소프트웨어 제공 가속화
  • 지속적인 테스트를 통해 코드 품질이 향상됩니다.
  • 이는 정확한 비즈니스 위험 범위를 평가하는 데 도움이 됩니다.
  • DevOps 프로세스에 원활하게 통합됩니다.
  • 몇 달이 걸리던 작업을 단 몇 시간 만에 민첩하고 신뢰할 수 있는 프로세스로 만드는 데 도움이 됩니다.
  • 지속적인 피드백 메커니즘을 통해 출시 기간을 단축합니다.
  • 기존에 사일로화된 팀을 통합하여 현대적 기업 요구 사항을 충족합니다. 개발, 테스트 및 운영 팀 간의 단절을 해소합니다.
  • 테스트 자동화는 모든 관련 테스트에 대해 동일한 구성을 유지함으로써 일관성을 달성하는 데 도움이 됩니다.
  • 비즈니스 위험을 완화하기 위한 비즈니스 기대치를 강조합니다.
  • Service Virtualization을 통한 유비쿼터스 테스트 환경 접근 제공

지속적인 테스트의 과제

  • 기존 프로세스는 개발 및 QA 전문가 간의 문화적 변화를 제한합니다.
  • Agile 및 DevOps 환경에서 테스트하기 위한 DevOps 기술과 적절한 도구가 부족합니다.
  • 프로덕션 환경을 전혀 반영하지 않는 이기종 테스트 환경.
  • 기존 테스트 프로세스와 느슨하게 정의된 테스트 데이터 관리.
  • 코드 통합 주기가 길어지면 통합 문제가 발생하고 결함 수정이 늦어집니다.
  • 부족하고 비효율적인 리소스 및 테스트 환경
  • DevOps 도입을 제한하는 복잡한 애플리케이션 아키텍처와 비즈니스 로직.

결론

  • 소프트웨어 엔지니어링에서 지속적인 테스트는 초기에 테스트하고, 자주 테스트하고, 어디서나 테스트하고, 자동화하는 프로세스입니다.
  • 기존 테스트 방식은 핸드오프 중심이었습니다. 소프트웨어가 한 팀에서 다른 팀으로 전달됩니다.
  • 젠킨스, 트래비스, Selenium 인기 있는 지속적인 테스트이며 통합 도구.
  • 지속적인 테스트는 전달 파이프라인의 각 단계에 따라 실행 가능한 피드백을 제공합니다.
  • 지속적인 테스트는 코드 품질을 향상시키는 데 도움이 됩니다.
  • 기존 프로세스는 개발 및 QA 전문가 간의 문화적 변화를 제한합니다.
  • 코드 통합 주기가 길어지면 통합 문제가 발생하고 결함 수정이 늦어집니다.