"Every big computing disaster has come from taking too many ideas and putting them in one place." -- Gordon Bell
"Every big computing disaster has come from taking too many ideas and putting them in one place." -- Gordon Bell
Motivation: “New programming languages can improve developer productivity and allow new categories of users to tackle complex programming challenges.” – MIT EECS
Problem: undetected bugs in software development result in software failures. The following are some of the biggest software failures in history.
Requirement/Goal: avoid catastrophic software failures in production environments using a continuous quality assurance of software through systematic testing before deployment and during maintenance.
Challenge: Software testing consumes more than 50% of the maintenance cost and over 80% of the end-to-end time of the overall Software Development Life Cycle (SDLC). A myriad of challenges regularly arise in the course of this testing exercise. The biggest challenge is that software is diverse and their testing is costly. There is no silver bullet!
Research Area: Computer Systems - Software Engineering. Nearest Priority Area of Research Interest at IITGN: Programming Languages. Aligned Major Thrust Area of Research Interest by the Central Government: MeitY – Emerging Areas of Information Technology (IT) – Free and Open Source Software.
My research activities focus on the improvement of existing and the development of new scalable and performant software analysis methodologies to ensure construction of high-quality and trustworthy software systems.
Research Roadmap:
My past research aimed at reducing testing cost and addressing scalability issues, with the focus confined to traditional software systems (non AI-based). [JSS 2019, JSS 2021, TSE 2021, IN Patent 386511, ICSME 2021, EMSE 2024, TOSEM 2024, arXiv 2024]
My current research aims to continue developing better strategies to reduce testing cost and address scalability issues. While traditional (non-AI based) software engineering problems still need attention, the usage of AI in the form of Large Language Models (LLMs) in software development has escalated those problems. Besides being large black-box software, LLMs are non-deterministic systems and lack reliability. Therefore, LLMs need extensive testing. [ASE 2023, FSE 2024 x3, JSS 2025, India HCI 2025]
I plan to pursue further research in software engineering and testing to address existing challenges and explore opportunities for improving software engineering from the perspective of future technologies. Whenever feasible, I would explore the application of LLMs, their challenges and opportunities as AI software tools to solve problems.
Sensitizing Students: CSE, IIT Gandhinagar currently offers three courses, each targeting different levels of maturity: (i) (basic) Introduction to Computing (ES112 - UG core) builds foundations for coding, (ii) (intermediate) Software Tools and Techniques for CSE (CS202 - UG Core), (iii) (intermediate-advanced) Software Engineering and Testing (CS434 - Elective), and (iv) Compilers (CS327 - Elective). All four courses can be undertaken by any student regardless of their discipline or department. Courses ES112 and CS202 are grounded on foundational aspects, and they are relevant for undergraduates. The CS434 and CS327 courses are intended for senior undergraduates and above. In addition to these courses, several project courses provide direct one-on-one opportunities for junior undergraduates to have a research exposure. This academic setting is highly compatible for motivating and integrating students (at all levels) into my research group.
Possible Consequences if my Research Goals are Satisfied: Significant research output duly aligned with my research goals would not only complement existing software engineering approaches from a theoretical viewpoint but would also be practically beneficial if the technology is transferred to the software industry: the ultimate producer of trustworthy software. This would further improve the quality of the software used by the end-users (consumer) in their daily lives. The adoption of new technologies would certainly help advance the current state-of-the-art in software engineering and testing.