Click here for a copy of my resume in pdf

1   EDUCATION

North Carolina State University
Raleigh, NC
PhD, Computer Science, since August, 2006
(GPA 4.00/4.00)
August, 2006 -
Indian Institute of Technology, Guwahati
Guwahati, India
B.Tech., Computer Science & Engineering (C.P.I 7.07/10)

July, 2000 - May, 2004

2 WORK EXPERIENCE

  • Intern, IBM TJ Watson Research Center (May-August 2008) - Worked as an intern to Dr Amit Paradkar and Dr Avik Sinha at IBM Research
  • Intern, Avaya Labs Research (May-August 2007) - Worked as an intern to Dr David Weiss and Dr Joann Ordille at Avaya Labs Research
  • Teaching Assistant, NC State University (August-December 2006) - Worked as a Teaching Assistant to Dr Annie.I.Anton for the Graduate level Software Engineering course (CSC-510)
  • Research Assistant, RCOST, Benevento, Italy (April 2005 - March 2006) - Worked as a Research Assistant to Dr Massimiliano Di Penta at Research Centre for Software Technology (RCOST), Benevento, Italy
  • Software Engineer, Induslogic, Noida, India (August, 2004 - March 2005) - Worked as a Software Engineer at Indusloc Inc where I develop applications for SIM Cards.
  • Intern, CWI Amsterdam (May-July 2003) - Worked as an Intern to Dr Paul Klint at Software Engineering Group, CWI Amsterdam.

3 RESEARCH INTEREST

  • Regression Testing
  • Automated Test Generation
  • Software Evolution
  • Search-Based Software Engineering

4  MAJOR PROJECTS

.
  • Refactoring Detection for Libraries(Working since September 2006 with Dr Tao Xie (NCSU), Danny Dig (UIUC))
    Almost all the software systems make use of external libraries from different sources, making the systems dependent. As those libraries evolve, they may undergo various kinds of changes, including changes in their APIs and thus breaking the client’s system. Researchers have shown that 80% of the breaking changes are refactorings. Most of the existing tools to detect refactorings make use of internal call site information which may not be available in libraries. We built a tool RefacLib that makes use of heuristics to detect refactorings between two versions of a software. Case studies involving five open source frameworks and libraries show that we are able to detect refactorings with a high precision and recall value
  • Automatic Generation of Differential Unit Tests(Working since December 2006 with Dr Tao Xie)
    Software developers often manipulate (slightly) different versions of software. The most common scenario is changing software systems by evolving them from one version to another. They often face the task of determining how the behaviors of one version of a program unit differ from (or are the same as) the behaviors of a (slightly) different version of the same program unit. In such situations, testers would like to generate tests that exhibit the behavioral differences between the two versions, if any differences exist. Our preliminary work in this direction has resulted in a framework, called Diffut, that enables differential unit testing of object-oriented programs. We have also developed an approach DiffGen for automated generation of diffrential tests.
  • Search-Based Inference for Dialect Grammars (Worked since April, 2005 to March, 2006 with Dr Massimiliano Di Penta (RCOST))
    Building parsers is an essential task for the development of many tools, from software maintenance tools to any kind of business specific, programmable environment having a shell interface. Whilst it can be quite easy to get grammars for many programming languages, these are, very often, almost useless because of the large diffusion of dialects and variants that the available grammar cannot parse. Writing a grammar by hand is clearly feasible, however it can be a tedious task, requiring appropriate skills not always available. Grammar inference is a possible approach for obtaining suitable grammars. However, inference from scratch poses serious scalability issues and tends to produce grammars hard to be understood and to be used to built tools. We adopted Genetic algorithms for evolving existing grammars towards target (dialect) grammars, inferring changes from examples written using the dialect. Results obtained experimenting the inference of C dialect rules show that the algorithm is able to successfully evolve the grammar. Inspections indicated that the changes automatically made to the grammar during its evolution preserved its meaningfulness, and were comparable to what a developer could have done by hand.
  • Search-Based Composition of Web Services (Worked since April, 2005 to March, 2006 with Dr Massimiliano Di Penta and Dr Lerina Aversano(RCOST))
    The design of service composition is one of the most challenging research problems in service oriented software engineering. Building composite services is concerned with identifying suitable set of services that orchestrated in some way are able to solve a business goal which cannot be resolved using a single service. While the literature reports several approaches for (semi) automatic service composition, it still remains an open research issue with many unsolved problems, such as the capability to determine the composition’s topology. We proposed a search based approach to semi automatically support the design of service compositions. In particular, the approach uses genetic programming to automatically generate workflows that accomplish a business goal and exhibit a given QoS level, with the aim of supporting the service integrator activities in the finalization of the workflow.

5   PUBLICATIONS (AVAILABLE ON REQUEST)

5.1 Journals

  • Massimiliano Di Penta, Pierpaolo Lombardi, Kunal Taneja, Luigi Troiano, "Search Based Inference of Dialect Grammars", accepted at Applied Soft Computing Journal.
  • Lerina Aversano, Massimilano Di Penta, Kunal Taneja - A Genetic Programming Approach to Support the Design of Service Compositions" to appear in the special issue on Ëngineering Design and Composition of Service-Oriented Applications" of the International Journal of Computer Systems Science & Engineering

5.2  Conferences

  • Kunal Taneja and Tao Xie - " DiffGen: Automated Regression Unit-Test Generation" - To appear in Proceedings of the 23rd IEEE/ACM International Conference on Automated Software Engineering (ASE 2008), Short Paper, L'Aquila, Italy, September 2008.
  • Kunal Taneja, Danny Dig, and Tao Xie - "Automated Detection of API Refactorings in Libraries: - To appear in Proceedings of the 22nd IEEE/ACM International Conference on Automated Software Engineering (ASE 2007), Short Paper, Atlanta, Georgia, November 2007.
  • Massimiliano Di Penta, Kunal Taneja - "Towards the Automatic Evolution of Reengineering Tools" - In proceedings of the European Conference on Software Maintenance and Reengineering (CSMR 2005), Short Paper, Manchester, UK, pages 241-244, IEEE CS Press, , Mar 2005

5.3  Workshops

  • Tao Xie, Mithun Acharya, Suresh Thummalapenta, and Kunal Taneja. - "Improving Software Reliability and Productivity via Mining Program Source Code." To appear in Proceedings of the NSF Next Generation Software Program Workshop at IPDPS 2008 (NSFNGS 2008), Miami, Florida, April 2008.
  • Tao Xie, Kunal Taneja, Shreyas Kale, and Darko Marinov - "Towards a Framework for Differential Unit Testing of Object-Oriented Programs" - In Proceedings of the 2nd International Workshop on Automation of Software Test (AST 2007)Minneapolis, MN, pp. 5-11, May 2007.
  • Lerina Aversano, Massimiliano Di Penta, Kunal Taneja - Ä Genetic Programming Approach to Support the Design of Service Compositions" - First International Workshop on Engineering Service Compositions - December 12th 2005, Amsterdam, The Netherlands

5.4  Technical Reports

  • Nuo Li, Kunal Taneja, Tao Xie, Maozhong Jin, Chao Liu - "Multiple-Implementation Testing of User-Input Validators." - submitted for publication.

6   COURSEWORK

  • Graduate - Software Testing & Reliability (A+), Compiler Construction (A+), Design and analysis of Algorithms (A-), Special topics in Software testing and analysis (A), Computer Networks (A), Internet Protocols (A+), Computer & Network Security (A-), Automated Learning & Data Analysis (A+), Automata, Languages & Computability Theory (A+).
  • UnderGraduate(Major) - Software Engineering, Compilers, Programming Languages, Operating System, Databases, Algorithms, Computer Architecture, Digital Design, Theory of Computation, Formal Languages & Automata Theory, Computer Networks, Computer & Network Security, WireLess Networks, Discrete Mathematics

7   COMPUTER SKILLS

  • Languages - Java, C++, C, Perl
  • Tools - Eclipse, JUnit, FIT, JavaCC, JCute, Lex, Yacc, Rational Rose, ArgoUML, MySQL, FindBugs, Xilinx
  • Operating Systems - Windows 98/2000/NT/XP, Linux(Red Hat and Debian)

8   REFERENCES

Available on Request