매일 버그를 찾지 못하는 경우 QA 팀은 소프트웨어 개발에서 무엇을 합니까?
게시 됨: 2023-01-27품질 보증(QA) 엔지니어는 종종 다음과 같은 말을 듣습니다.
"당신의 팀은 어제 20개의 버그를 발견했지만 오늘은 버그가 없습니다!"
이 입장은 아무리 타당해 보일지라도 소프트웨어 개발에서 품질 보증의 목적과 목표에 모순됩니다.
QA는 소프트웨어 개발에서 정확히 어떤 일을 하나요?
이 기사에서 ITRex의 QA 부서 부국장인 Andrey Gilyov는 QA 팀이 버그를 적게 발견하더라도 유휴 상태가 아닌 이유를 설명합니다. 또한 소프트웨어 엔지니어가 코드를 테스트하는 대신 사내 또는 아웃소싱 IT 팀을 보강하기 위해 항상 QA 엔지니어를 고용해야 하는 이유를 배우게 됩니다.
QA 목표 이해 및 버그 추적에 국한되지 않는 이유
구축하려는 소프트웨어 솔루션의 유형과 복잡성에 따라 시간제 QA 전문가 또는 프로젝트에 할당된 전담 QA 팀이 필요할 수 있습니다. 그리고 이들의 책임은 버그를 정확히 찾아 프로젝트 관리자와 개발 팀에 보고하는 것 이상입니다.
특히 품질 보증 목표는 다음과 같습니다.
- 오류 방지. 최근 설문 조사에 따르면 소프트웨어 엔지니어는 시간의 약 20%를 버그 수정에 사용합니다. 그 시간에 평균 소프트웨어 엔지니어의 시급을 곱하면 결함이 있는 코드로 인해 회사에 얼마나 많은 비용이 들 수 있는지 알게 될 것입니다. 또한 오류 수정 비용은 소프트웨어 개발 워크플로의 시간이 지남에 따라 기하급수적으로 증가합니다. 보안 취약성, 고객 경험 감소, 평판 손실과 같이 버그가 많은 소프트웨어를 생산에 출시하는 장기적인 영향은 말할 것도 없습니다. 따라서 소프트웨어 개발에서 품질 보증의 주요 목적은 심각한 피해를 입히기 전에 버그를 찾는 것입니다. 이 위업을 달성하기 위해 QA 팀은 소프트웨어 솔루션을 손에 넣기 훨씬 전에 테스트를 준비합니다. 이러한 준비 활동에는 테스트 문서 검토, 테스트 계획 및 테스트 사례 작성, 적절한 테스트 도구 선택 및 테스트 환경 구성이 포함됩니다.
- 소프트웨어 상태 추적 및 평가. 소프트웨어 프로젝트에서 충분한 정보에 입각한 결정을 내리려면 프로젝트 관리자와 고객이 작업 중인 소프트웨어 제품에 대한 최신 정보가 필요합니다. 무엇보다도 품질 보증 목표에는 소프트웨어 프로젝트 일정에 따라 주어진 기간에 이 정보를 제공하는 것이 포함됩니다. 그러나 품질 보증 엔지니어는 소프트웨어 솔루션을 가동할 최적의 시간을 선택하지 않는다는 점을 언급할 가치가 있습니다. 대신 최종 결정을 내리는 것은 고객입니다. QA 팀과 상의한 클라이언트는 문서화된 버그와 오류가 포함된 소프트웨어 솔루션을 출시하기로 결정할 수도 있습니다! 예를 들어, 제품을 출시하기 위한 시간 프레임이 상대적으로 촉박하고 보상(즉, 경쟁에서 앞서거나 중요한 기능을 활성화하는 것) 사이의 절충안이 사소한 버그로 출시할 위험보다 클 때 그러한 결정을 내릴 수 있습니다. 어느 쪽이든 이러한 버그를 감지하고 문서화하고 우선 순위를 지정해야 하며 이는 QA 팀의 목표 중 하나이기도 합니다.
- 요구 사항 검증. 소프트웨어 개발에서 QA의 주요 역할은 소프트웨어 솔루션이 예상대로 작동하고 소프트웨어 요구 사항 사양(SRS) 문서에 정의된 모든 기준을 충족하는지 확인하는 것입니다. 품질 보증 전문가가 수동 또는 자동 테스트를 수행하고 버그를 식별하면 개발 팀을 위해 Jira 또는 ClickUp과 같은 버그 추적 소프트웨어 시스템에서 티켓을 생성합니다. 개발팀이 오류를 수정하면 테스트 주기가 반복됩니다. 따라서 버그를 찾는 것은 품질 보증의 목적이 아닙니다. 오히려 QA 활동의 부산물입니다.
QA 팀은 때때로 버그를 찾지 못합니다. 그리고 괜찮아
QA 목표에 대해 머리를 감았으니 이제 이 문서의 시작 부분에서 제기한 질문으로 돌아가 보겠습니다.
버그 보고서에 며칠 동안 결함이 전혀 없는 경우 QA 팀은 소프트웨어 개발에서 무엇을 합니까?
QA 전문가가 귀하의 소프트웨어에서 버그를 발견하지 못하는 몇 가지 이유가 있습니다.
- 소프트웨어는 철저한 테스트를 거쳤습니다. 소프트웨어 솔루션이 철저한 테스트를 거쳤다면 QA 주기가 반복되거나 제품이 생산에 들어갈 때 버그가 나타날 가능성이 적습니다.
- 이 소프트웨어는 심플한 디자인을 가지고 있습니다. 제한된 기능 세트, 통합 및 간단한 사용자 인터페이스를 가진 애플리케이션은 더 복잡한 아키텍처 및 성능 요구 사항을 가진 소프트웨어보다 버그를 포함할 가능성이 적습니다.
- 이 소프트웨어는 모범 사례를 사용하여 구축되었습니다. 깨끗하고 잘 문서화된 코드를 작성하고, 코딩 표준을 따르고, 버전 제어를 사용하는 소프트웨어 엔지니어링 팀은 종종 오류가 거의 없는 소프트웨어 제품을 제공합니다. 이러한 버그는 테스트 프로세스 초기에 감지되고 수정되며 이후 단계에서 더 이상 결함이 나타나지 않습니다.
- 테스트 프로세스는 보다 포괄적일 수 있습니다. 시간, 리소스 또는 기술이 부족하면 QA 전문가가 소프트웨어 솔루션을 철저히 테스트하지 못할 수 있습니다. 그 결과 일부 오류가 간과될 수 있습니다.
- 버그는 재현할 수 없습니다. 때때로 오류가 일관되게 발생하지 않기 때문에 QA 전문가가 버그를 발견하지 못할 수도 있습니다. 소프트웨어의 복잡성, 타사 라이브러리 사용 또는 외부 종속성의 존재를 비롯한 다양한 요인으로 인해 이러한 상황이 발생할 수 있습니다.
원인이 무엇이든 소프트웨어 개발에서 QA의 중요성을 과소평가해서는 안 되며, 개발자가 코드를 테스트할 수 있도록 허용하는 아이디어를 가지고 놀아야 합니다.
오해하지 마세요. 개발자가 교차 기능 애자일 팀에서 자동화된 테스트를 작성하고 실행하는 것은 괜찮습니다. 또는 소프트웨어를 수동으로 테스트할 수도 있습니다.
그러나 프로젝트 역할이 자주 공유되는 이러한 팀에서 주요 목표는 작동하는 소프트웨어 또는 기능을 더 빨리 릴리스하여 가치 창출 시간을 줄이고 조기에 피드백을 수집하는 것입니다. 여기서 우리는 이전 섹션에서 설명한 위험 대 보상 문제를 다룰 수 있습니다. 따라서 프로젝트에 기술적 부채가 누적되어 향후 성능 문제와 상당한 디버깅 비용이 발생할 수 있습니다.
전담 QA 전문가를 고용하는 다른 이유는 다음과 같습니다.
- 코딩 방법을 아는 것은 잠재적인 오류에 대해 코드를 검토하는 방법을 아는 것과 같지 않습니다.
- 개발자는 테스트를 거의 즐기지 않는 반면 QA 전문가는
- 소프트웨어 엔지니어의 시급은 일반적으로 품질 보증 전문가보다 높습니다.
- 개발자와 QA 엔지니어는 일반적으로 소프트 스킬이 다릅니다. QA의 경우 세부 사항에 대한 관심, 복잡한 시스템을 분석하는 능력 및 멀티태스킹이 중심 단계를 차지합니다. 반면에 소프트웨어 엔지니어는 종종 협업 환경에서 작업하고 한 번에 하나의 작업에 집중합니다.
따라서 QA 팀이 오늘 버그를 발견하지 못했다고 해도 품질 보증 전문가를 해고하거나 기본 개발 팀에 테스트 작업을 맡기고 싶지는 않습니다. 이 접근 방식은 단기적으로 급여를 줄일 수 있지만 소프트웨어 성능 저하 또는 버그 관련 사이버 공격으로 인해 고객을 잃는 비용은 몇 배 더 높을 수 있습니다.
소프트웨어가 제대로 작동하고 SRS 또는 기술 비전에 지정된 모든 요구 사항을 충족하며 비즈니스 목표를 달성하는 데 도움이 되는지 검증하는 데 도움이 필요한 경우 ITRex QA 전문가에게 문의하십시오!
2023년 1월 20일에 https://itrexgroup.com에 원래 게시되었습니다.