Behind the implementation of Singapore’s Smart Nation Initiative are programmers working hard at developing software for a myriad of applications. Code debugging — a colloquial term used to identify and remove errors from computer software code — is a major focus in this effort. In fact, it has been estimated that software developers spend half of their time debugging software, which translates to $312 billion per year. Automating the debugging process would improve efficiency of programmers, in addition to saving development costs.
At the forefront of this emerging field is Professor Abhik Roychoudhury, a recipient of the Ministry of Education’s AcRF Tier 3 grant for his research on Automated Program Repair. Automated program repair allows the identification and rectification of software errors and vulnerabilities to be performed in an automated manner — an approach that would not only improve a programmer’s productivity, but could also help to fix security vulnerabilities in real-time. For example, the ability to identify and patch vulnerabilities before they are exploited by hackers or those with malicious intent, may enable developers to gain the upper hand in securing online systems.
In addition, Prof Roychoudhury and his team are also conducting research to find vulnerabilities in computer programs by combining black-box or grey-box fuzzing with symbolic execution approaches. Fuzzing is a technique used for software testing, where invalid or unexpected inputs are generated to allow users to detect coding errors and security loopholes automatically. Using black-box or grey-box fuzzing techniques, inputs are automatically generated with little to no knowledge of the computer program itself.
Generating trustworthy program repair patches automatically
The DesCartes Programme aims to enhance real-time decision-making in urban-critical systems, with a focus on individuals and society at large
Developing cyber tools and technologies to strengthen Singapore's defence against rising global cyber threats
Meng, R., Dong, Z., Li, J., Beschastnikh, I., & Roychoudhury, A. (2022). Finding Counterexamples of Temporal Logic Properties in Software Implementations via Greybox Fuzzing. In International Conference on Software Engineering.
Böhme, M., Cadar, C., & Roychoudhury, A. (2020). Fuzzing: Challenges and reflections. 2020 IEEE Software, 38 (3), 79-86.
Goues, C. L., Pradel, M., & Roychoudhury, A. (2019). Automated program repair. Communications of the ACM, 62 (12), 56-65.
Pham, V. T., Böhme, M., Santosa, A. E., Căciulescu, A. R., & Roychoudhury, A. (2019). Smart greybox fuzzing. IEEE Transactions on Software Engineering, 47 (9), 1980-1997.
Mechtaev, S., Yi, J., & Roychoudhury, A. (2016, May). Angelix: Scalable multiline program patch synthesis via symbolic analysis. In Proceedings of the 38th international conference on software engineering (pp. 691-701).
More Researchers