Core Concepts
딥러닝 라이브러리의 취약점과 버그를 발견하고 식별하기 위한 다양한 테스팅 방법들을 체계적으로 조사하고 분석한다.
Abstract
이 논문은 딥러닝 라이브러리 테스팅과 관련된 연구를 종합적으로 조사하고 분석한다.
먼저 딥러닝 시스템의 기반이 되는 다양한 딥러닝 라이브러리(딥러닝 프레임워크, 컴파일러, 하드웨어 라이브러리)의 특성과 워크플로우를 소개한다. 그리고 딥러닝 라이브러리 버그와 테스팅에 대한 정의를 제시한다.
이어서 기존 연구에서 제안된 딥러닝 라이브러리 테스팅 방법들을 세 가지 테스팅 컴포넌트(딥러닝 프레임워크, 컴파일러, 하드웨어 라이브러리)별로 체계적으로 정리하고 분석한다. 각 컴포넌트에 대해 차별 테스팅, 퍼징 테스팅, 메타형태 테스팅 등의 다양한 테스팅 기법들을 소개하고 장단점을 논의한다.
마지막으로 딥러닝 라이브러리 테스팅의 현재 과제와 향후 연구 방향을 제시한다.
Stats
딥러닝 프레임워크 테스팅 방법들은 주로 상태 버그, 수치 버그, 성능 버그 등을 발견할 수 있다.
딥러닝 컴파일러 테스팅 방법들은 최적화 버그와 같은 새로운 유형의 버그를 발견할 수 있다.
딥러닝 하드웨어 라이브러리 테스팅 방법들은 주로 기능적 오류를 검증하는데 초점을 맞추고 있다.
Quotes
"딥러닝 라이브러리 버그는 딥러닝 라이브러리의 실제 기능이 요구사항 및 명세를 충족하지 못하는 모든 불완전성 또는 결함을 의미한다."
"딥러닝 라이브러리 테스팅은 딥러닝 라이브러리 버그를 발견하고 식별하기 위해 설계된 모든 활동을 의미한다."