본문 바로가기

회고/영상, 칼럼, 스터디 회고

나도 내 코드의 문제를 찾고 싶다구요?! - 테스트 할 때 기억할 7가지, 한주승

728x90
반응형

 

 

 

개요


이번 발표는 약 34분으로 적지 않은 시간이었는데, 테스트코드를 어떻게 작성해야하는지 방법을 알려주는 것이 아니라, 개발 전반에 걸쳐서 어떻게 좋은 품질의 제품을 문제없이 만들 수 있는지 그 관점에서 테스트를 제시합니다. 

 

 

테스트할 때 기억해야 할 7가지


테스트할 때 기억해야 할 것으로 총 7가지를 준비했습니다.

 

 

1. 테스트 케이스


잘못 정의하면, 비정상이 정상으로 둔갑합니다. 

 

불을 꺼주세요라고 했는데 불이 켜져있다는 것으로 잘못 테스트를 정의하면 실제 문제가 발생했을 때 잡아낼 수 없습니다. 비정상이 정상으로 둔갑하는 상황을 조심해야 합니다.

 

 

 

 

 

2. 제품 요구사항


요구사항을 바르게 이해해서 올바른 정의를 내려야 합니다. 이것은 1번 테스트 케이스의 피드백 과정이기도 한데, 제품 요구사항을 바르게 정리하다보면, 테스트 케이스의 시나리오를 바로잡을 수 있습니다.

 

 

 

3. (외부) 인터페이스


내부 구현을 살펴보다 보면, 누가 코드를 잘못 짰는지 감정적인 대응을 하기가 쉽습니다. 하지만 외부 인터페이스를 먼저 살펴보면, 예를 들어 "UI 요청 테스트", "Server로의 Restful 테스트" 등 명확하게 외부 요인 테스트를 분담하면 객관적으로 상황을 볼 수 있고 감정을 배제할 수 있습니다.

 

4가지 순서로 외부 인터페이스 테스트하기

 

 

4. 처음 만나는 프로덕트


처음 기능이 요구사항으로 정의된 것은, 사용자의 피드백에서 나오지 않습니다. 이것은 가짜 요구사항입니다. 따라서, 실제 사용자에게 필요한 진짜 요구사항과 가까운 테스트를 못할 수 있습니다. 가짜 요구사항과 진짜 요구사항의 간극을 최소화해야합니다.

 

요구사항과 실제로 사용되는 기능의 간극을 줄이는 것이 중요하다.

 

 

이 간극을 줄이기 위한 방법은 사용자에게 있습니다.

 

 

5. 사용자


테스트의 2%의 부족함은 사용자에게 달려 있습니다.

 

고객의 입장에서 상상해봅니다. 고객이 제품 사용법도 모르고 여러가지를 시도해 볼 텐대, 같은 기능이라도 더 편하게 사용할 수 있도록 해야 합니다.

 

닫기 메뉴도 만들고, 버튼 이외 공간을 누르면 닫기가 된다

 

 

 

6. 일관성


기억을 최소화하고 쉽게 익숙해질 수 있도록 일관성을 가져야 합니다.

 

값 입력에서 어떤건 버튼, 어떤건 엔터, 어떤건 팝업!

 

 

7. 테스트를 해야지


구현하고 바로 배포하고 싶은 악마의 유혹을 떨치자

 

"종속성 때문에, 하드웨어 때문에 테스트 환경 구성이 너무 까다로워서", "너무 간단한 기능이라서" 테스트를 어물쩡 넘기는 습관을 버리자!

 

 

2. 너무 간단한 코드인 경우에, false 값을 넣으면 log()에서 출력하지 못하고 시스템이 죽어버립니다.

 

 

느낀점


 좋은 품질을 만들기 위해서 어떻게 제품을 바라보고 테스트해야 하는지 알 수 있었습니다. 개발자는 그냥 코딩을 잘하는 것을 넘어서서, 사용자 입장에서 고민하고 상상해 볼 때, 훨씬 사용자 친화적인 기능과 실제 도움이 되는 개발이 가능하다고 생각합니다. 저도 사용자 입자에서 고려하도록 노력해보겠습니다.

 

 또한 7번은 정말 공감하는게, 한번 프런트 화면의 문구만 수정하고 다시 배포했는데, 테스트를 하지 않았습니다. 운영환경에서 웹 접속이 안됐는데 이유는 제가 화면 문구 수정뿐만 아니라 하나의 파일의 패키지 구조를 바꾸고 jenkins을 복구 했기 때문이었습니다. jenkins 배포 시, 덮어쓰기 형태가 되어 기존에 있는 파일을 지우지 않기 때문에, 하나의 프로젝트에서 같은 프로젝트를 가진 파일이 2개가 생겨버렸고 소스코드가 충돌이 나서 웹이 제대로 실행되지 않았습니다.

 

 

  •  사용자 관점의 자세로 요구사항과 실제 테스트의 간극을 줄이자
  • 사소한 기능이 추가되었다고 하더라도 꼭 테스트를 하고 넘어가자
  • 요구사항을 제대로 정의해야 테스트도 잘 정의할 수 있다 

 

 

출처


https://www.inflearn.com/course/infcon2022/unit/126527?tab=curriculum 

728x90
반응형