본문 바로가기

testing

(3)
AFL(American Fuzzy Lop) Fuzzer 사용기 - binutils 대상 참고 자료 FUZZING WITH AFL-FUZZ, A PRACTICAL EXAMPLE (AFL vs BINUTILS) AFL Github AFL Training Github American Fuzzy Lop Homepage AFL이란? SW 버그를 찾기위해 다양한 상황을 고려한 테스트 케이스를 만들어야 하는데 많은 노력이 든다. 이에 테스트 케이스의 입력값을 자동으로 생성하는 다양한 기법들이 있는데, 이 중 유전알고리즘 기반 Fuzzing 기법을 활용한 테스트 케이스 입력값을 자동 생성하는 AFL의 간단한 사용법을 알아보고자 한다. AFL 홈페이지를 찾으면, AFL의 소개를 아래와 같이 하고 있다. (다른 기법인 Concolic Testing 활용은 Link1, Link2를 참고한다.) American..
Concolic testing 과 AddressSanitizer를 사용한 메모리 에러 검출 개요 테스트 케이스 자동생성을 위해 사용하는 기법 중 Concolic Testing이란 기법이 있다.(자세한 내용은 이분야의 대가이신 KAIST 김문주 교수님 홈페이지(Link)에서 알아보기로 하자.) Concolic Testing을 사용하면 소스코드가 가질 수 있는 다양한 패쓰 조합에 대한 테스트 케이스를 생성해주며, 실제 구동함에 따른 결과를 확인할 수 있다. 이에 최근에 메모리 에러 검출에 도움이 되는 AddressSanitizer에 대해 알아보니 두 개 기법을 조합하면 좋을 것 같아 시도해보았다. Concolic Testing : 테스트 케이스 자동 생성 + SW실행 AddressSanitizer : SW실행에 따른 각종 Memory 관련 에러 검출 준비물 CROWN : Concolic Testi..
General Testing Principles http://blog.naver.com/qlabcorp?Redirect=Log&logNo=90121618929 1. 테스팅은 결함의 존재를 밝히는 활동이다.(Testing shows presence of defects) - 테스트는 최종 소프트웨어의 품질보증을 위해 결함을 밝혀내는 행위일 뿐, 결함이 없다는 것을 증명할 수는 없다. 2. 완벽한 테스팅은 불가능하다.(Exhaustive testing is impossible.) - 소프트웨어 테스팅을 통해 모든 결함을 도출해 내는 것은 불가능하다. 리스크 분석과 결정된 우선순위에 따라 비중이 큰 부분을 중심으로 하는 테스팅(Risk-based Testing)이 이루어져야한다. 3. 테스트는 개발 초기에 시작된다.(Early testing) - 실제 구현단..