델타 디버깅
Delta debugging이 글에는 여러 가지 문제가 있다.이 문제를 개선하거나 대화 페이지에서 토의하십시오.(이러한 템플릿 메시지를 제거하는 방법 및 시기 알아보기) |
델타 디버깅은 가설-시행-결과 루프의 과학적 접근방식을 이용하여 프로그램의 디버깅을 자동화하는 방법론이다.이 방법론은 1999년 사를란드 대학의 안드레아스 젤러에 의해 처음 개발되었다.[1]
실제로 델타 디버깅 알고리즘은 최소 집합이 남을 때까지 고장을 유발하는 상황을 체계적으로 좁혀 고장 원인을 자동으로 격리하는 장치 테스트를 기반으로 한다.예를 들어, 만약 당신이 찾고 있는 버그를 만들어낼 테스트 케이스를 공급할 수 있다면, 당신은 그것을 델타 디버깅 알고리즘에 공급할 수 있는데, 그것은 단순히 버그를 재생산하는 데 필요하지 않은 쓸모없는 기능과 코드 라인을 제거하려고 할 것이다, 그것은 1 미니멀 프로그램이 발견될 때까지.
델타 디버깅은 실패를 유발하는 프로그램 입력(예: 웹 브라우저를 실패하게 하는 HTML 페이지), 실패를 유발하는 사용자 상호작용(예: 프로그램을 충돌하게 하는 키 입력) 또는 프로그램 코드에 대한 실패를 유발하는 변경(예: 회귀 테스트 실패 후)을 분리하기 위해 적용되었다.
이후 일부 소프트웨어 개발 도구는 수정 제어 시스템의 이등분 명령(git-bisect, svn-bisect, hg-bisect 등)과 같은 델타 디버깅에서 영감을 받아 프로그램의 코드 작업 대신, 잘못된 변경이 fou가 될 때까지 다양한 버전을 비교하여 코드 히스토리에 대한 델타 디버깅 방법론을 적용한다.nd
최근에는 델타 디버깅에 기초한 네트워크 대화 최소화 기법이 제안되어 원래 대화 상자에서 네트워크 트래픽의 가장 작은 부분 집합을 찾고 재생할 때 원래 대화와 동일한 목표를 여전히 달성하도록 한다.
소프트웨어
- 델타 - 파일들의 흥미도를 테스트할 수 있는 "가상" 파일을 최소화하기 위한 컴퓨터 프로그램
- DD.py - Python의 델타 디버깅 구현. 자습서도 참조하십시오.
- 리튬 - 향상된 델타 디버깅 알고리즘의 파이썬 구현
- C/C++로 작성된 소스 파일을 줄이는 C-Reduce는 델타 알고리즘을 사용한다.
- Perses - 델타 디버깅 알고리즘을 사용하는 프로그램 최소화를 위한 언어 제한 없는 환원기.
- DustMite - 주로 D 프로그램을 줄이는 데 사용되는 범용 데이터 감소 도구.[4]
- Eclipse 플러그인
- DDinput - 오류 유발 입력
- DDchange - 실패를 유발하는 변화
- DDstate - 고장 유발 상태
- XML메이트[5]
- 공통 Lisp 구현
- Igor - 명령줄 도구
참고 항목
참조
- 안드레아스 젤러: , 모건 카우프만, ISBN1-55860-866-4
- 코드 히스토리를 통해 배우기 Delta Debugging의 최초 발명자가 Google Tech Talk에서 프레젠테이션
- ^ Zeller, Andreas (1999). "Yesterday, my program worked. Today, it does not. Why?". Software Engineering — ESEC/FSE '99. Lecture Notes in Computer Science. Vol. 1687 (Software Engineering—ESEC/FSE’99 doi:10.1007/3-540-48166-4_16 ed.). Springer. pp. 253–267. doi:10.1007/3-540-48166-4_16. ISBN 978-3-540-66538-0.
{{cite book}}:외부 링크 위치(도움말)edition= - ^ M. Zubair Rafique; et al. "Network Dialog Minimization and Network Dialog Diffing: Two Novel Primitives for Network Security Applications" (PDF). In Proceedings of 30th Annual Computer Security Applications Conference (ACSAC 2014). ACM.
- ^ danielwilkerson.com
- ^ 범용 데이터 감소 도구인 DustMite
- ^ "Detecting Software Errors via Genetic Algorithms". 2014-03-05. Retrieved 22 July 2015.
외부 링크
- 델타 디버깅 프로젝트 - 델타 디버깅 도구 및 메서드에 대한 광범위한 링크 모음
- Andreas Zeller의 소프트웨어 디버깅에 관한 Udacity 과정