![]() |
|
Biography
I am a tenure-track Assistant Professor at Southern University of Science and Technology. On March 2018, I obtained my PhD degree from National University of Singapore. During my PhD studies, I was advised by Prof. Abhik Roychoudhury. Previously, I received my bachelor and master degrees from Department of Computer Science of University of Illinois at Urbana-Champaign. During my Master studies, I was co-advised by Darko Marinov and Lin Tan.
My CV is available for download here. My research interests include:- Automated Program Repair
- Software Testing
- Genetic Improvement
- Mobile App Analysis
- Comment Analysis
I am currently seeking new PhD students, Master students, and PostDocs with background in program analysis, software testing, and Android apps (NLP, evolutionary/genetic algorithm or machine learning experiences is a plus). If you are interested, please send me an email to set up a meeting.
News
- Feb. 2021:Our paper on "GitHub-OSS Fixit: Fixing bugs at scale in a Software Engineering Course" has been accepted to ICSE2021-JSEET!
- Jan. 2021:Our paper on "Combining Graph-based Learning with Automated Data Collection for Code Vulnerability Detection" has been accepted on TIFS!
- Dec. 2020: I won the Distinguished Reviewer Awards in ESEC/FSE 2020!
- Sept. 2020: I won the Distinguished PC Member award in ASE2020!
- Sept. 2020: I was invited to join the ACM TOSEM Board of Distinguished Reviewers!
- July. 2020: Our paper on "Automated Patch Transplantation" has been accepted on TOSEM!
- May. 2020: Our poster on "Bugine: a bug report recommendation system for Android apps" has been accepted to ICSE!
- Dec. 2019: Our paper on "Collaborative bug finding for Android apps" has been accepted on ICSE2020!
- Dec. 2019: My student won third prize in the "Tencent WeTest Cup" Human-Machine Debugging Competition 2019!
- Nov. 2019: My student won first prize in the National Student Contest of Software Testing 2019!
- Nov. 2019: I will be organizing the 1st International workshop on Automated Program Repair @ICSE 2020 with Sergey, Martin and Mukul!
- Oct. 2019: I have received the General Program 2020 from Natural Science Foundation of Guangdong Province!
- Sept. 2019: Our paper on Automating CUDA Synchronization via Program Transformation has been accepted on ASE2019!
- Aug. 2019: I have received the Young Researcher Fund 2019 from National Natural Science Foundation of China!
- July 2019: Presented a talk titled "Selecting a research topic: Reflection and Lessons from My Research Journey" in Ada workshop co-located with ISSTA 2019. Please download the slide here.
- June 2019: Please consider submitting your work to ICSE2020. I am in the Program Committee!
- May 2019: My student won the bronze medal in ACM Student Research Competition at ICSE2019
- May 2019: Please consider submitting your work to ASE 2019. I am in the Program Committee!
- April. 2019: Please find the slides for Tips for Paper Writing in Latex at this link.
- Dec. 2018: Our paper on Can I Have a Stack Trace to Examine the Dependency Conflict Issue? has been accepted on ICSE2019!
- Nov. 2018: Please consider submitting your work to 6th Workshop on Genetic Improvement @ICSE2019. I am one of the organizers of the GI workshop.
- Nov. 2018: My student won first prize in the National Student Contest of Software Testing 2018!
- Oct. 2018: Please consider submitting your work to ESEC/FSE 2019 Tool Demos. I am on the program committee.
- Sept. 2018:Attended ASE 2018
- June. 2018: Started my new position as Assistant Professor in Southern University of Science and Technology
- May. 2018: Presented "Repairing crashes in Android Apps" at ICSE 2018
- April. 2018: Please consider submitting your work to ICSE 2019 ACM Student Research Competition. I am on the program committee.
- March. 2018: Our paper on "A spoonful of DevOps helps the GI go down" has been accepted in GI 2018@ICSE2018!
- Jan. 2018: Our journal on "A Correlation Study between Automated Program Repair and Test-Suite Metrics" has been accepted in ICSE2018 (Journal First)!
- Jan. 2018: Invited and Presented "Repairing crashes in Android Apps" at Dagstuhl Seminar on Genetic Improvement of Software
- Dec. 2017: Our paper on "Repairing Crashes in Android Apps" has been accepted in ICSE2018!
- Jan. 2017: Invited and Presented "Design of repair operators for automated program repair" at 50th CREST Open Workshop - Genetic Improvement
- Jan. 2017: Attending Global Young Scientists Summit (GYSS) 2017
- Nov. 2016: @tComment is publicly available in github!
- Oct. 2016: Attended 2016 Grace Hopper Celebration of Women in Computing
- Sept. 2016: Invited and Presented "Anti-pattern in Search-Based Program Repairs" at Microsoft PhD Forum 2016 at Microsoft Research Asia.
- Aug. 2016: Received Google Anita Borg Travel Grant for attending 2016 Grace Hopper Celebration of Women in Computing
- Aug. 2016: Received Dean's Graduate Research Excellence Award
- Aug. 2015: Featured in NUS Computing News on Google Anita Borg Scholarship
Services
- PC for Student Research Competition for ICSE 2021.
- PC for ASE 2020.
- Student Volunteer Co-Chair for ISSTA 2020.
- PC for FSE 2020.
- Organizer and Co-chair for 1st International Workshop on Automated Program Repair (APR 2020).
- PC for ICSE 2020.
- PC for ASE 2019.
- Program Chair for 6th Workshop on Genetic Improvement @ICSE2019.
- PC for ESEC/FSE 2019 Tool Demos.
- PC for Student Research Competition at ICSE 2019
- PC for Genetic Improvement Workshop Genetic and Evolutionary Computation Conference (GECCO2018)
- Reviewer for Transactions on Software Engineering (TSE2017)
- Reviewer for Empirical Software Engineering (EMSE2017)
- Artifact Evaluation Committee for The ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA2014)
- Co-reviewer for International Conference on Software Engineering (NIER)
Research Projects
GitHub-OSS Fixit | Visit Website |
GitHub-OSS Fixit is a project where students form teams to fix GitHub issues reported in open-source Java projects. | |
Droix | Visit Website |
Droix is a novel automated repair framework for Android apps. Droix could repair crashes based on one crashing UI input. We also propose Droixbench, a benchmark that contains a set of reproducible crashes in Android apps. | |
Codeflaws | Visit Website |
Codeflaws is a benchmark that allows objective evaluation of program repair tools across defect classes. | |
Anti-patterns in Search-Based Program Repairs | Visit Website |
Instead of using repair patterns obtained from human patches, our set of anti-patterns can be enforced on top of any search-based program repair tools. Enforcing anti-patterns in repair tools produces repairs faster, localizes better, and deletes less. | |
relifix | |
A test-driven automated repair tool that uses a novel set of contextual operators for automated repair of software regressions. Our set of operators uses syntactical information from changed statements. Repair more bugs than existing program repair tool, GenProg and our generated repairs are less less likely to introduce new regressions than GenProg. | |
Software Change Contract | Visit Website |
A language that could be used to specify intended effect of program changes. Change contract focuses only on the program changes and their intended semantic effect. Program behavior that is unchanged across version does not need to be captured. | |
@tComment | Visit Website |
Novel approach that automatically generates unit tests that check for inconsistencies between Javadoc comments written in natural languages and Java source code. Reported 24 inconsistencies in 6 open-sources Java projects. | |
ReAssert | Visit Website |
A tool that automatically repair broken tests with the push of a button. |
Software Patents
Software program repair | Patent |
Hiroaki Yoshida, Shin Hwei Tan, Mukul R. Prasad | |
(Abstract) According to an aspect of an embodiment, one or more systems or methods may be configured to locate a fault in a software program using a test suite. The systems or methods may be further configured to modify, using a repair template, the software program in response to locating the fault. In addition, the systems or methods may be configured to determine whether the modification satisfies an anti-pattern condition. The anti-pattern condition may indicate whether the modification is improper. The systems or methods may also be configured to disallow the modification in response to the modification satisfying the anti-pattern condition or perform further testing on the software program, as modified, in response to the modification not satisfying the anti-pattern condition. |
Grants
- Young Researcher Fund 2019, National Natural Science Foundation of China, $270k
- PI for General Program 2020, Natural Science Foundation of Guangdong Province, $100k (I am the sole PI for this grant, other participants are students)
Publications
[ICSE2021-JSEET] (Winner of the World Teacher Day Challenge co-organized by GitHub) | |
![]() |
GitHub-OSS Fixit: Fixing bugs at scale in a Software Engineering Course |
![]() | Shin Hwei Tan, Chunfeng Hu, Ziqiang Li, Xiaowen Zhang, Ying Zhou |
(One-line Abstract) We present GitHub-OSS Fixit, a team-based course project where we taught students how to apply Software Engineering concepts in fixing bugs in open-source projects in GitHub. | |
[TIFS2020] | |
![]() |
Combining Graph-Based Learning With Automated Data Collection for Code Vulnerability Detection |
![]() | Huanting Wang , Guixin Ye , Zhanyong Tang , Shin Hwei Tan, Songfang Huang, Dingyi Fang, Yansong Feng, Lizhong Bian, Zheng Wang |
(One-line Abstract) We present FUNDED, a novel learning framework for building vulnerability detection models that leverages the advances in graph neural networks (GNNs) to develop a novel graph-based learning method to capture and reason about the program’s control, data, and call dependencies. | |
[TOSEM2020] | |
![]() |
Automated Patch Transplantation |
![]() | Ridwan Salihin Shariffdeen, Shin Hwei Tan*, Mingyuan Gao, Abhik Roychoudhury |
(One-line Abstract) We present PatchWeave, a technique that automatically extracts patches and transplants them to another target program that fails on the same test case | |
[ICSE2020] | |
![]() |
Collaborative Bug Finding for Android Apps |
![]() | Shin Hwei Tan, Ziqiang Li |
(One-line Abstract) We propose collaborative bug finding, a novel form of testing that exploits the similarities between Android apps for crafting test scenarios specialized for a given app under test. | |
[ICSE2020 Poster] | |
![]() |
Bugine: a bug report recommendation system for Android apps |
![]() | Ziqiang Li, Shin Hwei Tan* |
(One-line Abstract) We present Bugine, a new bug recommendation system that automatically selects relevant bug reports from other applications that have similar bugs. | |
[ASE2019] | |
![]() |
Automating CUDA Synchronization via Program Transformation |
![]() | Mingyuan Wu, Lingming Zhang, Cong Liu, Shin Hwei Tan, Yuqun Zhang |
(One-line Abstract) We propose AuCS, the first general framework to automate synchronization for CUDA kernel functions. | |
[ICSE2019] | |
![]() |
Could I Have a Stack Trace to Examine the Dependency Conflict Issue? |
![]() | Ying Wang, Ming Wen, Rongxin Wu, Zhenwei Liu, Shin Hwei Tan, Zhiliang Zhu, Hai Yu and Shing-Chi Cheung |
(One-line Abstract) We propose RIDDLE, an automated approach that generates tests and collects crashing stack traces for projects subject to risk of dependency conflicts. | |
41st International Conference on Software Engineering (ICSE), 2019.. | |
[TOSEM 2018,ICSE2019 Journal First] | |
![]() |
Test-Equivalence Analysis for Automatic Patch Generation |
![]() | Sergey Mechtaev, Xiang Gao, Shin Hwei Tan, Abhik Roychoudhury |
(One-line Abstract) We propose two test-equivalence relations based on runtime values and dependencies, respectively, and present an algorithm that performs on-the-fly partitioning of patches into test-equivalence classes. | |
ACM Transactions on Software Engineering and Methodology, 2018. | |
[ASE 2018] | |
![]() |
Android Testing via Synthetic Symbolic Execution |
![]() | Xiang Gao, Shin Hwei Tan, Zhen Dong, Abhik Roychoudhury |
(One-line Abstract) We propose a dynamic symbolic execution engine for Android apps, without any manual modeling of execution environment | |
33rd Automated Software Engineering (ASE), 2018. | |
[ICSE 2018] | |
![]() |
Repairing crashes in Android apps |
![]() | Shin Hwei Tan, Zhen Dong, Xiang Gao, Abhik Roychoudhury |
(One-line Abstract) We propose Droix, the first novel Android repair system that could automatically fix crashes in Android apps based on only one single UI sequence as test input. | |
40th International Conference on Software Engineering (ICSE), 2018. | |
[GI@ICSE 2018] | |
![]() |
A spoonful of DevOps helps the GI go down |
![]() | Benoit Baudry, Nicolas Harrand, Eric Schulte, Chris Timperley, Shin Hwei Tan, Marija Selakovic, Emamurho Ugherughe |
(One-line Abstract) We discuss why we believe that DevOps offers an excellent technical context for easing the adoption of GI techniques by software developers. | |
4th International Genetic Improvement Workshop | |
[EmSE, Journal First ICSE 2018] | |
![]() |
A correlation study between automated program repair and test-suite metrics |
![]() | Jooyong Yi, Shin Hwei Tan, Sergey Mechtaev, Marcel Boehme, Abhik Roychoudhury |
(One-line Abstract) A study that answers the question "Can traditional test-suite metrics proposed for the purpose of software testing also be used for the purpose of automated program repair?". | |
Empirical Software Engineering, Journal First | |
[FSE 2017] | |
![]() |
A Feasibility Study of Using Automated Program Repair for Introductory Programming Assignments |
![]() | Jooyong Yi, Umair Z. Ahmed, Amey Karkare, Shin Hwei Tan, Abhik Roychoudhury |
(One-line Abstract) The first study that investigates the feasibility of applying automated program repair techniques for fixing programming assignments. | |
ACM SIGSOFT International Symposium on Foundations of Software Engineering | |
[ICSE Poster 2017] | |
![]() |
Codeflaws: A Programming Competition Benchmark for Evaluating Automated Program Repair Tools |
![]() | Shin Hwei Tan, Jooyong Yi, Yulis, Sergey Mechtaev, Abhik Roychoudhury |
(One-line Abstract) Codeflaws allows objective evaluation of program repair tools across well-defined defect classes. | |
[FSE 2016] | |
![]() |
Anti-patterns in Search-based Program Repair |
![]() | Shin Hwei Tan, Hiroaki Yoshida, Mukul Prasad and Abhik Roychoudhury |
(One-line Abstract) Enforcing anti-patterns in repair tools produces repairs faster, localizes better, and deletes less. | |
24th ACM SIGSOFT International Symposium on the Foundations of Software Engineering (FSE), 2016. Acceptance Rate: 27% (74/273) | |
[ICSE 2015] | |
![]() |
Relifix: Automated Repair of Software Regressions |
![]() | Shin Hwei Tan, Abhik Roychoudhury |
(One-line Abstract) First automated repair tool for automatic fixing of software regressions using a novel set of contextual operators from two program versions. | |
37th International Conference on Software Engineering (ICSE), 2016. Acceptance Rate: 18.5% (84/452) | |
[TOSEM 2015] | |
![]() |
Software Change Contracts |
![]() | Jooyong Yi, Dawei Qi, Shin Hwei Tan, Abhik Roychoudhury |
(One-line Abstract) Change contracts formally specify the intended effect of program changes. | |
ACM Transactions on Software Engineering and Methodology (TOSEM), 2015 | |
[ISSTA 2013] | |
![]() |
Expressing and Checking Intended Changes via Software Change Contracts. |
![]() | Jooyong Yi, Dawei Qi, Shin Hwei Tan, Abhik Roychoudhury |
(One-line Abstract) Change contracts formally specify the intended effect of program changes. | |
International Symposium on Software Testing and Analysis, (ISSTA), 2013. Acceptance rate: 32/124, 25.8% | |
[ICST 2012] | |
![]() |
@tComment: Testing Javadoc Comments to Detect Comment-Code Inconsistencies |
![]() | Shin Hwei Tan, Darko Marinov, Lin Tan, Gary T. Leaven |
(One-line Abstract) Novel approach that automatically generate tests that check for inconsistencies between Javadoc comments and Java source code. | |
Fifth International Conference on Software Testing, Verification and Validation, (ICST), 2012. Acceptance Rate: 26.9% (39/145). | |
[ICSE 2011] | |
![]() |
ReAssert: A Tool for Repairing Broken Unit Tests |
![]() | Brett Daniel, Tihomir Gvero, Vilas Jagannath, Johnston Jiaa, Damion Mitchell, Jurand Nogiec, Shin Hwei Tan, Darko Marinov |
(One-line Abstract) A tool (Eclipse-plugin) that automatically fixes broken unit tests. | |
33rd International Conference on Software Engineering, (ICSE Demo), 2011. | |
[Master Thesis] | |
![]() |
@tComment: Testing Javadoc Comments to Detect Comment-Code Inconsistencies |
![]() | Shin Hwei Tan |
Thesis submitted for the degree of Master of Science (MS), Department of Computer Science, University of Illinois at Urbana-Champaign in 2012. Won David J. Kuck Outstanding MS Thesis Award! | |
Selected Awards
- Google Anita Borg Memorial Scholarship (2015)
- Aim to encourage women to excel in computing and technology, and become active role models and leaders in these fields
- David J. Kuck Outstanding MS Thesis Award (2013)
- Best Master Thesis in UIUC
Awards and Recognitions
- Distinguished Reviewer Awards in ESEC/FSE 2020
- Distinguished PC Member award in ASE2020
- Google Anita Borg Memorial Scholarship (2015)
- David J. Kuck Outstanding MS Thesis Award (2013)
- Dean's Graduate Award (2016)
- Research Achievement Award (2015)
- MSRA Fellowship Nomination Award (2013)
- Singapore International Graduate Award (2012-2016)
- ACM-W Scholarship (2012)
- Malaysian Government Scholarship (2006-2010)
- Rockwell Collins Scholarship (2009)
- Motorola Academic Scholarship (2008)