brunch

You can make anything
by writing

C.S.Lewis

by 도그냥 Mar 06. 2018

예시로 보는 '오류에서 배우는 방법'

브런치 오류 찾았다


전에 테스트에 대한 글에서 오류 신고에 대한

이야기를 한 적이 있다. 

오류를 발견하면 신고를 하기전에 재현이 가능한 환경과 순서를 명확하게 보여주고 가능하면 이유와 정상적인 케이스에 대한 판단도 해서 전달할 것을 강조 했었다.

https://brunch.co.kr/@windydog/133


브런치를 보다가 작은 오류가 발견했다.

수차례 재현해본 결과 계속 동일한 오류가 발생했다. 

 이미 말했듯이 '아이고 오류다!' 이러고 개발자에게 이 캡쳐만 띡 보내고 오류가 있으니 알아서 찾아내라고 하면 안된다.

 그리고 찾아냈다고 '이거 이상해요'라고 말하며 이런 오류를 왜 냈냐는 식의 태도는 정말 예의없는 짓이다.


찬찬히 그리고 상세히 말해야한다.

오류를 발견한 테스트 환경은 이렇다.

갤럭시s7, 안드로이드7.0

오류 재현 방법 :

1) 브런치 앱이 실행된 상태에서 햄버거 메뉴를 연다

2) 안드로이드 드로우바에서 브런치에서 온 Push를 터치한다

3) 브런치에서 push된 페이지로 이동하나 햄버거 메뉴내의 플로팅 메뉴만 화면에 남아있다.

플로팅 메뉴만 남아있는 오류


오류는 왜 발생했을까?

 오류는 발생하는 게 정상이다. 오류가 하나도 없이 완전히 고쳐진 서비스는 발전하지 않는 정체된 상태다. 계속 정체된다면 그 서비스는 고인 물처럼 썩는다.


 오히려 기획자나 테스터는 오류를 발견하고 연구하면서 자신의 시스템에 대해 배운다. 이 오류에서도 여러 가지를 배울 수 있다. 개발을 전혀 알지 못해도 이런 고민의 경험들이 성장 시킨다.


 이 오류는 왜 발생했을까? 왜 햄버거 메뉴는 닫혔는데 플로팅 버튼들은 남아 있는가?


네이티브 앱의 구조
네이티브 영역의 레이아웃 표시한 상태

 위의 이미지는 안드로이드폰의 개발자 도구에서 네이티브 영역의 레이아웃을 표시한 것이다. 보다시피 플로팅 3가지 영역은 햄버거 메뉴와 이어져 있지 않고 구분되어 있다.

 이 메뉴를 이용하면 웹과 네이티브 영역의 구분이 가능한데, 웹과 앱의 특징을 볼 수 있다. 밑은 이미지는 안드로이드의 네이버앱의 레이아웃 표시된 영역이다. 하단의 부분은 레이아웃이 표시되지 않고 한 면으로 되어 있는 것을 알 수 있다.

네이버의 레이아웃

  웹은 웹 안에서 여러개의 레이어와 계층을 z값으로 갖고 있다고 해도 브라우져는 사실상 1개의 면으로 볼 수 있다. 여러 요소가 합쳐져서 하나의 그림을 그려내는 것이다. 그래서 브라우져내에 노출된 웹의 구성요소 하나하나를 직접 컨트롤하기는 다소 까다로워지고, 각 영역간의 영향도도 높다.

 반면에 네이티브 영역들은 구분된 여러개의 조각들이 층층히 쌓여있고 각각의 조각들을 컨트롤할 수 있다.


 자, 그렇다면 어떤 가설을 내려볼 수 있을까?

브런치의 앱이 바닥페이지의 컨텐츠면과 햄버거메뉴와 플로팅 영역으로 분리되어 구성되어 있었는데, 딱 이 케이스에서 바닥페이지가 이동할 때 햄버거메뉴만 닫히고 무슨 이유에서인지 플로팅 영역은 닫히는 것이 작동되지 않았던 것이다.


 이제 이런 가설을 얻었다면 당당하게 개발자에게 달려가서 설명해주면 된다.


햄버거메뉴 누른 상태에서
푸쉬 메시지 눌러서 이동하면
플로팅 버튼 부분만 안닫히는 것 같아요
제가 생각하는 게 맞나요?


 좋은 개발자라면 기획자도 알아들을 수 있게 오류의 원인과 해결에 대해서 설명해 줄 것이다.

 

이렇게 하나 배우는 것이다.

 



추신.  이 오류는 근데 언제쯤 소리소문없이 사라질까요?ㅎㅎ 혹시 수정하신다면 댓글이라도 부탁드립니다.

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari