출처: Software Testing A Craftsman’s Approach, Paul C. Jorgensen, Fourth Edition, 2014년
21장 Evaluating Test Cases, 414페이지
임의의 데이터를 프로그램의 입력에 주입하는 소프트웨어 테스팅 기법인 ‘Fuzzing’의 기원을 소개한 것이다.
21.2 Fuzzing
퍼징(Fuzzing)은 위스콘신 대학교에서 학문적 호기심으로 시작되었다. 마치 로맨스 소설의 문구처럼 "어느 어둡고 폭풍우가 몰아치는 밤에…" 우연히 아이디어를 발견하였다고 한다.
Barton Miller와 두명의 대학원생 Lars Fredriksen과 Bryan So는 폭풍이 몰아치는 동안 전화 접속 인터넷 연결(dial-up Internet connection)을 사용하고 있었다. 회선의 전자 잡음으로 인해 왜곡된 문자열(garbled character strings)이 생성되었고, 이는 여러 UNIX 유틸리티에서 장애가 일어나는 원인이 되었다. 이것이 그들의 호기심을 자극했고, 계속된 연구로 발전했다. 그들의 연구는 7개의 UNIX 버전에서 실행되는 88개의 유틸리티를 검토하여 무작위 문자열에 의해 드러난 부수적 결함을 조사했다.
이후로 퍼징의 아이디어는 여러 운영 체제로 확장되었다. "Fuzzers"는 커맨드라인 애플리케이션과 대화형(interactive) 애플리케이션 모두에 입력으로 임의의 문자열을 제공하는 프로그램이다. 이런 무작위 문자열은 테스터가 전혀 생각하지 못한 상황을 드러나게 할 수 있다는 장점이 있다. 단점은 테스트케이스의 예상 출력 부분을 정의할 수 없다는 것이다. 그러나 잘못된 입력에 대한 응답은 대개 에러 메시지이기 때문에 이게 큰 문제가 되는 것은 아니다.
'테스트케이스설계기법별 > 경험 or 결함 기반' 카테고리의 다른 글
책 발췌 – 에러 추측 by Gayathri Mohan (0) | 2024.05.20 |
---|---|
책 발췌 – 숙련된 테스터의 직관과 경험 by Everett and McLeod (1) | 2024.01.29 |
페이퍼 요약 – 소프트웨어 버그를 찾기 위한 18가지 공격 by Jorgensen (0) | 2022.06.27 |
영상자료 - 뮤테이션 테스팅 입문 강의 (0) | 2021.10.20 |
문서요약 - 환경적 버그 발견을 위한 뮤테이션 테스팅 확장 by Spafford (0) | 2020.06.15 |