• Publications
  • Influence
SemFix: Program repair via semantic analysis
Debugging consumes significant time and effort in any major software development project. Moreover, even after the root cause of a bug is identified, fixing the bug is non-trivial. Given thisExpand
  • 419
  • 45
Angelix: Scalable Multiline Program Patch Synthesis via Symbolic Analysis
Since debugging is a time-consuming activity, automated program repair tools such as GenProg have garnered interest. A recent study revealed that the majority of GenProg repairs avoid bugs simply byExpand
  • 254
  • 36
Coverage-Based Greybox Fuzzing as Markov Chain
Coverage-based Greybox Fuzzing (CGF) is a random testing approach that requires no program analysis. A new test is generated by slightly mutating a seed input. If the test exercises a new andExpand
  • 158
  • 27
Directed Greybox Fuzzing
Existing Greybox Fuzzers (GF) cannot be effectively directed, for instance, towards problematic changes or patches, towards critical system calls or dangerous locations, or towards functions in theExpand
  • 177
  • 25
Coverage-Based Greybox Fuzzing as Markov Chain
Coverage-based Greybox Fuzzing (CGF) is a random testing approach that requires no program analysis. A new test is generated by slightly mutating a seed input. If the test exercises a new andExpand
  • 108
  • 24
DirectFix: Looking for Simple Program Repairs
Recent advances in program repair techniques have raised the possibility of patching bugs automatically. For an automatically generated patch to be accepted by developers, it should not only resolveExpand
  • 195
  • 22
WCET centric data allocation to scratchpad memory
Scratchpad memory is a popular choice for on-chip storage in real-time embedded systems. The allocation of code/data to scratchpad memory is performed at compile time leading to predictable memoryExpand
  • 156
  • 20
Chronos: A timing analyzer for embedded software
Estimating the Worst Case Execution Time (WCET) of real-time embedded software is an important problem. WCET is defined as the upper bound b on the execution time of a program P on a processor X suchExpand
  • 202
  • 16
Detecting energy bugs and hotspots in mobile apps
Over the recent years, the popularity of smartphones has increased dramatically. This has lead to a widespread availability of smartphone applications. Since smartphones operate on a limited amountExpand
  • 149
  • 14
CoREBench: studying complexity of regression errors
Intuitively we know, some software errors are more complex than others. If the error can be fixed by changing one faulty statement, it is a simple error. The more substantial the fix must be, theExpand
  • 53
  • 11