Shin Hwei Tan 陈馨慧

 


Shin Hwei Tan
Associate Professor (Gina Cody Research Chair)
Email: shinhwei.tan At concordia.ca
Automated Program RepaIr and MaintEnance Lab (A-PRIME)
Department of Computer Science and Software Engineering (CSSE)
Concordia University
Montreal, Canada


Biography

On May 2023, I moved to Concordia University as Associate Professor (Gina Cody Research Chair). On June 2018, I joined Southern University of Science and Technology (SUSTech) as Assistant Professor. On March 2018, I obtained my PhD degree from National University of Singapore. During my PhD studies, I was advised by Abhik Roychoudhury.  Previously, I received my BS and MS 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:

I am always actively seeking new PhD students, Master students, and PostDocs with background in program analysis, software testing, and automated code generation (NLP, genetic algorithm or machine learning experience is a plus). If you are interested, please send me an email.

News

  • Jan. 2024: Please submit your new and exciting papers to our new TOSEM special section on New Frontier in Software Engineering where I am the Guest Editor in Chief!
  • Jan. 2024: Our paper on "Understanding and Detecting Annotation-induced Faults of Static Analyzers" has been accepted to FSE2024!
  • Dec. 2023: Our paper on "Combining Structured Static Code Information and Dynamic Symbolic Traces for Software Vulnerability Prediction" has been accepted to ICSE2024!
  • Dec. 2023: Our paper on "Investigating and Detecting Silent Bugs in PyTorch Programs" has been accepted to SANER2024!
  • Nov. 2023: Our paper on "Statfier: Automated Testing of Static Analyzers via Semantic-preserving Program Transformations" has been accepted to FSE2023!
  • Nov. 2023: Our first paper on ethics in OSS "Towards Automated Detection of Unethical Behavior in Open-source Software Projects" has been accepted to FSE2023!
  • Nov. 2023: Our paper on "A Generative and Mutational Approach for Synthesizing Bug-exposing Test Cases to Guide Compiler Fuzzing" has been accepted to FSE2023!
  • Oct. 2023: Our paper on "Concept-Based Automated Grading of CS-1 Programming Assignments" has been accepted to ISSTA2023!
  • Feb. 2023: Our paper on "Recursive State Machine Guided Graph Folding for Context-Free Language Reachability" has been accepted to PLDI2023!
  • Feb. 2023: Our paper on "CrossFix: Resolution of GitHub issues via Similar Bugs Recommendation" has been accepted to Journal of Software: Evolution and Process 2012 (JSME)!
  • Dec. 2022: Our paper on "Automated Repair of Program from Large Language Models" has been accepted to ICSE2023! Read our arXiv version!
  • Dec. 2022: My first all-female authors paper on "Efficient Pattern-based Static Analysis Approach via Regular-Expression Rules" has been accepted to SANER2023!
  • Dec. 2022: Our paper on "Event-Aware Precise Dynamic Slicing for Automatic Debugging of Android Applications" has been accepted to JSS!
  • Dec. 2022: I am co-chairing the 4th International workshop on Automated Program Repair @ICSE 2023. Please submit to APR23!
  • Nov. 2022: I gave a talk as the panelist for the International Open-source Education Roundtable!
  • Nov. 2022: I gave a talk in the Ask Me Everything section of ChinaSoft!
  • Nov. 2022: I co-chaired and gave two talks in the Ada Workshop@FSE2022!
  • Sep. 2022: Our GitHub-OSS Fixit Project was adopted as course project for CS427 of UIUC!
  • Aug. 2022: I was invited as the PC for International Symposium on Information and Communication Technology (SoICT 2022)!
  • June 2022: I was invited as the Associate Editor for ACM TOSEM!
  • May 2022: APR workshop is 3 years old! The 3rd International workshop on Automated Program Repair @ICSE 2022 has accepted 11 submissions with 120 registrants!
  • May 2022: I organized the CCF开源高校行 (CCF Open-source University Seminar) in SUSTech!
  • May 2022: I secured 40k grant with Huawei on Automated Repair of GUI tests (GUI自动化测试技术合作项目---界面变更自动化修复脚本)!
  • Apr. 2022: I won the Best Reviewers Awards in ICSE 2022 NIER-track!
  • Apr. 2022: Our paper on "Software engineering teaching based on open-source software" (基于开源软件的软件工程实践教学) was selected as 软件导刊's cover article!
  • Mar. 2022: I am selected as the recipient for the Women in Open Source for the talent program in Linux Foundation Open Source Software Organization (LFOSSA)!
  • Dec. 2021: Our paper on "Automated Patch Backporting in Linux (Experience Paper)" received Distinguished Artifact Award!
  • Sept. 2021: I joined as a panelist at the ICSME21 Doctoral Symposium.
  • Sept. 2021: I was selected as the member of the CCF Open-source Development Committee.
  • Sept. 2021: I was invited to co-chair the SRC track in MOBILESoft 2022 which is co-located with ICSE 2022!
  • June 2021: Our paper on "Automated Patch Backporting in Linux (Experience Paper)" has been accepted to ISSTA2021!
  • May 2021: Our paper on "Automated Conformance Testing for JavaScript Engines via Deep Compiler Fuzzing" has been accepted to PLDI2021!
  • 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!
  • Older news: ...

Services

Research Projects

LMDefects

Visit Website
LMDefects is a dataset that contains defects in programs auto-generated by Codex.

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.

Chinese articles

基于开源软件的软件工程实践教学.软件导刊. 2022, Vol 21 (3), Selected as the cover article.

将开源和企业引入计算机课程教学——“把教学场景用起来”模式探讨 (CCF article)

Grants

  • Young Researcher Fund 2019, National Natural Science Foundation of China, $270k
  • PI for General Program 2020, Natural Science Foundation of Guangdong Province, $100k
  • PI for Automated Repair of GUI tests (GUI自动化测试技术合作项目---界面变更自动化修复脚本) 2022, $40k

Publications

[FSE2024]
bibtex Understanding and Detecting Annotation-Induced Faults of Static Analyzers
bibtexHuaien Zhang, Yu Pei, Shuyun Liang, Shin Hwei Tan
(One-line Abstract) We present a study of annotation-induced faults of static analyzers and a tool AnnaTester that automatically tests static analyzers for annotation-induced faults.
[ICSE2024]
bibtex Combining Structured Static Code Information and Dynamic Symbolic Traces for Software Vulnerability Prediction
bibtexHuanting Wang, Zhanyong Tang, Shin Hwei Tan, Jie Wang, Yuzhe Liu, Hejun Fang, Chunwei Xia, Zheng Wang
(One-line Abstract) We present Concoction, the first DL system to learn program presentations by combining static source code information and dynamic program execution traces.
[FSE2023]
bibtex Statfier: Automated Testing of Static Analyzers via Semantic-preserving Program Transformations
bibtexHuaien Zhang, Yu Pei, Junjie Chen, Shin Hwei Tan
(One-line Abstract) We present Statfier, a heuristic-based automated testing approach for static analyzers that generates program variants via semantic-preserving transformations and detects inconsistencies between the original program and variants.
[FSE2023]
bibtex Towards Automated Detection of Unethical Behavior in Open-source Software Projects
bibtexHsu Myat Win, Haibo Wang, Shin Hwei Tan
(One-line Abstract) We present the first study of unethical behavior in OSS projects from the stakeholders’ perspective, and a tool for automatically detecting these behavior via SWRL rules.
[FSE2023]
bibtex A Generative and Mutational Approach for Synthesizing Bug-exposing Test Cases to Guide Compiler Fuzzing
bibtexGuixin Ye,Tianmin Hu,Zhanyong Tang,Zhenye Fan,Shin Hwei Tan,Bo Zhang,Wenxiang Qian,Zheng Wang
(One-line Abstract) We present COMFUZZ, a focused compiler fuzzing framework. COMFUZZ aims to improve compiler fuzzing efficiency by focusing on testing components and language features that are likely to trigger compiler bugs.
[ISSTA2023]
bibtex Concept-Based Automated Grading of CS-1 Programming Assignments
bibtexZhiyu Fan, Shin Hwei Tan, Abhik Roychoudhury
(One-line Abstract) We proposed the notion of a concept graph (an abstracted control flow graph) for grading and providing feedback for programming assignments.
[PLDI2023]
bibtex Recursive State Machine Guided Graph Folding for Context-Free Language Reachability
bibtexYuxiang Lei, Yulei Sui, Shin Hwei Tan, Qirun Zhang
(One-line Abstract) We proposed graph folding technique to improve the scalability of CFL-reachability by reducing the input graph size.
[ICSE2023]
bibtex Automated Repair of Program from Large Language Models
bibtexZhiyu Fan, Xiang Gao, Martin Mirchev, Abhik Roychoudhury, Shin Hwei Tan
(One-line Abstract) We present (1) a systematic study of whether automated program repair (APR) techniques can fix the incorrect solutions produced by large language models (Codex), (2) the first study that evaluates the newly released Codex edit mode as an APR tool, and (3) propose LMDefects, a new dataset that contains defects made in auto-generated programs by Codex.
[SANER2023]
bibtex Efficient Pattern-based Static Analysis Approach via Regular-Expression Rules
bibtexXiaowen Zhang, Ying Zhou (co-first author), Shin Hwei Tan
(One-line Abstract) We present Codegex, an efficient pattern-based static analysis approach that uses regular expression with several strategies to extract more information from program texts (syntax and type information) to analyze partial and complete code quickly without parsing code into AST.
[JSS2022]
bibtex Event-Aware Precise Dynamic Slicing for Automatic Debugging of Android Applications
bibtexHsu Myat Win, Shin Hwei Tan (corresponding author), Yulei Sui
(One-line Abstract) We present ESDroid, an Event-aware dynamic slicing technique that combines segment-based delta debugging and backward dynamic slicing to produce precise slices for Android apps.
[ISSTA2021]
bibtex Automated Patch Backporting in Linux (Experience Paper)
bibtexRidwan Shariffdeen, Xiang Gao, Gregory J. Duck, Shin Hwei Tan, Julia Lawall, Abhik Roychoudhury
(One-line Abstract) Our empirical study shows that around 8% of all commits submitted to Linux mainline are backported to older versions, but often more than one month elapses before the backport is available. Hence, we propose a patch backporting technique that canautomatically transfer patches from the mainline version of Linux into older stable versions.
[PLDI2021]
bibtex Automated Conformance Testing for JavaScript Engines via Deep Compiler Fuzzing
bibtexGuixin Ye, Zhanyong Tang, Shin Hwei Tan, Dingyi Fang, Xiaoyang Sun, Lizhong Bian, Songfang Huang, Haibo Wang, Zheng Wang
(One-line Abstract) We present COMFORT, a new compiler fuzzing framework for detecting JS engine bugs and behaviors that deviate from the ECMAScript standard. COMFORT leverages the recent advance in deep learning-based language models to automatically generate JS test code.
[ICSE2021-JSEET] (Winner of the World Teacher Day Challenge co-organized by GitHub)
bibtex GitHub-OSS Fixit: Fixing bugs at scale in a Software Engineering Course
bibtexShin 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]
bibtex Combining Graph-Based Learning With Automated Data Collection for Code Vulnerability Detection
bibtexHuanting 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, Journal First ICSE 2021]
bibtex Automated Patch Transplantation
bibtexRidwan 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]
bibtex Collaborative Bug Finding for Android Apps
bibtexShin 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]
bibtex Bugine: a bug report recommendation system for Android apps
bibtexZiqiang 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]
bibtex Automating CUDA Synchronization via Program Transformation
bibtexMingyuan 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]
bibtex Could I Have a Stack Trace to Examine the Dependency Conflict Issue?
bibtexYing 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]
bibtex Test-Equivalence Analysis for Automatic Patch Generation
bibtexSergey 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]
bibtex Android Testing via Synthetic Symbolic Execution
bibtexXiang 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]
bibtex Repairing crashes in Android apps
bibtexShin 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]
bibtex A spoonful of DevOps helps the GI go down
bibtexBenoit 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]
bibtex A correlation study between automated program repair and test-suite metrics
bibtex 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]
bibtex A Feasibility Study of Using Automated Program Repair for Introductory Programming Assignments
bibtexJooyong 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]
bibtex Codeflaws: A Programming Competition Benchmark for Evaluating Automated Program Repair Tools
bibtexShin 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]
bibtex Anti-patterns in Search-based Program Repair
bibtex 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]
bibtex Relifix: Automated Repair of Software Regressions
bibtex 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]
bibtex Software Change Contracts
bibtex 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]
bibtex Expressing and Checking Intended Changes via Software Change Contracts.
bibtex 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]
bibtex @tComment: Testing Javadoc Comments to Detect Comment-Code Inconsistencies
bibtexShin 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]
bibtex ReAssert: A Tool for Repairing Broken Unit Tests
bibtexBrett 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]
bibtex @tComment: Testing Javadoc Comments to Detect Comment-Code Inconsistencies
bibtexShin 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


Awards and Recognitions