Research Interests:
Research Interests: Computer Science, Artificial Intelligence, Physics, Philosophy, Epistemology, and 13 moreMachine Learning, Data Mining, Quantum Mechanics, Software Development, Software, Software Quality, Random Forest, Predictive Modelling, Support vector machine, Source Code, Programming language, Interpretability, and software metric
Research Interests:
Research Interests:
Research Interests:
Research Interests:
Abstract: Randomization has long been used in testing, but it has not achieved widespread acceptance due to a lack of tool support and a failure to establish recognized best practices. In this paper, we describe RUTE-J, a Java package... more
Abstract: Randomization has long been used in testing, but it has not achieved widespread acceptance due to a lack of tool support and a failure to establish recognized best practices. In this paper, we describe RUTE-J, a Java package intended to provide tool support for randomized Java unit testing. We also discuss the best practices we have identified in our research on randomized unit testing. We report on case studies and an experiment in which we applied RUTE-J to various public-domain Java classes, finding failures even in mature software and supporting the claim that RUTE-J is an efficient, effective tool for unit testing. Finally, we compare the use of randomized unit testing to the use of other tools such as model checkers, and discuss the tradeoffs. We conclude that when best practices are followed, randomized unit testing with tool support is useful both as a preparation for full software model checking, and in its own right. 1
Research Interests:
Program comprehension is an essential part of software maintenance. As software systems are becoming larger, understanding the whole program without prior knowledge is a hard task for the developer and the maintainer. Our approach of... more
Program comprehension is an essential part of software maintenance. As software systems are becoming larger, understanding the whole program without prior knowledge is a hard task for the developer and the maintainer. Our approach of feature extraction reduces the program understanding complexity by identifying features based on input and output statements at the source code level. The presented feature extraction approach is a semi-automatic approach that only requires source code and test cases to identify and extract features. This approach utilizes program slicing, a program reduction technique to extract statements that implement an identified feature. The algorithm is implemented within the CONCEPT (C[barbelow]omprehension O[barbelow]f N[barbelow]et- CE ntered P[barbelow]rograms and T[barbelow]echniques) project. A case study using an open source project called JUnit was conducted to evaluate the applicability of the proposed approach.
Research Interests:
Unit testing is getting more popular as a result of tools like JUnit. One survey reports that 79 % of Microsoft developers write unit tests. Randomized unit testing is “any practice in which