안녕하세요.
버그 재현하기위한 방법이 궁금합니다.
(로깅에 관련된 글을 보고나니 문뜩 버그발생시 관련된 정보를 수집 할 수 있겠다는 생각이 드는군요.)
버그 재현이 왜 필요하고 어떻게 버그를 재현 할 수 있을까요?
이용자에게 버그(“나 이러이러한 버그를 겪었다”)를 통보 받았습니다.
버그를 바로잡고 싶어도 난감한 점은 해당 버그를 파악하기 힘듭니다.
버그 재현은 버그를 파악하고 수정하는데 많은 기여를 한다고 생각합니다.
- 어떠한 상황과 환경에서 일어나는지 재현을 통해 “아 이러이러한 부분에서 버그가 발생하는구나”
라고 유추 할 수 있다고 봅니다.
그래서 버그를 재현하기위해 어떤 것이 필요할까요?
버그가 발생된 같은 환경과 상황을 만들어주면 되겠죠.
하지만 이용자와 같은 경험이 없기 때문에 버그와 관련된 정보를 얻기 힘듭니다.
따라서 이용자에게 버그 발생시 어떤 상황(동작), 동작환경 등을 묻습니다.
(Window 11, 데스크탑 앱, “글을 작성하던 중 Alt + F4
를 누르니 앱이 꺼졌어요”) 네 ??
이 것은 좋은 방법이긴 하나, 문제점으로는 이용자의 대답에 강력히 의존적이라는 것입니다.
만약 이용자가 잘못된 기억, 지식 등(또는 나의 문제로)
의사소통에 문제가 생긴다면 버그 재현이 힘들어 질 것입니다.
그럼 버그 재현하기 위해 또 다른 방법은 없을까요?
이 것이 고민입니다.
(정확히는 버그 제로?=> 그 것에 필요한 버그 재현입니다.)
- 버그 재현을 위한 어떤 노력들이 있을까요?
누군가는 로깅을 통해 버그가 발생된 환경에 대해 기록을하라고 합니다.
- 버그 재현 하기 위해 로깅을하고
재현이 불가능한 버그 혹은 간헐적인 버그 (10만번에 한 번 꼴)
많은 시도 끝에 재현이 불가능하다면 버그를 잡기가 힘들고,
무시해도 될 수준이기에 미해결로 남겨두는 것도 하나의 방법이라고 합니다.
다른 누군가는 테스트를 통해 미리 버그를 걸러내라고 합니다.
-
테스트를 통해 발생 가능한 버그를 파악하고 미리 수정합니다.
=> 버그 수정에 드는 비용을 줄이기 위해 테스트 자동화 시스템을 만들면 좋다고 합니다. -
테스트 자동화 환경과 개발 환경은 약간의 차이가 있기 때문에 로컬 환경에서 버그 재현이 힘들수도 있습니다.
이 문제점을 해결하기 위해 테스트 자동화 및 개발 환경을 통합합니다.
=> Docker과 같은 가상화 플랫폼을 활용하여 통합환경을 구축합니다.
테스트 통합환경의 주요 이점입니다.
- 버그를 재현 (+ 디버그)
- 버그 수정
- 수정 사항 확인
마지막으로 검증되지 않은 자료 => 검색을 통해 얻은 내용을 짜집기 한 것으로 불확실한 내용이 포함되어 있습니다.
좋은 주말되세요