칼 포프의 "반증 가능성"과 소프트웨어 테스팅
사내에서 셈 카너(Cem Kaner)의 "Testing Computer Software"라는 책으로 스터디를 하기로 해서 내가 맡은 부분인 2장을 다시 읽어보게 됐다. 요약하면, 칼 포프의 이론이 소프트웨어 테스팅에 직접적으로 적용될 수 있다는 것이었다.
칼 포퍼(Karl Popper)의 반증 가능성(反證可能性, Falsifiability)에 대해 위키백과에서 검색해보면 ‘검증하려는 가설이 실험이나 관찰에 의해서 반증될 가능성이 있는 것을 의미한다’고 나온다. 풀어서 이야기하면 이렇다.
“과학적 지식은 절대 불변의 진리가 아니다. 반증을 통해 기존 과학에 오류가 있음을 밝힐 수 있고 잘못된 지식은 제거돼 간다. 이러한 과정이 반복되고 누적되면서 과학은 진리를 향해 진보한다.”
소프트웨어 테스팅도 마찬가지인 것 같다. 개발자는 ‘자신의 코드가 완벽하다’고 주장할 수는 있지만, 테스터는 ‘개발자의 코드가 완벽하지 않다’는 것을 보여주기 위해 소프트웨어 속에 잠재된 결함을 찾아내 버그 리포팅을 한다. 개발자는 수정을 하고, 또 다른 결함이 테스터로부터 보고되고, 그 결함은 또 수정이 된다. 테스트 영역이 높을수록 소프트웨어가 지닌 결함은 줄어들게 되고, 궁극적으로 소프트웨어에 대한 신뢰도는 상승하게 된다. 물론, 이 시점에서도 ‘소프트웨어가 완벽하다’라고 그 누구도 주장할 수는 없다. ‘소프트웨어가 완벽하다’는 것이 참이라는 것을 증명하기 위해 모두가 노력하고 있지만, 언제라도 또 다른 결함이 발견될 가능성이 있기 때문이다.
어렵다. 사실 결론 자체는 여러 테스팅 서적을 통해 익히 들어온 말이지만, 기존 이론을 테스팅과 결부지어 생각할 줄 아는 대가(Cem Kaner)의 안목이란 참 대단한 것 같다.
토트 블로거 ‘@OEHAN’ / http://soulcity.thoth.kr
오피니언 많이 본 뉴스
-
1
5년 전 업비트서 580억 암호화폐 탈취…경찰 “북한 해킹조직 소행”
-
2
'아이폰 중 가장 얇은' 아이폰17 에어, 구매 시 고려해야 할 3가지 사항은?
-
3
美-中, “핵무기 사용 결정, AI 아닌 인간이 내려야”
-
4
5대 거래소, 코인 불장 속 상장 러시
-
5
삼성메디슨, 2년 연속 최대 매출 가시화…AI기업 도약 속도
-
6
美 한인갱단, '소녀상 모욕' 소말리 응징 예고...“미국 올 생각 접어”
-
7
아주대, GIST와 초저전압 고감도 전자피부 개발…헬스케어 혁신 기대
-
8
국내 SW산업 44조원으로 성장했지만…해외진출 기업은 3%
-
9
반도체 장비 매출 1위 두고 ASML vs 어플라이드 격돌
-
10
서울대에 LG스타일러 … LG전자 '어나더캠퍼스' 확대
브랜드 뉴스룸
×