Skip to main content
Susmita Haldar

    Susmita Haldar

    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
    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.
    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