본문 바로가기

프로그래밍/미분류

Property-based Testing

반응형
프로퍼티 기반 테스팅에 관한 팟캐스트를 들었다. 들을 때는 잘 몰랐는데 구글에서 검색하여 slideshare 슬라이드를 좀 읽어보니 좀 이해가 간다.

수학적으로 연관성이 많은 하스켈 스칼라 등에서 먼더 이야기가 나온 것 같고, 아니나 다를까 수학에서 공리로 부터 시작하여 어떤 성질을 만족하는 무엇을 정의하는 것과 비슷한 개념이라 이해했다.

무슨 말인고 하니 개발시에 작성하는 테스트 케이스는 그여말로 랜덤한 개별적인 사례들이다. 그러나 이런 개별 사례들을 아무리 많이 만든다 해도 그것들이 만드는 시스템의 설계 스펙을 완전히 커버할 수는 없다. 본질적으로 귀납적인 방식이기 때문이다.

수학에선 무엇을 정의할 때 그 이전까지 확립된 개념들로 이루어진 성질을 만족하는 것으로 한다. Property-based 에서 프로퍼티란 여기에서 정의에 필요한 명제형태의 성질을 말하는 듯.

덧셈함수가 슬라이드의 예였는데, 순서를 바꿔도 결과가 같고, 1을 두번 더한 것과 2를 한번 더한 결과가 같고, 0을 더하면 변화가 없다는 property 를 뽑아서 테스트 케이스를 만들었다. 어떤가 벡터를 배울 때 나오는 + 연산의 성질과 일치하지 않는가? ( 교환법칙 / 결합법칙 / 항등원 )

파이썬에선 hypothesis 라는 패키지가 있는 것 같다. 매우 흥미롭다.

http://www.slideshare.net/FranklinChen/handout-23548866
728x90