Google처럼 테스트 : 거대 기업의 모범 사례 (04.19.24)

우리는 워크 플로에서 방법과 접근 방식을 관찰하여 업계 거물로부터 많은 것을 배울 수 있습니다.

수백만 코드 라인 내에서 소프트웨어 테스트 프로세스를 어떻게 유지 관리 할 수 ​​있습니까?

수천 명의 QA 엔지니어와 함께 워크 플로를 어떻게 구성하나요?

프로젝트 확장에 어떻게 대처하나요?

Google 또는 Spotify와 같은 회사의 경험은 소규모 회사의 테스트 프로세스를 개선하는 데 도움이 될 수 있습니다.

거대 기업이 테스트하는 방법을 자세히 살펴 보겠습니다.

Google : 코드 적용 범위의 중요성

그럼에도 불구하고 많은 엔지니어들은 이러한 소프트웨어 테스트 효율성 측정의 중요성에 대해 논쟁합니다. 코드 커버리지로. Google의 전문가들은 코드 커버리지 데이터가 테스트 활동의 위험과 병목 현상을 평가하는 데 유용한 정보가 될 수 있다고 주장합니다. Carlos Arguelles, Marko Ivanković 및 Adam Bender가 코드 적용에 대한 모범 사례를 공유합니다.

  • 코드 적용 범위는 버그와 실패를 줄이는 데 도움이 될 수 있습니다. Google의 QA 엔지니어 경험에 따르면 코드 범위가 증가하면 테스트에 대한 접근 방식과 태도가 변경됩니다. 코드 커버리지를 주요 목표로하는 팀은 제품의 테스트 가능성을 높이는 경향이 있습니다. 테스트 목표를보다 쉽고 빠르게 달성하기 위해 테스트 용으로보다 효율적인 코드를 작성합니다.
  • 변이 테스트를 사용하여 높은 테스트 범위를 보장합니다. 전체 코드 범위는 낭비 일 수 있으며 고품질 테스트 범위를 보장하지 않습니다. 코드 커버리지 비율이 높다고해서 모든 기능이 올바르게 테스트되었음을 ​​의미하지는 않습니다. 코드가 전체적으로 테스트되었음을 ​​의미합니다. 높은 품질의 테스트 범위를 보장하기 위해 Google 전문가는 돌연변이 테스트를 사용하는 것이 좋습니다. 이 방법에는 작은 코드 변경을 구현하고 테스트 세트가이를 식별하는 방법을 확인하는 것이 포함됩니다.
  • 코드 적용 비율은 여러 요인에 따라 달라집니다. 높은 코드 커버리지를 목표로해서는 안되지만 커버리지가 낮 으면 많은 오류가 발생합니다. 그리고 문제는 특정 시스템에 대한 특정 코드 적용 범위가 무엇입니까? 이 질문에 답하려면 중요도, 복잡성, 코드 변경 빈도 등을 고려해야합니다. 코드 적용 범위는 비즈니스 결정이며 제품 소유자는이를 정의해야합니다.
  • 처리 할 내용을 분석합니다. 100 % 코드 적용 범위를 얻을 수 없으므로 QA 엔지니어는 코드의 가장 중요한 부분을 다룹니다. 개발자 팀은 얼마나 많은 코드 라인을 다루는지가 아니라 정확히 무엇을 다루는 지에 대해 논의하고 생각해야합니다.
Spotify : 안정적인 전략

Spotify는 빠르게 성장하는 회사입니다. 직원 150 명과 함께 2008 년에 설립되었습니다. 2019 년에 직원 수는 4,405 명으로 증가했습니다. 오늘날 Spotify는 전 세계적으로 약 3 억 명의 사용자에게 서비스를 제공하여 세계에서 가장 인기있는 스트리밍 서비스가되었습니다.

우리는 Spotify가 테스트를 확장하는 방법에 대한 교훈을 얻을 수 있습니다. 개발 프로세스.

  • QA 팀의 제품 목표를 설정합니다. Spotify에는 다기능 팀이 있습니다. 모든 팀에는 이러한 목표에 접근 할 수있는 목표와 특정 기술이 있습니다. 팀 구조는 목표에 따라 다릅니다. 따라서 일부 팀은 개발자로만 구성되고 일부 팀에는 개발자와 테스터가 있습니다. 따라서 테스터는 개발 팀과 긴밀히 협력하고 제품의 주요 목표에 집중합니다. 이러한 접근 방식을 통해 Spotify는 개발 프로세스를 효율적으로 확장 할 수 있습니다.
  • 자동화 테스트는 도구이지만 만병 통치약은 아닙니다. Spotify Kristian Karl의 테스트 및 개발 관리자는 소프트웨어 테스터를 자동화로 대체 할 수 없다고 주장합니다. 테스트에는 인간의 경험과 지식이 필요합니다. 자동화 테스트는 프로세스 속도를 높이는 강력한 도구이지만 사람이 결정을 내리고 자동화 된 보고서를 분석합니다. Spotify는 확장 도구 중 하나로 자동화를 사용합니다. 이를 통해 테스터는 알고리즘에 대한 일상을 떠나 제품 목표에 집중할 수 있습니다.
SpaceX : 지속적인 테스트는 필수입니다.

SpaceX는 상업 우주 운송, 재사용 가능한 발사 시스템 및 고효율.

공군의 최고 소프트웨어 책임자 인 Nicholas Chaillan은 SpaceX 개발 부서 시스템이 기존 워크 플로를 사용하는 회사보다 5 배 더 효율적이라고 말했습니다. SpaceX는 이러한 성능으로 테스트 프로세스에 어떻게 대처합니까?

DevOps 및 Agile 접근 방식을 통해 SpaceX QA 엔지니어는 대량 자동화 테스트를 제공 할 수 있습니다. 개발주기 동안 테스터는 즉각적인 피드백을 받고 기존 위험을 제거하기 위해 지속적인 테스트를 제공합니다. 이에 따라 그들은 사전에 자주 그리고 초기에 테스트하고 있습니다.

회사는 개발 프로세스에서 지속적인 테스트를 구현하는 방법에 대한 전략을 개발했습니다.

  • 가치를 우선시합니다. Google과 마찬가지로 SpaceX는 자동화해야 할 것과하지 말아야 할 것을 이해하기 위해 코드 커버리지 측정 항목을 사용할 것을 권장합니다. 지속적인 테스트를 최적화하고 이미 수행 한 활동을 개선하는 데 도움이됩니다.
  • 핵심은 자동화 된 종단 간 테스트입니다. 영향 분석을 지속적인 통합의 일부로 만듭니다. 이를 통해 기업은 새로운 기능을 추가하거나 코드를 변경하는 것이 전체 시스템 또는 시스템의 일부에 미치는 영향을 분석 할 수 있습니다.
  • 팀에는 안정적이고 쉽게 복제 할 수있는 테스트 환경이 있어야합니다. 가상 머신 스냅 샷과 같은 도구는 데이터 상태를 저장하고 테스트로 돌아가거나 작업을 재개하는 데 도움이 될 수 있습니다.
  • 인공 지능 및 머신 러닝을 사용하여 테스트 보고서를 분석합니다. AI 기반 도구는 배포 속도를 높이고 테스트 프로세스를 최적화합니다.
  • 강력한 지속적 통합 아키텍처를 구축합니다. CI 시스템의 주요 이점은 빌드와 코드 테스트 사이의 짧은 기간입니다. . 지속적인 테스트는 개발 프로세스에 포함되어야하며 필요한 유형의 테스트를 포함해야합니다.
  • 요약

    모든 회사는 테스트 전략, 프로세스 및 접근 방식을 가지고 있습니다. 각 팀은 궁극적 인 목표와 제품 기능에 따라 테스트 프로세스를 선택하고 조정합니다. 전문가의 주요 임무는 고객과 최종 사용자에 대해 생각하고 새로운 요구 사항에 적응하며 업계 최고의 경험을 채택하는 것입니다.


    YouTube 비디오: Google처럼 테스트 : 거대 기업의 모범 사례

    04, 2024