swsnu / swppfall2020

28 stars 17 forks source link

[HW3] 과제에서의 Unit Test를 가장한 Integration Test #134

Open cheezafizz opened 4 years ago

cheezafizz commented 4 years ago

123 에서 조교님께서 현장에서 unit test를 가장한 integration test가 굉장히 많다고 하셨는데,

과제 테스팅 코드에도 unit test를 가장한 integration test가 있어도 괜찮을까요?

coverage를 다 채우고 테스트가 다 통과하더라도 각 js 파일마다 반드시 하나의 .test.js가 있어야 하나요?

Algy commented 4 years ago
  1. 저희는 unit test를 가장한 integration test를 권장하지 않습니다. integration test는 모듈 간의 연결을 테스트하는 목적이 있어야 하고 unit test의 역할을 완벽히 대체할 수 없습니다. unit test는 테스트 중 가장 높은 수준의 isolation level을 가져야 합니다.
  2. 하지만 "unit test의 isolation level"은 정성적인 값이고 이를 계량하는 자동화할 수 있는 객관적인 지표가 없습니다. 반면, Coverage는 굉장히 엉성하지만 최소한 어느정도 유용한 면이 있는 객관적인 지표입니다. 따라서, 저희는 coverage를 이용하여 test case의 퀄리티를 엉성하게라도 측정하게 됩니다.
  3. 저희는 채점 기준에 정성적인 요소를 넣지 않았습니다. 따라서 저희가 integration test를 짜서 test coverage를 올려 점수를 얻는 것을 막을 수는 없습니다. 하지만 이런 형태의 테스트는 강의와 과제의 목적에서도 벗어나는 것임을 인지해주셔야 합니다. 과제 채점을 떠나 소개원실 강의 밖에서, 엄밀한 형태의 unit test를 실제로 작성해볼 기회는 현업에서 뛰기 전까지 거의 없을 것입니다. 따라서 이런 테스트 연습을 해보는 것은 수강생분들의 개발 실력을 늘리는 굉장히 큰 도움이 될 것입니다.
cheezafizz commented 3 years ago

감사합니다.