Hao, Dan

     

Hao, Dan

Associate Professor with Tenure

Research Interests: Software engineering, software testing

Office Phone: 86-10-6275 7008-11

Email: haodan@pku.edu.cn

Hao, Dan is an associate professor in the Department of Computer Science and technology, School of EECS. She obtained her B.Sc. from Harbin Institute of Technology in 2002, and Ph.D. from Peking University in 2008 respectively. Her research interests include software testing, debugging, and maintenance.

Dan Hao has published more than 40 research papers, and most of them are published in top-tier conferences and journals, such as ICSE, FSE, ASE, ISSTA, TSE, and TOSEM. She is a senior member of ACM and one of the two moderators for SEWORLD. She has served as the PC Co-Chair of AST 2015 and Asian Workshop of ICST 2017, as the Publicity Chair of SCAM 2017, ICST 2019, and in the Program Committee of various international conferences including ICSE 2018, ICSME 2017, SCAM 2015-2017, APSEC 2016, and so on. She is also serving as the reviewers of many international journals like TOSEM, TSE, ACM Computer Survey, and so on. She was awarded the Excellent Youth Scholars of NSFC in 2015 and the Young Yangtze River Scholars of Ministry of Education in 2016.

Dr. Hao is interested in software testing, and her main research achievements are summarized as follows:

1)  Test case prioritization and reduction: Test case prioritization aims to schedule the execution order of test cases so that faults may be detected as early as possible. She proposed a unified test prioritization approach and proposed to explore the work of test case prioritization in a practical and real scenario. Test reduction aims to alleviate the testing efforts by reducing redundant test cases from a test suite. However, all the existing test reduction techniques suffer from the fault-detection loss issue, which hamper the practical usage of these techniques. To address this problem, she proposed an on-demand test reduction technique, which firstly controls the fault-detection loss by analyzing the relation between fault-detection loss and coverage reduction.

2)  Test oracle: Test oracle is widely recognized as a typical difficult problem in software testing. She proposed a metamorphic relation inference technique, which automatically infer metamorphic relations (i.e., one type of test oracles) from a program through analyzing its executions, which firstly automated the inference of metamorphic relations. Later, to facilitate developers decide which variables to observe in software testing, she proposed a static analysis based technique, which is efficient to identify oracle data.

3)  Compiler testing: As compilers are one of the fundamental software, she began to work on this domain around 2016. In particular, she designed an empirical study to investigate the existing compiler testing techniques so as to learn its kernel factors, and then proposed several prioritization techniques to speedup compiler testing.

4)  Mutation testing: Mutation testing is an effective way to measure the adequacy of a test suite, but is widely known to suffer from the cost issue. To address this important problem, she studied mutant selection through an empirical study, and further proposed a predictive mutation testing to reduce the cost of mutation testing through prediction.