{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,8,24]],"date-time":"2025-08-24T01:51:13Z","timestamp":1756000273944,"version":"3.41.0"},"reference-count":45,"publisher":"Association for Computing Machinery (ACM)","issue":"2","license":[{"start":{"date-parts":[[2016,5,16]],"date-time":"2016-05-16T00:00:00Z","timestamp":1463356800000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/2.zoppoz.workers.dev:443\/https\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"name":"NSERC Strategic Project"},{"DOI":"10.13039\/100002418","name":"Intel Corporation","doi-asserted-by":"crossref","id":[{"id":"10.13039\/100002418","id-type":"DOI","asserted-by":"crossref"}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Softw. Eng. Methodol."],"published-print":{"date-parts":[[2016,5,16]]},"abstract":"<jats:p>\n            Web applications have become one of the fastest-growing types of software systems today. Despite their popularity, understanding the behavior of modern web applications is still a challenging endeavor for developers during development and maintenance tasks. The challenges mainly stem from the dynamic, event-driven, and asynchronous nature of the JavaScript language. We propose a generic technique for capturing low-level event-based interactions in a web application and mapping those to a higher-level behavioral model. This model is then transformed into an interactive visualization, representing episodes of triggered causal and temporal events, related JavaScript code executions, and their impact on the dynamic DOM state. Our approach, implemented in a tool called C\n            <jats:sc>lematis<\/jats:sc>\n            , allows developers to easily understand the complex dynamic behavior of their application at three different semantic levels of granularity. Furthermore, C\n            <jats:sc>lematis<\/jats:sc>\n            helps developers bridge the gap between test cases and program code by localizing the fault related to a test assertion. The results of our industrial controlled experiment show that C\n            <jats:sc>lematis<\/jats:sc>\n            is capable of improving the comprehension task accuracy by 157% while reducing the task completion time by 47%. A follow-up experiment reveals that C\n            <jats:sc>lematis<\/jats:sc>\n            improves the fault localization accuracy of developers by a factor of two.\n          <\/jats:p>","DOI":"10.1145\/2876441","type":"journal-article","created":{"date-parts":[[2016,5,16]],"date-time":"2016-05-16T12:27:17Z","timestamp":1463401637000},"page":"1-38","update-policy":"https:\/\/2.zoppoz.workers.dev:443\/https\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":6,"title":["Understanding JavaScript Event-Based Interactions with Clematis"],"prefix":"10.1145","volume":"25","author":[{"ORCID":"https:\/\/2.zoppoz.workers.dev:443\/https\/orcid.org\/0000-0002-5667-152X","authenticated-orcid":false,"given":"Saba","family":"Alimadadi","sequence":"first","affiliation":[{"name":"University of British Columbia, BC, Canada"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Sheldon","family":"Sequeira","sequence":"additional","affiliation":[{"name":"University of British Columbia, BC, Canada"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Ali","family":"Mesbah","sequence":"additional","affiliation":[{"name":"University of British Columbia, BC, Canada"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Karthik","family":"Pattabiraman","sequence":"additional","affiliation":[{"name":"University of British Columbia, BC, Canada"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2016,5,16]]},"reference":[{"volume-title":"Proceedings of the International Symposium on Software Reliability Engineering (ISSRE\u201995)","author":"Agrawal Hiralal","key":"e_1_2_1_1_1","unstructured":"Hiralal Agrawal , Joseph R. Horgan , Saul London , and W. Eric Wong . 1995. Fault localization using execution slices and dataflow tests . In Proceedings of the International Symposium on Software Reliability Engineering (ISSRE\u201995) . IEEE, 143--151. Hiralal Agrawal, Joseph R. Horgan, Saul London, and W. Eric Wong. 1995. Fault localization using execution slices and dataflow tests. In Proceedings of the International Symposium on Software Reliability Engineering (ISSRE\u201995). IEEE, 143--151."},{"key":"e_1_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.1145\/2568225.2568268"},{"key":"e_1_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1007\/s11334-013-0207-x"},{"key":"e_1_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1109\/DSN.2011.5958253"},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/1985793.1985871"},{"key":"e_1_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.1145\/1806799.1806840"},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/2501988.2502050"},{"key":"e_1_2_1_9_1","volume-title":"Retrieved","author":"Chen Pearl","year":"2014","unstructured":"Pearl Chen . 2014 . Debugging Asynchronous JavaScript with Chrome DevTools . Retrieved June 18, 2015, from https:\/\/2.zoppoz.workers.dev:443\/http\/www.html5rocks.com\/en\/tutorials\/developertools\/async-call-stack\/. Pearl Chen. 2014. Debugging Asynchronous JavaScript with Chrome DevTools. Retrieved June 18, 2015, from https:\/\/2.zoppoz.workers.dev:443\/http\/www.html5rocks.com\/en\/tutorials\/developertools\/async-call-stack\/."},{"key":"e_1_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1145\/1062455.1062522"},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/1456650.1456652"},{"key":"e_1_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1147\/sj.282.0294"},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.2010.47"},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.2009.28"},{"key":"e_1_2_1_15_1","volume-title":"Qualitative Inquiry and Research Design: Choosing Among Five Approaches","author":"Creswell John W.","unstructured":"John W. Creswell . 2012. Qualitative Inquiry and Research Design: Choosing Among Five Approaches ( 2 nd ed.). Sage , Thousand Oaks, CA . John W. Creswell. 2012. Qualitative Inquiry and Research Design: Choosing Among Five Approaches (2nd ed.). Sage, Thousand Oaks, CA.","edition":"2"},{"key":"e_1_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.5555\/2486788.2486887"},{"key":"e_1_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1145\/2568225.2568234"},{"key":"e_1_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.5555\/1767111.1767119"},{"key":"e_1_2_1_19_1","doi-asserted-by":"publisher","DOI":"10.1145\/1101908.1101949"},{"key":"e_1_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.1016\/0020-0190(88)90054-3"},{"key":"e_1_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-02818-2_21"},{"key":"e_1_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.1145\/2187836.2187947"},{"key":"e_1_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-39200-9_17"},{"key":"e_1_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICPC.2010.14"},{"key":"e_1_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.2011.28"},{"key":"e_1_2_1_26_1","volume-title":"Proceedings of the 7th USENIX Conference on Networked Systems Design and Implementation (NSDI\u201910)","author":"Mickens James","year":"2010","unstructured":"James Mickens , Jeremy Elson , and Jon Howell . 2010 . Mugshot: Deterministic capture and replay for javascript applications . In Proceedings of the 7th USENIX Conference on Networked Systems Design and Implementation (NSDI\u201910) . USENIX Association, 159--174. James Mickens, Jeremy Elson, and Jon Howell. 2010. Mugshot: Deterministic capture and replay for javascript applications. In Proceedings of the 7th USENIX Conference on Networked Systems Design and Implementation (NSDI\u201910). USENIX Association, 159--174."},{"key":"e_1_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.2014.2371458"},{"key":"e_1_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-02818-2_12"},{"key":"e_1_2_1_29_1","doi-asserted-by":"publisher","DOI":"10.1145\/1065887.1065892"},{"key":"e_1_2_1_30_1","doi-asserted-by":"publisher","DOI":"10.1109\/ESEM.2013.18"},{"key":"e_1_2_1_31_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICST.2012.83"},{"key":"e_1_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.1109\/VLHCC.2009.5295287"},{"key":"e_1_2_1_33_1","doi-asserted-by":"publisher","DOI":"10.5555\/1038267.1039039"},{"volume-title":"International Workshop on Automated and Algorithmic Debugging","author":"Pytlik Brock","key":"e_1_2_1_34_1","unstructured":"Brock Pytlik , Manos Renieris , Shriram Krishnamurthi , and Steven P. Reiss . 2003. Automated fault localization using potential invariants . In International Workshop on Automated and Algorithmic Debugging . Ghent, Belgium, 273--276. Brock Pytlik, Manos Renieris, Shriram Krishnamurthi, and Steven P. Reiss. 2003. Automated fault localization using potential invariants. In International Workshop on Automated and Algorithmic Debugging. Ghent, Belgium, 273--276."},{"key":"e_1_2_1_35_1","doi-asserted-by":"publisher","DOI":"10.1145\/2509136.2509538"},{"key":"e_1_2_1_36_1","doi-asserted-by":"publisher","DOI":"10.1145\/2491411.2491447"},{"key":"e_1_2_1_37_1","doi-asserted-by":"publisher","DOI":"10.1145\/1273442.1250748"},{"key":"e_1_2_1_38_1","doi-asserted-by":"publisher","DOI":"10.5555\/2486788.2486810"},{"key":"e_1_2_1_39_1","doi-asserted-by":"publisher","DOI":"10.1016\/S0020-7373(85)80054-7"},{"key":"e_1_2_1_40_1","unstructured":"W3C. 2000. Document Object Model (DOM) Level 2 Events Specification. Retrieved from https:\/\/2.zoppoz.workers.dev:443\/http\/www.w3.org\/TR\/DOM-Level-2-Events\/.  W3C. 2000. Document Object Model (DOM) Level 2 Events Specification. Retrieved from https:\/\/2.zoppoz.workers.dev:443\/http\/www.w3.org\/TR\/DOM-Level-2-Events\/."},{"key":"e_1_2_1_41_1","doi-asserted-by":"publisher","DOI":"10.1145\/2483760.2483788"},{"key":"e_1_2_1_42_1","volume-title":"Proceedings of the International Conference on Software Engineering (ICSE\u201981)","author":"Weiser Mark","year":"1981","unstructured":"Mark Weiser . 1981 . Program slicing . In Proceedings of the International Conference on Software Engineering (ICSE\u201981) . IEEE, 439--449. Mark Weiser. 1981. Program slicing. In Proceedings of the International Conference on Software Engineering (ICSE\u201981). IEEE, 439--449."},{"key":"e_1_2_1_43_1","doi-asserted-by":"publisher","DOI":"10.5555\/330775"},{"key":"e_1_2_1_44_1","doi-asserted-by":"publisher","DOI":"10.1007\/s10703-005-3401-0"},{"key":"e_1_2_1_45_1","doi-asserted-by":"publisher","DOI":"10.1007\/s10664-012-9200-5"},{"key":"e_1_2_1_46_1","doi-asserted-by":"publisher","DOI":"10.1145\/587051.587053"}],"container-title":["ACM Transactions on Software Engineering and Methodology"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/2.zoppoz.workers.dev:443\/https\/dl.acm.org\/doi\/10.1145\/2876441","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/2.zoppoz.workers.dev:443\/https\/dl.acm.org\/doi\/pdf\/10.1145\/2876441","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T04:39:10Z","timestamp":1750221550000},"score":1,"resource":{"primary":{"URL":"https:\/\/2.zoppoz.workers.dev:443\/https\/dl.acm.org\/doi\/10.1145\/2876441"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2016,5,16]]},"references-count":45,"journal-issue":{"issue":"2","published-print":{"date-parts":[[2016,5,16]]}},"alternative-id":["10.1145\/2876441"],"URL":"https:\/\/2.zoppoz.workers.dev:443\/https\/doi.org\/10.1145\/2876441","relation":{},"ISSN":["1049-331X","1557-7392"],"issn-type":[{"type":"print","value":"1049-331X"},{"type":"electronic","value":"1557-7392"}],"subject":[],"published":{"date-parts":[[2016,5,16]]},"assertion":[{"value":"2015-02-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2015-11-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2016-05-16","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}