본문 바로가기

개발/테스팅4

cover item thumbnail5 Neuron Coverage Neuron Coverage DeepXplore: Automated Whitebox Testing of Deep Learning Systems (https://arxiv.org/abs/1705.06640) 논문에서 제안한 개념으로 DNN 의 개발 프로세스는 기존 소프트웨어 개발 프로세스와 근본적으로 다르기 때문에 DNN 을 테스팅할 수 있는 새로운 개념이 필요하다고 주장합니다. 기존 소프트웨어는 개발자가 직접 시스템의 로직(Decision Logic)을 개발하였지만, DNN 은 데이터에서 자동으로 규칙(기존 소프트웨어의 Decision Logic)을 학습하기 때문에 대부분의 개발자도 DNN 의 규칙을 알 수 없습니다. 그림 2 는 학습 데이터, 기능, 모델의 아키텍처 세부 사항(예: 레이어 수)을 수정하.. 2023. 9. 4.
cover item thumbnail5 Concolic 테스팅 동적 심볼릭(Concolic) 테스팅 동적 심볼릭 테스팅이란? 프로그램 소스코드를 입력 받은 후, 프로그램의 구조와 의미를 분석하여 프로그램의 모든 경로를 도달하도록 테스트 입력 값을 연속적으로 생성하는 whitebox 테스트 기법이다. Concolic 은 아래와 같이 concrete 와 symbolic 이 합쳐진 단어입니다. Concolic: CONCrete + symbOLIC 이름에서 알 수 있듯이 동적 심볼릭 테스팅은 실행 경로 탐색과 심볼릭 실행을 결합한 테스트 기법입니다. 실행 경로 탐색은 프로그램의 모든 가능한 실행 경로를 찾는 작업을 말하고, 심볼릭 실행은 프로그램의 변수를 기호로 처리하여 실행하는 작업을 말합니다. 동적 심볼릭 테스팅 과정 프로그램의 실행 경로를 탐색합니다. 각 실행 경로에.. 2023. 9. 3.
cover item thumbnail5 Symbolic Execution (심볼릭 실행) CMU 강의 노트를 참고하여 작성하였습니다. Symbolic Execution (심볼릭 실행) 심볼릭 실행(symbolic execution)은 프로그램을 추상적으로 실행하는 방법으로, 하나의 추상 실행(abstract execution)이 코드를 통해 특정 실행 경로를 공유하는 프로그램의 여러 가능한 입력을 포함합니다. 실행(execution)은 이러한 입력을 기호적(symbolically)으로 처리하고, 해당 입력 값을 대표하는 기호 상수(symbolic constants)로 표현되는 결과를 "반환"합니다. 테스트는 하나의 특정 입력(specific input)에 대해 구체적(concretely)으로 프로그램을 실행하고, 결과를 확인하는 것입니다. 이와 대조적으로, 심볼릭 실행(symbolic exe.. 2023. 9. 2.
cover item thumbnail5 KLEE 사용법 KLEE KLEE 설치 KLEE 는 docker image 를 제공하고 있습니다. $ docker search klee 위 커맨드를 이용하여 docker image 를 검색하면 다음과 같이 결과를 확인할 수 있습니다. (docker search 커맨드 중 pemission denied 에러가 발생하면 다음 페이지 참고) KLEE 를 사용할 수 있는 docker image 가 검색되고, 아래 커맨드를 이용하여 KLEE 를 설치합니다. $ docker pull klee/klee KLEE Container 실행 $ docker run --rm -ti --ulimit='stack=-1:-1' klee/klee Note the --ulimit option sets an unlimited stack size ins.. 2023. 9. 2.