인프런 커뮤니티 질문&답변
테스팅과 학습법의 관계 (?)
작성
·
18
답변 2
0
학습에 관한 좋은 자료가 많은데, 테스팅과 연계하여 참고할만한 자료를 하나 소개해드리겠습니다.
타당한 환경
많은 반복
적절한 피드백
주도적인(의식적인, 의도적인) 훈련
유튜브 : 전문가와 비전문가의 차이
테스팅은 이 네 가지를 실천하는 환경이자 방법을 제공합니다.
테스트 코드와 테스팅 자동화의 중요한 가치 중 하나는 적절한 피드백, 더 구체적으로는 빠른 피드백입니다. 테스트 코드가 없고 자동화되어 있지 않다면, 수동으로 검증하게 됩니다. 예를 들어, 구현을 변경하고, 서버를 재구동한 뒤, 구현에 대한 API를 동작시키기위해 직접 API를 호출하거나 웹 브라우저를 열어 여러 메뉴를 거쳐 어떤 버튼을 눌러야 하지요. 아차. 실수로 오타가 남았네요. 코드를 고치고, 서버를 재구동하고, 웹 브라우저를 열고, 그리고, 그리고.
만약 어려운 시험 문제를 풀었는데, 정답을 1년 뒤에 알려준다면 학습에 적절한 피드백을 받는 것이 아닙니다. 테스트 코드와 자동화는 그런 점에서 거의 즉각 피드백을 줍니다. 또한 대체로 프로그래밍 관련 피드백은 구체적이고 명확합니다. 행동에 변화를 주는 데 필요한 정보를 주지요.
빠르고 편리하니 많은 반복을 하기에 좋습니다. 테스트 코드가 있으면 리팩터링 부담이 줄어 실험적인 시도를 할 수 있지요.
버그가 발생했을 때 문제를 재현하려 하는 이유는, 문제 가능성과 후보를 좁히기 위함입니다. 이는 저 영상에서 말하는 타당한 환경에 해당합니다.
테스팅을 수행할 때마다 통과와 실패가 무작위로 달라진다면 테스트 코드에 문제가 있거나 구현에 문제가 있는 것이겠죠. 예를 들어, 기능 하나에 대한 테스트 코드를 작성하는데, 엄청나게 거대한 픽스처(Given)를 구성한다고 가정해보겠습니다. 이는 설계에 문제가 있다는 신호일 가능성이 큽니다. 해당 기능을 구현하는 코드가 너무 많은 책임을 맡거나 관심사를 알아야하는 건데, 이런 구현에 대한 테스트 코드도 관리하기 어렵고 지저분할 가능성이 큽니다. 이를 개선하려면 “현재 동작하는데 뭐”라는 안정 영역(comfortable zone)에서 벗어나 의식적으로 불편한 영역에 진입해야 합니다. 실제로 좋은 테스트 코드를 작성하려는 고민은 좋은 코드를 작성하는 고민과 노력의 산물과 맞닿아있지요.
제가 학습에 관한 글을 연재한 적이 있는데요. 테스팅 자체를 직접 언급하진 않았지만, 테스트 코드를 작성하는 행동과 사고가 좋은 학습법을 실천하는 방법과 비슷하다는 점을 발견하시리라 생각하여 소개해봅니다. 🙂
https://puddingcamp.com/topics/learning-methods-for-growth-without-a-coach
0
안녕하세요, 인프런 AI 인턴입니다. ayo님.
테스팅을 잘하는 방법과 유용한 학습법이 어떻게 맞닿아 있는지에 대한 질문을 주셨네요. 이 둘은 본질적으로 ‘문제를 정의하고 해결하는 과정’에서 닮아 있습니다.
문제 분석: 테스팅을 할 때, 우리가 기능이 올바르게 작동하는지 확인하려면 기능의 요구 사항과 예상 결과를 명확히 이해해야 합니다. 학습에서도 이해하려는 주제나 개념을 분명히 정의하는 것이 중요합니다.
목표 설정: 테스팅에서는 특정 기능이 특정 조건에서 잘 작동하는지를 확인하기 위한 목표가 있습니다. 학습에서도 어떤 개념을 이해하고자 할 때, 그 개념의 핵심 혹은 알고자 하는 부분을 목표로 삼는 것이 중요합니다.
반복과 피드백: 테스팅은 코드를 테스트하고 결과를 통해 피드백을 받아 수정하는 반복 과정입니다. 학습 역시 이해가 부족한 부분을 계속 반복하고, 피드백을 통해 이해를 확인하고 보완해 나갑니다.
테스팅과 학습법은 본질적으로 ‘어떻게 하면 정확히 이해하고 원하는 결과를 얻을 수 있는가’를 고민하는 과정에서 닮아 있습니다. 이러한 통찰은 복잡한 문제를 체계적으로 접근하는 능력을 길러줄 수 있습니다.
아래의 링크에서 관련 주제의 더 많은 정보를 확인하실 수 있습니다:
- 유효한 학습 방법론과 테스팅 접근법의 비교 – Inflearn 강의 질문
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.




