ASE 2018 Sooyoung Cha Korea University 2018 September 1-11 1
개요 1 저는 9월 3부터 7일까지 프랑스 Montpellier에서 열리는 ASE (IEEE/ACM International Conference on Automated Software Engineering)에 논문 발표를 위해 참석했습니다. 학회참여 및 발표를 통해 느낀 제 경험들이 우리 연구실에 잘 공유되고 도움이 되길 기대합니다. ASE 참석 2 2.1 학회 최근에 ICSE 18을 다녀와서 그런지, ASE 학회의 규모는 작게 느껴졌다. 하지만 규모에 비해 슬라이드나 발표 퀄리티는 ICSE와 별로 차이나지 않았고 꽤 괜찮았다. 개인적으론 ICST 18와 ICSE 18에서 보았던 발표자들이 여러 명 참석해서 분위기는 친숙하게 느껴졌다. Keynote는 보통 200명 정도 듣는 편이었고, 논문 발표는 50-100명정도 듣는 것 같았다. 그리고 이번 학회를 통해 점심시간이 여러 사람들과 친해질 수 있는 좋은 기회라는 것을 깨달았다. 연구실 사람들에게 같이 학회를 가더라도 다른 테이블에서 점심을 먹어보라고 제안하고 싶다. 그림 1. 학회장소(LE CORUM) 및 Keynote 2.2 발표 참석 이번 학회는 Research Track에 대한 세션이 2-3개 동시에 진행되었지만, 내가 관심있는 세션들은 별로 겹치지 않아서 매 세션을 나름 재미있게 들었던 것 같다. 구체적으로 내가 관심있게 들은 세 션들은 Testing studies, Symbolic execution, Security 등 이었다. 여러 발표를 들으면서, 특별히 느낀 몇 가지를 소개한다. 1. 좋은 슬라이드는 간결하다. 늘 느끼는 부분이지만 좋은 발표는 간결하고 명료하다. 그림 2 의 왼쪽 위의 발표자 Wenyu Wang 이 개인적으로 슬라이드를 가장 잘 만들었다고 생각한 다. 저자가 각 슬라이드에서 말하고 싶은 바가 딱 보이도록 만들었다는 느낌이 들었다. 물론 이 발표는 안드로이드 테스팅 도구들에 대한 Empirical Study 라 내용 전달이 쉬웠을 수도 2
그림 2. High Quality Slides & Presenters 있다. 하지만 슬라이드만 봐도 논문이 하고 싶은 말들을 다 파악한 느낌이 들게 만들어 인상 깊었다. 이번 One point lesson은 마지막 슬라이드의 Summary 넣기 입니다. 이 발표자는 Industry user 와 Research community 에게 각각 명료한 메세지를 슬라이드에 담았다. 다음 발표 때에는 나도 꼭 따라할 것이다. 그리고 그림 2의 오른쪽 위의 슬라이드는 사실 별로 잘 만들지는 않았는데, 우리 도구 ConTest 를 KLEE와 CREST와 함께 슬라이드에 담아줘서 찍어두었던 것이다. 별거 아니지만 뿌 듯하다. 2. 좋은 발표자들은 연극 배우!. 그림 2의 아래 두 발표자는 각각 Jonathan Bell 교수님과 Caroline Lemieux 학생으로 두 분의 발표가 인상깊었다. 특히, Bell 교수님은 내가 올해 참여한 세 학회(ICST, ICSE, ASE)에서 모두 발표를 하셔서 발표 방식을 여러 번 관찰할 수 있었다. 이 분의 발표는 한마디로 무슨 연극보는 것 같은 느낌을 준다. 또한 (내가 추 구하는) 발표 중간 중간에 유머를 넣으시는 편인 것 같다. 제스처나 강조할 때의 톤이나 구체적으로 설명은 못하겠지만 슬라이드와 잘 어우러져 내용 전달을 매우 잘했다. 두번째 분은 Koushik Sen 연구실 학생으로 내가 아는 분야를 발표해서 그런지, 정말 척척 알아 듣게 발표를 했던 것 같다. 이 학생의 발표에서 가장 많은 질문들이 나왔던 것 같고, 발표가 끝나고 나서도 여러 사람들이 많은 질문들을 하는 것을 보았다. 나도 저자에게 커버리지 많이 올리는데 성공하셨는데, 버그들도 찾았나요? 질문을 했었다. 대답은 응 아니 였다. 3
3. 마이크를 이용해라. 아주 간단하다. 발표장소가 작다고, 마이크가 고정되어 불편하다고 이를 사용하지 않은 발표자들이 있었다. 앞에 앉은 청중들에겐 잘 들리겠지만 뒤의 청중 들에겐 소리가 잘 안들리거나 명확하게 들리지 않아서 내용 전달에 실패하는 몇 발표들을 목격했다. 마이크는 되도록 이용하자! 2.3 발표 발표 준비 발표를 할수록 준비 시간은 단축되고 있는 것 같다. 이번엔 발표 슬라이드는 이틀, 말하는 연습은 삼일 정도 준비하고 출발했던 것 같다. 그리고 리허설 때, 웃음보다는 진지함 에 초점을 두는 발표를 해보자 는 코멘트를 받았다. 이를 반영해서 슬라이드의 웃음 포인트들을 대부분 제거했다. 발표 전까지 여유가 있었기 때문에 충분히 준비할 수 있었고, 발표 하루전엔 자연스럽게 말할 수 있을 정도로 준비가 된 것 같다. 그림 3. Sooyoung Cha 발표 개인적으로 이번 발표가 가장 떨지 않고 차분하게 한 것 같다. 특별히 느낀 점들을 간단히 공유한다. 1. 웃음 > 진지함. 이번 발표를 통해, 난 진지함보단 (과하지 않다면) 웃음있는 발표를 더 선 호한다는 것을 깨달았다. 이번 발표와 달리 ICSE 발표 때는 웃기려고 의도한 슬라이드들이 있었고 그때 더 즐겁게 발표했던 것 같다. 각자 자신이 잘할 수 있는 발표 스타일을 찾는 것도 중요하다는 것을 느꼈다. 2. 발표 시간 내가 지금까지 한 모든 발표들은 연습 때보다 발표 시간이 조금 빨리 끝났다. 그 이유는 아마도 긴장을 해서 말이 평소보다 빨리 나왔거나 연습이 충분히 되서 버벅거리지 않았기 때문이라고 생각한다. 이번 발표는 원래 17분에 맞춰서 계속 준비를 했었는데 1분 정도 일찍 끝났던 것 같다. 3. 예상 가능한 질문들. 이번 발표엔 4개의 질문이 있었고 대부분 예상 가능한 질문들이라 어렵지 않게 대답할 수 있었다. 가장 날카로운 질문을 했던 분은 Christian Ka stner 교수 님이신데 이 기술이 string type이 아닌 다른 data structure에서도 동작하는가? 에 대한 질문이었다. 내 논문의 reviewer라고 생각하게 하는 질문이었다. 4
2.4 논문 소개 FairFuzz: A Targeted Mutation Strategy for Increasing Greybox Fuzz Testing Coverage. 이 논문은 발표 때도 느꼈지만 우리 논문과 유사하다. 격하게 말해서 Template- Guided Fuzzing 이다. 이 논문의 Motivation은 현재 퍼징 도구(AFL)가 프로그램의 core functionality에 도달하지 못한다는 것이고 그래서 이에 해당되는 branch coverage를 높이고자 한다. 그리고 핵심 관찰 역시 유사한데, 잘 도달하지 못하는 branch들을 커버하기 위해선 입력의 특정 부분들은 mutate되서는 안되고 고정되어야 한다고 주장한다. 이 연구에서는 우리 연구의 template 을 mask 라고 명명하는 것 같다. 그리고 이 mask 를 학습이 아닌 약간의 mutation 실험을 통해서 알아낸다. FairFuzz 논문의 Motivation이 굉장히 명료하게 쓰여졌다고 생각하고 사실 이번 내 연구에서도 동일한 문제를 풀려고 했던게 아닌가 생각이 들었다. 아직 Introduction만 읽어봤지만 꽤 잘 쓰인것 같고 시간이 날 때 끝까지 읽어볼 생각이다. 다른 연구자가 동시에 나랑 비슷한 동기와 해결책을 만들었다는 것 자체에 너무 신기하고 즐거운 경험을 해본 것 같다. An Empirical Study of Android Test Generation Tools in Industrial Cases. 이 논문은 기본적으론 실험논문이지만, Research community에 아주 좋은 메세지를 전달했다고 생 각한다. 이 논문의 Motivation은 Android app들을 위한 User Interface (UI) 테스팅 도구들이 많이 제안되었지만 대부분 상대적으로 간단한 open-source apps에 대해서만 성능을 평가를 했다 는 점이다. 즉, 더 많은 기능이나 복잡한 구현으로 이루어진 real-world industrial apps에 대해서 최신 도구들의 성능(code coverage, fault detection)을 측정한 연구가 없다는 것이다. 그래서 이 논문은 최소 100만번 이상 설치된 68개의 industrial apps에 대해서, code coverage와 fault detection 관점에서 최신 도구들을 평가하였다. 결과가 인상 깊었는데, 구글의 완전 랜덤 테스 팅 도구 Monkey 가 method covearge를 측정할 수 있는 41개 apps 중에서 50%이상 가장 높은 coverage를 달성하였고 전체 68개 apps 중에서 35개의 apps에서 가장 높은 activity coverage 를 달성하였다. 즉 가장 멍청하고 단순한 도구가 최신 Android 테스팅 도구들을 모두 이긴 셈이 다. 다행히 fault detection 관점에서는 Stoat 라는 도구가 23개의 apps에서 가장 많은 crash를 유발시켰다. 이 논문은 Industry users 에게는 완전 랜덤 테스팅 도구 Monkey 가 여전히 좋은 선택이라는 것을 말해주었고, Research community 에게는 앞으로 새로운 도구를 제안한다면 그때 꼭 Industrial apps들에 대해서 고려해달라는 말을 해주었다. Android 테스팅 분야에 꽤 좋은 메세지를 준 것 같고 앞으로 나올 연구들에 영향력을 끼칠 수 있는 논문인 것 같다. Concolic Testing for Deep Neural Networks. 이 논문은 우리 ICSE 논문을 인용해서 관심있게 발표를 들었던 논문이다. 이 논문의 저자는 Oxford 발표 때 한번 만났었는데, 구면이라 그런지 이 분과 이번 학회 때 가장 많이 이야기한 것 같았다. 이 논문은 Deep neural networks (DNNs)에 대한 검증 또는 테스팅에 대한 수요가 급증하는 배경에서 이 문제를 해결하기 위해 concolic testing을 처음으로 적용한 연구이다. 발표를 들었지만 어떻게 concolic testing을 적용 했는데 제대로 이해하지 못해 논문을 더 읽어봐야 될 것 같다. 5
3 여행 이번 여행은 즐거웠고 새로운 것들을 많이 볼 수 있었다. 먼저 프랑스 지하철에 대해 새롭게 알게된 점은 문이 필요한 곳에만 selective하게 열린다는 점이다 (오른쪽 아래그림 참조). 우리 연구실의 연구가 practice에서 적용되는 사례를 본 것 같아 뿌듯했다. 둘째로 이번 여행의 최고는 고흐의 도시 아를 에 갔다가 우연히 투우 경기를 본 것이다. 나는 지금까지 투우 경기가 투우사와 소가 호흡을 맞춰 일종의 위험한 서커스를 하는 것으로 알고 있었다. 그런데 그 둘은 그 경기에서 처음보는 사이 이고 둘 중에 한명이 죽을 때까지 목숨을 걸고 싸우는 투기라는 것을 알게 되었다. 다행히 내가 본 경기들에선 모두 투우사가 이겼고 소 가 죽었다. 기회가 된다면 꼭 보기를 추천 한다. 파리 에서 좋았던 점은 에펠탑 도 있었지만 미술관이 너무 좋았다. 사진에 있는 작품은 로뎅의 지옥의 문 으로 저 작품을 만드는 데 무려 37년이 걸렸다고 한다. 한 작품을 내가 지금 까지 살아온 인생보다 더 오래만들었다는 것에 존경심과 멋있음을 느꼈었다. 마지막으로 기억에 남는 것은 학회 장소였던 몽펠리에 에서 발표가 끝나고 일몰을 본 것이다. 그 풍경을 바라보는 시간이 너무 좋았고 낭만이 넘치는 프랑스를 여러 측면에서 충분히 느낄 수 있는 시간이었다. 그림 4. France Travel 6
4 마무리 이번 연구는 꽤 주도적으로 진행해서 짧은 기간(약 5개월) 안에 마무리가 되었던 연구이다. 솔 직히 말하자면 논문 제출 당일까지 낼 수 있을지 조차 알 수 없었던, Accept될지는 더더욱 예상 못했던 연구이다. 4월부터 선호랑 같이 맨날 새벽까지 남아 연구를 진행했던 기억도, 제출 10분 전에 Conclusion이 없다는 사실을 알게 되고 웃으면서 한 두줄이라도 어떻게든 적으려고 했던 기억도, 논문이 진짜로 붙어서 기쁘기보단 당황했던 기억도, camera ready가 논문 제출처럼 힘들 었던 기억도 다 나에겐 좋은 경험이자 영양분이 된 것 같다. 끝으로, 저에게 높은 곳을 계속 바라볼 수 있게끔 지도해주신 오학주 교수님께 감사드립니다. 다음 목표는 현재하는 연구에 집중해서 FSE 또는 ICSE에서 좋은 결실을 맺어보도록 하겠습니다! 감사합니다. 7