Research

My research focuses on the following topics:

  • Software Verification & Validation
  • Generative AI and Large Language Models (LLM) in Software Engineering
  • Prompt Engineering for Software Engineering
  • Human Factors in Software Engineering
  • Software Testing
  • Software Engineering Education

Research Interests

Harnessing the Potential of Generative AI in Software Engineering

Generative AI (GenAI) refers to a category of tools and algorithms that can create new output based on an extensive set of inputs (‘training data’). Currently, Large Language Models (LLM) tools that are highly relevant to software engineering include Co-Pilot and ChatGPT. This emerging technology has the potential to increase by many folds the productivity of software professionals. The opportunities are immense, but we are just scratching the surface of the impact of this new technology in the software life cycle phases. I am particularly interested in which ways can GenAI and prompt engineering be used effectively to improve software engineering practices? What is the impact of LLM on software engineering training and education? Are there any drawbacks/pitfalls/risks in adopting GenAI in software development?

Human Aspects of Software Engineering

Software engineering is forecast to be among the fastest growing employment fields in ensuing decades. This investigation correlates the personality types of software engineers to the main tasks of a software life cycle. This research tries to match the MBTI dimensions (extraversion-introversion, sensing-intuition, thinking-feeling, judging-perceiving) with some skills believed to be relevant in each phase of a software life cycle model, skills such as concern for user requirements, ability to innovate, attention to details, compliance with deadlines, and so on. The result of this work may help software professionals find a niche in sub-areas of software engineering, increase their job satisfaction and improve performance.

A Holistic Approach to Software Testing

My long-term objective is to establish a comprehensive research program in human factors in software engineering, which will lead to the development of solutions to problems related to software testing. We intend to pursue a model describing human stimuli and inhibitors for software testing by studying the (un)popularity of software testing among software engineering students and software practitioners, and develop a novel test analytics engine that encompasses a wide variety of software development data. These analytics enable software engineers to get insight into test activities at the personal and team level. The insights thus obtained broaden the scope of test scenarios, stimulating the creation of both best case and worst case test scenarios.