Software Engineering
His present research interests include Requirement Engineering, Software Modeling and Design, Software Testing - specifically Unit Testing, Test Case Generation, Test-Driven Development, and Experimental Software Engineering.
Testing is the most important method used to validate a software product. In general, many different levels of testing are applied in a software project. Unit testing is normally the first formal test activity performed in the software life cycle and it occurs during the implementation phase after a program unit is coded. Unit testing is an efficient method of detecting and isolating defects in individual units of code. As unit testing helps in detecting most of the defects injected during coding, it is critical to ensuring the final quality of the completed system.
In object-oriented software, a class or a small collection of classes is generally chosen to represent a unit for unit testing purposes. We explore some issues relating to the unit testing of object-oriented systems, using the experimental approach for validation. Following are some of the work that we have undertaken so far:
1. We have developed a framework for assessing the effectiveness and the efficiency of unit testing. This framework have been applied to evaluate three control-flow based coverage criteria. appeared in TACAS-06, HICSS-07, STTT-08 summary
2. We evaluate whether Test-Driven Development (TDD), in which unit tests are written before coding, is helpful.appeared in ESEM-07 summary
3. We evaluate how to combine unit testing with code inspection to improve the effectiveness and the efficiency of the overall verification and validation activities at unit level. appeared in ESEM-07 summary
4. We have proposed an approach to generate automated unit test cases from class specifications and demonstrated it on a set of test-programs to judge its effectiveness. The proposed approach has end-to-end automation potential, and we are working to develop a tool support for Java software development.Some initial work on this topic has appeared in APSEC-06, MODEVVA-06
Machine Learning
Natural Language Processing