grep

QA

JIRA Bug(Defect) 넌 뭐니?

Joseph여기어때

2022년 8월 23일

원문에서 보기 ↗

QA팀에서 등록한 Bug(Defect)의 work flow 소개

안녕하세요. 여기어때컴퍼니 QA팀 요셉입니다~!

이번에 작성할 글은 흔히들 Bug라고 부르는 Defect에 대해서 작성을 하려고 합니다. 기술총괄 뿐 아니라 Product총괄에서도 신규입사하신 분들이 많아 기존에 Jira를 사용하지 않으셨던 분들은 Defect의 등록부터 해결까지 Flow와 Defect의 상태별 활동들에 대해 모르실 수도 있을 것 같아 작성을 하게 되었습니다.

우선 Bug(Defect)란 무엇일까요??

가장 먼저 뇌리에 떠오르실 그런 벌레는 아니고… 소프트웨어에서 발생하는 에러/오류 입니다. 결함, 에러, 오류, 이슈, 문제 등 다양한 이름으로 부르고 있습니다.

소프트웨어에서 Bug의 명칭은 초기 컴퓨터인 Mark.2에 문제가 있어 케이스를 열어보니 조그마한 벌레 한 마리가 컴퓨터의 회로에 들어가 문제를 발생했다는 이야기에서 유래하게 되었습니다.

소프트웨어에서 Bug(Defect)는 어떻게 생기게 될까요?

Bug(Defect)는 Error로 시작해서 Defect으로 변신하고 환경 혹은 또 다른 Defect으로 인해 Failure로 변화됩니다. 그림으로 보면 아래와 같습니다~

Error는 제품 개발에 참여한 누군가의 실수로 인해 발생하며,

Bug(Defect)는 예상결과와 실제 결과 간의 차이 입니다. Bug(Defect)는 지정된 요구사항 및 기준을 준수하지 못한 경우 QA팀 혹은 제품 개발에 참여한 모두가 찾은 Error 입니다.

Failure는 실제 운영 환경에서 시스템이 예상대로 작동하지 않은 경우 발생하게 됩니다.

사소한 실수(Error)로 시작해서 Bug(Defect)가 되고 나비효과처럼 큰 장애(Failure)가 될 수 있습니다. 장애까지 가는 걸 막기 위해 저희는 Bug(Defect)를 발견하고 개발팀에서는 이를 Debugging 하여 배포를 하게 되는 겁니다.

QA팀에서 Jira에 등록하는 이슈는 모두 Bug(Defect)이며 그로 인해 실제 운영 환경에서 발생한 장애는 Failure라고 생각하시면 됩니다.

실제 운영 환경에서 발생할 숨어 있는 장애(Failure)가 되기 전에 Bug(Defect)를 발견하여 해결하는 활동을 JIRA를 통해 하고 있고 이걸 저희는 Bug traking tool이라고 합니다.

Jira에서는 Bug(Defect)를 생성, 수정, 관리, 삭제하는 일련의 활동을 하고 있습니다.

아래는 현재 QA팀에서 진행하고 있는 Bug(Defect) 등록부터 해결까지 일련의 Work flow 입니다.

신규 요청 : QA팀 혹은 제품 개발에 참여한 그 누구라도 Bug(Defect)를 발견하면 등록하는 첫 단계입니다. 신규요청에서 다음 단계로 진행과 의사결정필요, 보류 이렇게 3가지로 나눠지게 됩니다. QA팀에서는 신규 요청 시 중요한 건 이슈 담당자에게 “이해하기 쉽게 전달” 목적을 가지고 작성을 합니다. 그중 우선순위, 설명, 첨부파일을 이해하기 쉽게 전달하기 위한 중요한 데이터라고 생각합니다.

의사결정필요 : 이 단계에는 이슈 담당자가 이해관계자의 협의가 필요한 경우 변경하는 상태로 PO, UX, 개발자, QA 등 이슈와 관련된 이해관계자가 진행을 할지, 보류를 할지 결정하는 상태입니다. 다음 단계로는 신규요청이 있습니다.

진행 : 이슈 담당자에게 이슈가 할당되어 수정 중인 상태입니다. 이슈가 신규요청되어 이슈담당자에게 할당된다면 이슈담당자는 상태를 진행으로 변경 후 수정 진행하게 됩니다. 진행에서 다음 단계로는 개발/기획완료, 보류로 분리됩니다.

개발/기획 완료 : 수정완료된 상태입니다. 이때 이슈담당자는 댓글에 수정된 내용을 같이 기입해주셔야 합니다.

댓글에 간혹 기입없이 상태만 변경 해주시는 분, Text로 “수정완료"만 기입 하신 분도 있습니다. QA팀에서 확인테스트 및 리그레이션 테스트를 진행하기에 앞서 개발팀에서 적어주신 댓글을 참고하여 테스트를 진행합니다. 이슈의 원인과 결과(수정내용) 등을 적어주시면 Side effect 발생을 최소화 할 수 있습니다.

개발/기획 완료에 있을때 QA팀에서는 이슈의 확인테스트를 진행하게 되고 그 결과에 따라 다음 단계인 재요청, 완료, 현상태요청으로 상태가 변경되게 됩니다.

재요청 : 재 요청은 개발/기획 완료 단계에서 이슈가 재현될 경우 재 수정을 요청하는 상태입니다. QA팀 혹인 이슈 보고자가 상태를 변경하며 댓글엔 발생되는 결과등을 작성하여 재 요청을 하게 됩니다. 재 요청의 다음 단계는 진행, 보류가 있습니다.

보류 : 보류는 추후 수정을 원하는 이슈들을 모아두는 백로그라고 생각하시면 됩니다. 개발자 혹은 PO분들이 해당 이슈가 우선순위가 낮고 수정에 기간이 필요한 경우, 현재 수정이 불가한 경우 등 추후에 수정할 이슈들의 상태를 변경하게 됩니다. 최종 결정은 이슈를 등록/보고한 자가 보류 결정을 하게 됩니다. 보류의 다음 단계는 재요청, 완료(QA), 현상태유지가 있습니다.

현상태유지(KEEP GOING) : 현상태유지는 협의된 사항이거나 정책적으로 이슈가 아닌 것을 말합니다. QA팀에서 이슈로 등록했으나 협의를 거쳐 수정 없이 그대로 배포를 한다는 내용입니다.

완료(QA) : 개발/기획 완료 상태에 있는 이슈들을 QA팀 혹은 이슈 보고자가 확인테스트와 리그레이션 테스트를 진행하여 수정 됨을 확인하고 사이드 이펙이 없는지 확인합니다. 완료가 된 상태에서도 이슈가 다시 재현되면 재 요청으로 이동할 수 있습니다.

JIRA에 등록한 Bug(Defect)관련 업무 요청은 생성부터 해결까지 개발팀, 기획팀, UX, DA, QA 분들의 의사소통 창구 중 하나 입니다. 잘못된 정보, 이해하지 못하는 언어 등은 의사소통에 큰 문제를 일으키기 때문에 정확한 정보와 간결하고 쉽게 이해할 수 있는 언어로 작성이 되어야 합니다.

지금까지 Bug(Defect)의 개념과 Work flow를 알려드렸습니다.

두 가지는 꼭 기억해주세요~

Bug(Defect)는 누구를 탓하는 게 아니라 프로젝트에 참여한 분들의 품질이라는 목표를 가진 의사소통 창구라고 생각해주시면 좋을 것 같습니다.

QA팀은 여기어때의 품질을 더욱 높이기 위하여 꾸준히 노력하도록 하겠습니다~

긴 글 읽어 주셔서 감사합니다~!!