ICSE 2017 Buenos Aires, Argentina 2017. 05. 22 ~ 2017. 05. 30 Myungho Lee Programming Research Lab Korea University
1. 개요 먼저, 저와수영이형그리고성준이를이번 ICSE 2017 교수님께감사의말씀을올립니다. 에보내주신오학주 2017 년 5 월 22 일부터 2017 년 5 월 30 일까지아르헨티나의수도인부에노스아이레스에서있었던 ICSE 에수영이형과성준이와같이참석하였습니다. 이번학회에참석하면서느꼈던것들이연구실살마들에게잘공유되길바라며, 다른분들이이후에학회에참석할때도도움이되었으면좋겠습니다. 2. 학회소개 ICSE (International Conference on Software Engineering) 는 Software Engineering 분야최고의학회중하나입니다. 이번 39 번째 ICSE 는아르헨티나의부에노스아이레스에있는 Sheraton 호텔에서총기간은 2017 년 5 월 20 일부터 28 일까지총 9 일간, main conference 는 23 일부터 25 일까지총 3 일간에걸쳐서열렸습니다. 저희가이번에참석하였던것은 23 일부터 25 일까지인 main conference 였으며, 오전에 11 시부터 12 시 30 분, 2 시부터 3 시 30 분, 그리고 4 시부터 5 시 30 분까지총 3 번의세션을갖는식으로진행되었습니다. 각세션별로 Research Track 은 3 개가병렬적으로이루어졌으며각 track 당 4 개의 paper 발표가있었습니다. Research Track 뿐만아니라, SEIP(Software Engineering in Practice) 이나 NEIR(New Ideas and Emerging Results) 등다른 track 들도병렬적으로진행되었으며, research track 의경우발표 15 분, 5 분간의전체질문시간등을통해중간중간각자원하는다른 track 의발표들을들으러갈수있도록되어있었습니다. 물론 research track 에서의 4 개의발표가끝나면 1 시간 20 분이므로남은 10 분및다음세션까지의 coffee break 동안발표자들의포스터앞에서개별적으로질문을하고얘기를나눌수있는시간또한충분히있었습니다. 점심시간은 standing 으로각자자리를잡고앉아서식사를하는게아니라서서식사를하였습니다. 앉을수없다는점에서불편하기도했지만, 서서식사를하는것이자리를이동하기도편하고좀더다른사람들과교류하기쉽게느껴졌습니다.
3. ICSE Main Conference 1) 1 일차 (5 월 23 일, 수요일 ) 이날은 main conference 의첫날인만큼, Eclipse Foundation 의이사인 Mike Milinkovich 의 open source code 에대한 keynote session 이있었으며, 이번 ICSE 에서의 distinguished paper 가어떤것이고, award 를받을사람들이누구인지등과같은 opening 이있었습니다. 엄청큰강당안의사람들이의자가부족해서서있었어야했을만큼많은사람들이참석하였고, 그규모에도상당히놀랐습니다. 2 시간정도의 opening 이끝난 10 시 30 분에간단히 30 분정도 coffee break 를갖은후에본격적인세션별발표가시작되었습니다.
- Travioli: A Dynamic Analysis for Detecting Data Structure Traversals 11:00 부터 12:30 까지있던첫번째세션중 Program Analysis Track 에서있었던두번째발표입니다. 이번학회에와서거의제일처음으로들었던발표였고, 이날은발표를들을준비를제대로하지못해서아직도약간의아쉬움이있는발표입니다. 먼저 data structure 에대한많은논문들이프로그램메모리상에서 data structure 의 abstraction 을주로하는반면에, 이논문은 data structure 분석을목적으로 data structure 가어디에서어떻게 traverse 되는지를중점적으로연구한논문입니다. 프로그램의성능을결정짓는데에는많은요소들이있지만, 그중 data-structure 의데이터에접근하는 operation 이큰영향을끼치며이러한 operation 들에대한연구를진행한논문이었습니다. 기본적으로 rule-based 로 condition 들이있고, 함수를실행시킬때이러한 condition 들을확인함으로써프로그램내의특정함수가 traversal 이있는지없는지를검사합니다. 이러한것들은실행중생성된 event log 를통해서분석되게됩니다. 특히이논문에서중요한것은작은 unit test 뿐만아니라재귀함수에대해서도잘작동하고, Access Graph 를제공함으로써프로그램내의 data structure traversal 을시각화했다는것입니다. 발표를할때마냥학술적인접근방법만설명하는것이아니라여러예제를들어가며설명을해주어서재미있게봤었습니다. Git: https://github.com/rohanpadhy/travioli
2) 2 일차 (5 월 24 일, 목요일 ) 2 일차는전날과큰차이없이진행되었습니다. - Code Defenders: Crowdsourcing Effective Tests and Subtle Mutants with a Mutation Testing Game 이번 ICSE 2017 에서선정된 6 개의 distinguished paper 중하나로, 목요일 2 번째세션 Research Track 중 Testing II 에서발표된논문입니다. 같은시간대에또다른 distinguished paper 인 Decoding the representation of code in the brain: An fmri study of code review and expertise 또한제목부터상당히관심을끌었지만, 둘다들을수는없었기때문에 testing 분야인 Code Defender 를선택하였습니다. 이논문은쉽게말해서집단지성 (Crowdsourcing) 과게임 (Gamification) 을활용하여 mutant testing 이가지는문제를풀고자하였습니다. Mutant testing 이란프로그램소스를의도적으로변형하고테스트함으로써테스트케이스의성능을테스트하는기법입니다. 이렇게테스트함으로써기존테스트케이스들이좋은테스트케이스인지아닌지를판별할수가있습니다. 다만, 이제까지나온 tool 들은아직이러한테스트를하는데문제점이많으며이를집단지성과게임화를통해해결하고자해서나온논문이이 Code Defenders 입니다. Tool 을게임처럼만들어서연구에썼다는점이게임을좋아하는저에게있어서굉장히신기하고매력적으로느껴졌습니다. 단순히프로그램에게맡겨서 mutant 를생성하는것이아니라, attacker 와 defender 가존재하여 attacker 는 mutant 를만들고 defender 는이 mutant 를 cover 할수있는 test case 를작성하는것이기본골자입니다. test case 를만들고 mutant 를직접만들어야하는, 자칫하면지루할수있는부분들을게임화하고사람들의경쟁심리를자극하여해결하였다는점이흥미로운논문이었습니다. Code defenders: http://code-defenders.org/
- GuideAutomator: Continuous Delivery of End User Documentation NIER(New Ideas and Emerging Results) track 의상당히재미있던발표였습니다. NIER 트랙에서있던발표논문들은페이지수가 4~5 페이지로제가이제까지생각해왔던학회논문과는경향이좀달랐습니다. 학술적이라는느낌보다는좀더실용적인느낌이강했으며, 이제껏학술적인논문을주로봤었던저에게있어서신선한발표였습니다. 이논문의 motivation 은저자인 Rodrigo Souza 에따르면누구나생각할수있고, 겪었을문제였습니다. Internet application 을제작하는데있어서사람들에게어떻게이도구를쓸수있는지 Tutorial 을만드는데 application 을매번업데이트를할때마다 tutorial 또한새롭게업데이트하는게힘들고시간이많이들어간다는것이주 motivation 이었습니다. 자신의경험을토대로 API 를만들었으며, 그 API 를이용하면처음에 Tutorial 을만들때는일일이손으로하는것보다는시간이더걸리지만그이후에는 application 수정사항에맞춰 Tutorial 을자동으로업데이트하기때문에이후의시간은상당히단축된다는것을보였습니다. Guide Automator: https://github.com/aside-ufba/guide-automator
3) 3 일차 (5 월 25 일, 금요일 ) Main Conference 의마지막날이라그런지세션도점심전후로두번밖에없었으며, 수요일과목요일에비해확실히사람들이많이빠진것이느껴졌습니다. - Fuzzy Fine-Grained Code-History Analysis ICSE main conference 의마지막날첫번째세션중 Software Evolution 의첫번째발표였던논문입니다. 애초에 ICSE 에는상당히많은분야의 track 들이존재하였고, 이번 ICSE 2017 를갈때, 마냥 testing 이나 analysis 뿐아니라다른다양한분야들의발표도들어보고싶었고, ICSE 첫날나눠준책자를다시보면서어떠한논문들을볼까정하던중에 Track 명 (Software Evolution) 과함께제목이이상하게마음을끌어서보게되었던발표입니다. 이발표또한이제까지의다른발표들과마찬가지로학술적인방법, 난해한수식과같은것들을보이기보다는대부분의그림예제를통해서설명을해주었고그로인해상당히 SE 스러운생소한주제에대한부담감이좀덜었고편한마음으로볼수있었던발표중하나였습니다. 아직도정확히이해는안되지만 SE 관점에서볼때, Code-history 를분석하는것은개발자들에게있어서중요한문제중하나라고합니다. 그렇기에 codehistory 를정확히분석하는 tool 들은다양하게나왔지만, 정확도가낮거나하는등의한계가여전히존재하고이러한문제점들을해결하기위해 fuzzy 방식을도입하여 fine-grained code history 모델을소개한것이이논문입니다.
기존의많은 tool 들은 all-to-all 방식이나 one-to-one 방식을쓰는데, 각각장담점이있으며이논문에서는 fuzzy 방식으로 all-to-all 과 one-to-one 이지닌장점들을잘조합하여 precision 과 recall 둘다보장할수있도록하였습니다. 즉, 처음에는 all-to-all 으로시작을하여각소스코드들의라인별로다매칭을한후에, 그들간의관계를좀더정밀하고 fuzzy 하게분석해나가는것입니다. 4) Poster 각세션별로 track들이큰방을하나씩잡고진행하는동안, 복도에서는 poster session이있었습니다. 아무래도큰학회에온만큼, research track에서만최대한많이듣는것이중요하다고생각하였기때문에학회가시작했던초기에는이 poster session에큰관심을두지는않았었습니다. 하지만중간에물을마시러잠깐나온김에전시되어있는 poster들을보면서이생각은크게달라졌습니다. 생각보다많은사람들이 poster들을구경하고있었고서로얘기를하며자신들의연구에대한토론들을하는모습들이보였고자연스레저도관심이가게되었습니다. Poster session들은 NIER track과비슷한느낌을주었습니다. 학술적인것보다는 technical하고 practical한느낌이들었으며학술적인발표만보다중간중간 poster들을보며발표자들과얘기를하는것도좋은경험이되었습니다.
4. 아르헨티나 아르헨티나에는 main conference 시작일인 5월 23일수요일이아니라 5월 22일화요일에도착하였습니다. 화요일하루는비었기때문에무엇을할것인지얘기하다 세계 3대폭포중하나라는이과수폭포를이번에아니면언제가볼까 라는마음에화요일하루는이과수폭포로가기로하였습니다. 미국델라스공항에서비행기가 3시간연착되는등이과수폭포를못보게될수도있었지만천만다행으로아르헨티나국내공항 (AEP) 에시간내에도착할수있었고 2시간가량의비행기를타고이과수폭포를보러갈수있었습니다. 실제로이과수폭포공원을본것은 3~4시간의짧은시간이었지만아직까지그풍경을잊지못할만큼못왔으면후회했겠다싶을정도로장관이었습니다. 아르헨티나는소고기가유명하다고들어서학회나호텔에서제공하는음식을제 외할때빼고는거의소고기로배를채웠습니다. 실제로소고기가한국에비해 가격이싼편에속하였고, 고기또한상당히좋은고기였습니다.
5. 후기 세계곳곳에서수많은사람들이만나자신의연구에대해발표하며토론하는교류를갖는자리로써학회가상당히매력적으로다가왔습니다. 마냥머리로만아는것이아니라, 실제로보고느끼는것이새삼다르다는것을느낄수있었습니다. 1) 영어 & 배경지식 영어로회화하고하는데있어서는큰무리가없다고생각해왔었는데학술적인관점에서는아직많이부족한다는것도깨달을수있던좋은시간이었습니다. 특히, 몇몇의발표들은아직많은부분들에대해서배경지식이부족하다보니, 발표를들으면서개략적인그림들만그릴수있었을뿐세부적인내용을이해하는데있어서어려움이있었습니다. 적극적으로질문을하지못했다는것이아직까지큰아쉬움으로남아있습니다. 2) Motivation 거의모든사람들이자신의연구에대한발표를할때기술적인측면보다는왜이러한연구를진행하였는지 (motivation) 그래서어떠한결과가있었는지 (evaluation) 을중시하여발표를했다는것또한상당히신선하였습니다. 발표를할때자신이어떤학술적방법으로접근하였는지를중점적으로두고그부분을세세하게발표를한다기보다는하나의이야기를얘기하듯이 motivation부터시작하여자신의연구에대한큰그림들을설명하였습니다. 또한, 본인들이기존에했던연구의연장선상에서연구를한논문들도많이있었습니다. 3) Open Source 거의모든발표들이발표마지막부분에 github주소를줌으로써자신들이한연구및프로그램을 open source화하여공개하였습니다. 이렇게 open source 로써공개를하니논문 evaluation부분에대한신뢰가더높아졌습니다. Concolic Testing 에대한논문은이번에하나도없어서상당히아쉬웠지만, 그외 에다른연구가어떤것이진행되어왔고각연구자들이어떤식으로진행해왔었
는지를실시간으로알수있었다는점에서상당히좋은경험이되었습니다. 전체적으로많은분야의 track들이있었고 program analysis나 software testing 분야뿐만아니라다른분야들의연구발표들을볼수있어서뜻깊은일주일이었습니다. 다시한번생에더없을좋은경험을하게도와주신오학주교수님께감사드립니다.