처음부터 QA 기능을 설정하는 방법

일반적인 시나리오입니다. 한 스타트 업 회사가 새로운 아이디어를 가지고 있으며 아이디어의 작동 모델을 구축하기 위해 여러 개발자를 고용합니다.

스타트 업의 특성으로 인해, 즉 아이디어를 개발하는 데 짧은 시간 내에 사용할 수있는 자금이 많지 않기 때문에 주요 노력은 물을 테스트하기 위해 대중에게 공개하기 위해 신제품을 구축하는 데 초점을 맞추고 있습니다. 품질 보증은 개발팀의 최우선 과제가 아닙니다.

아이디어가 성공한 것이 분명 해지면 회사는 아이디어를 확장하고 더 많은 개발자를 고용하기를 원하지만 동시에 제품이 공개되기 전에 테스트를 받기를 원합니다.


잠시 동안 테스트는 회사에있는 사람이 수행하며 따라야 할 적절한 프로세스가없는 임시적입니다.

그런 다음 스타트 업 회사가 첫 번째 선임 QA 담당자를 고용하여 개발팀을위한 새로운 QA 프로세스를 구현하기로 결정하는 시점이 있습니다.


이 문서에서는 스타트 업이 웹 기반 회사라고 가정하겠습니다. 전자 상거래 웹 사이트입니다.



품질 보증 프로세스 구현

품질 보증 프로세스의 주요 목표는 올바른 제품이 처음에 올바르게 구축되도록하는 것입니다. 즉, 코딩을 시작하기 전에 요구 사항이 올바르게 정의되고 개발팀이 새로운 기능의 기능을 확실히 이해하고 있는지 확인해야합니다.

테스트는 단계가 아니라 활동이며 테스트는 사용자 스토리가 작성되는 시점부터 개발 프로세스의 맨 처음부터 시작된다는 점에 유의해야합니다.

테스트는 개발을 지원해야하므로 테스트 활동은 개발 활동과 병행해야하며 개발 프로세스의 모든 단계에서 코드가 철저하게 테스트되었는지 확인해야합니다.


테스트 프로세스를 구현하기 전에 현재 개발 방법론과 프로세스를 알고 필요한 경우 프로세스를 개선하기 위해 조정해야합니다.

회귀 테스트 / 스프린트 테스트

회사의 첫 번째 QA 담당자로 시작하면 회귀 테스트가 이루어지지 않아 새로운 기능이 개발됨에 따라 현재 작동중인 웹 사이트에 부정적인 영향을 미치는지 알 수 없습니다. 또한 새로운 기능이 사양에 따라 제대로 작동하는지 테스트하기 위해 개발팀의 도움을 받아야합니다.

적어도 두 가지 작업이 병렬로 수행됩니다. 스프린트에서 새 스토리를 테스트하고 어느 정도의 회귀 테스트를 수행합니다.

현재 작업중인 사이트를 중단하는 것보다 새 코드에서 버그를 찾을 가능성이 더 높기 때문에 새 기능의 테스트가 우선합니다. 하지만 동시에 새로운 기능을 구축 할 때 기존 애플리케이션이 계속 작동하는지 확인하려면 회귀 테스트가 필요합니다.


회귀 테스트 팩은 응용 프로그램에 대한 업데이트가있는 즉시 실행되어야하므로 개발 팀은 빠른 피드백 응용 프로그램의 상태에.

회귀 테스트를 작성하고 새로운 기능을 테스트 할 시간이 충분하지 않습니다. 이 순환을 어떻게 끊을 수 있습니까?

일반적으로 스프린트의 처음 며칠 동안 개발자는 코딩에 바쁘기 때문에 새 기능을 잠시 테스트 할 준비가되지 않습니다. 회귀 테스트 작업을 시작할 수있는 좋은 기회입니다.

회귀 테스트에 대한 모범 사례가 있지만 일반적으로 접근 방식은 웹 사이트 전체에서 주요 핵심 사용자 여정을 식별하는 것이므로 웹 사이트의 새로운 릴리스마다 대부분의 애플리케이션이 여전히 사용할 수 있다고 확신 할 수 있습니다. 사용자.


이러한 시나리오의 전체 목록이 필요하지는 않으며, 모든 빌드에서 실행할 수있는 작은 회귀 팩을 시작하는 데 가장 중요한 주요 시나리오만으로 충분합니다. 나중에 회귀 팩이 성숙함에 따라 더 많은 시나리오를 추가 할 수 있습니다.

가장 중요한 것은 이러한 회귀 시나리오를 자동화해야한다는 것입니다.

자동화 된 테스트

스프린트가 일반적으로 약 2 주 동안 지속되는 애자일 프로젝트에서는 모든 테스트를 수동으로 수행 할 시간이 충분하지 않습니다. 새로운 스토리 테스트와 회귀 테스트가 있습니다. 새로운 기능을 테스트하기 위해 탐색 테스트를 수행하는 것이 합리적이지만 회귀 테스트를 자동화하여 동일한 테스트를 수동으로 반복적으로 실행하는 일상적인 작업을 줄여야합니다.

배포 / 빌드 파이프 라인

애자일 프로젝트의 배포 또는 빌드 파이프 라인은 제품 백 로그에서 라이브 프로덕션 사이트로 스토리를 가져 오는 방법을 정의합니다. 각 단계에서 발생하는 프로세스와 활동을 정의합니다.


품질 코드를 자주 릴리스하는 성공적인 QA 프로세스를 구현하려면 배포 파이프 라인을 정의하고 모든 이해 관계자가이를 준수해야합니다. 배포 파이프 라인은 소프트웨어 제공의 척추입니다.

파이프 라인은 모범 사례를 기반으로하고 각 단계에서 발생하는 활동을 포함해야합니다.

스토리 워크숍

애자일 프로젝트에서 가장 중요한 활동 중 하나는 빈번한 스토리 워크숍 세션입니다. 이것은 제품 소유자, 개발자 및 테스터가 한 방에 모여 이야기의 세부 사항을 정교화하고 구체화하기 시작할 때입니다. 이것은 모든 사람이 개발 작업을 시작하기 전에 이야기에 대해 동일한 이해를 가져야하기 때문에 중요합니다.

품질 보증은 탐지가 아닌 결함 예방에 관한 것이므로 스토리 워크숍에서 팀은 스토리의 세부 사항, 기술 또는 설계 제약, 스토리 개발에 대한 모든 방해 요소에 대해 질문 할 기회를 얻습니다.

여기에 스토리에 대한 승인 기준 작성을 시작할 수있는 좋은 기회가 있습니다. 모든 사람이 기여하고 각 스토리에 대해 가능한 시나리오에 대해 생각하기 시작해야합니다. 각 스토리는 서로 다른 아이디어를 가지므로 스토리에 머리가 많을수록 더 많은 시나리오를 생각할 수 있으며 결함이 발생하는 것을 방지 할 가능성이 높아집니다.

모든 사람이 각 이야기의 세부 사항과 범위를 확신하면 개발이 시작됩니다.

개발자 테스트 / 개발 중 테스트

테스터뿐만 아니라 모든 사람이 제품의 품질에 대해 책임을 져야합니다. 따라서 추가 테스트를 위해 테스트 환경에 배포하기 전에 작성된 코드가 고품질인지 확인하려면 충분한 양의 '개발자 테스트'가 필요합니다.

확실히 각각의 새로운 기능은 단위 테스트를 잘해야합니다. 그 외에도 통합 테스트, API 테스트 및 UI 테스트가 필요합니다.

동료 코드 검토 또는 '버디 테스트'는 개발자의 작업에 두 번째 눈을 놓을 수 있습니다. 테스터는 단위 테스트와 API 테스트를 검토하여 올바른 테스트가 작성되었는지 확인하고 높은 수준의 자동화 된 UI 테스트를 작성하는 데 도움을 줄 수 있습니다.

지속적인 통합 / 테스트 환경

새 기능을 효과적으로 테스트하려면 코드가 개발자의 컴퓨터뿐만 아니라 다른 환경에서도 작동하고 다른 개발자의 코드와 통합되었는지 확인해야합니다.

지속적인 통합은 프로세스 초기에 빌드 문제를 식별하는 데 도움이되므로 배포가 실패 할 때 문제의 원인을 찾을 수 있습니다.

테스트 환경은 테스터와 다른 팀원이 새로운 기능을 적용하기 전에 테스트 할 수있는 기회를 제공합니다.

비 기능 테스트

필요한 경우 성능, 부하 및 보안 테스트와 같은 비 기능 테스트도 수행해야합니다. 기능이 제대로 작동하는지 확인하는 데 초점을 맞추는 경우가 많지만, 비 기능 테스트는 특히 웹 애플리케이션이 과도한 부하 및 / 또는 공격을받을 수 있으므로 동일한 우선 순위를 부여해야합니다.

비 기능적 테스트를 수행함으로써 애플리케이션이 피크 시간 동안로드를 처리 할 수 ​​있고 보안 위협에 노출되지 않는지 확인할 수 있습니다.

고려해야 할 기타 사항

  • 크로스 브라우저, 크로스 디바이스 테스트
  • 모바일 및 태블릿 테스트
  • 자동화 된 테스트의 병렬 실행
  • 탐색 적 테스트
  • Jira, Jenkins, Selenium 등과 같은 도구…
  • 지속적인 개선
  • 테스터 모집