|
|
|
|
|
 |
저는 이 변수를 피하지 않고, 변수를 전제로 한 품질을 만들고 싶습니다.
테스트 자동화와 데이터 기반 품질관리를 병행했습니다.
그리고 릴리스 후보가 나올 때마다 같은 테스트가 같은 기준으로 실행되게 만들었습니다.
실패를 관찰 가능한 형태로 만들고, 기준을 합의하고, 회귀를 막는 구조를 만들었기 때문입니다.
품질은 "찾아내는 능력"도 중요하지만, 더 본질은 "다시 나오지 않게 만드는 구조"입니다.
저는 기능 확인에 머무르지 않고, 실패조건을 정의하고 지표로 기준을 고정하며, 재현 어려운 문제를 재현 가능하게 만드는 방식으로 품질을 설계해왔습니다.
자동화는 목적이 아니라, 사람이 더 중요한 결함을 찾게 만드는 수단입니다.
결함 데이터를 기반으로 리스크를 예측하는 간단한 품질대시보드를 만들고 싶습니다.
|
|
|
 |
제가 Quality Engineer 직무를 선택한 이유는 단순합니다.
어떤 조건에서, 어떤 속도로, 어떤 입력이 들어와도, 어떤 로그가 남아야 정상인지가 명확하지 않았습니다.
테스트 케이스는 체크리스트가 아니라 약속입니다.
저는 그 약속을 만드는 사람이 되고 싶습니다.
무엇을 어떻게 검증할지, 어디에리스크가 몰리는지, 결함을 발견했을 때 어떤 정보가 있어야 개발이 빨라지는지, 출시 이후 어떤 신호로 이상을 감지할지까지 설계하는 역할입니다.
특히 슈프리 마처럼 하드웨어 장비, 펌웨어, 모바일 또는 PC클라이언트, 서버 및 관리시스템이 연결되는 제품 영역에서는 , 품질은 단일 기능의 정오 판정으로 끝나지 않습니다.
저는 작은 기능을 만들어도 바로 테스트 관점으로 되돌아가, 요구사항을 실패 조건으로 바꾸는 훈련을 했습니다.
예를 들어 어떤 기능이 "정상동작"한다고 할 때, 저는 바로 질문을 던집니다.
정상은 어떤 입력 범위에서 성립하는가, 오류는 어떤 코드로 반환되는가, 오류가 발생하면 로그에 어떤 키가 남아야 추적 가능한가, 재시도 정책은 무엇인가, 타임아웃은 어디에서 발생해야 하는가 같은 질문입니다.
이런 질문을 습관화하면서, 테스트 케이스를 기능 설명의 복사본이 아니라 결함을 찾는 도구로 만들었습니다.
그 프로젝트의 특징은 개발이 어렵다
드물면 재현이 어렵고, 재현이 어렵다면 개선은 운에 기대게 됩니다.
저는 허용 가능한 실패율과 응답 시간의 상한을 제안했고, 그 기준을 테스트의 합격 조건으로 고정했습니다.
실패를 관찰 가능한 형태로 만들고, 기준을 합의하고, 회귀를 막는 구조를 만들었기 때문입니다.
응답 시간, 실패율, 재현빈도, 결함재발률, 모듈별 결함 밀도처럼 측정 가능한 형태로 기준을 만들고, 그 기준을 테스트에 박아 넣습니다.
재현이어 려운 문제를 "재현 가능하게 만드는 집요함"입니다.
대신 빠르게 핵심 리스크를 잡고, 반복 검증 영역을 자동화로 묶어 팀이 체감하는 속도를 먼저 만들겠습니다.
가장 힘들었던 경험은, 현장에서 만나타나는 간헐 오류를 책임지고 해결해야 했던 순간입니다.
두 번째 단계는 재현률을 올리는 실험설계였습니다.
저는 기능 확인에 머무르지 않고, 실패조건을 정의하고 지표로 기준을 고정하며, 재현 어려운 문제를 재현 가능하게 만드는 방식으로 품질을 설계해왔습니다.
릴 리스 전 결함 발견률과 릴리스 후결함 발생률을 같이 봐야 검증의 실효성을 판단할 수 있기 때문입니다.
마지막으로 반복성이 높은 구간은 자동화해 릴리스마다 동일 기준으로 검증되게 하겠습니다.
회귀테스트, 핵심 시나리오의 엔드투엔드 검증, API 계약 테스트, 데이터 정합성 검증처럼 매릴리 스마다 동일하게 확인해야 하는 영역은 자동화로 묶어야 합니다.
자동화가 유지보수 비용을 초과하면 오히려 품질이 떨어집니다.
그래서 저는 자동화 대상 선정 기준을 명확히 하겠습 니다.
변경이 잦지 않고, 실패 비용이 크고, 재현절차가 명확한 영역부터 자동화하겠습니다. |
 |
결함, 테스트, 실패, 만들다, 품질, 재현, 어떻다, 자동화, 검증, 기준, 발생, 이다, 반복, 조건, 환경, 영역, 가능하다, 문제, 회귀, 정상 |
|
|
|
|
|
|
 |
|
|
|
|
|
|
|
|
|
|
|
| |
|
|
|