Bytecode-Based Analysis for Increasing Class-Component Testability

Main Article Content

Supaporn Kansomkeat
Jeff Offutt
Wanchai Rivepiboon

Abstract

Software testing attempts to reveal software faults by executing the program on input values and comparing the outputs from the execution with expected outputs. Testing software is easier when testability is high, so increasing testability allows faults to be
detected more efficiently. Component-based software is often constructed from third party software components. When this is done, the reused components must be retested in the new environment to ensure that they integrate correctly into the new context. However, the “black box” nature of reused components, although offering great benefits otherwise, implicitly reduces their testability. Therefore, it helps to increase a component’s testability before it is reused. To increase a component’s testability, we need information that can be gained through program analysis. A crucial property of reused software components is that the source is not available, making program analysis significantly more difficult. This research addresses this problem by performing program analysis at the bytecode level. This bytecode analysis technique increases component testability without requiring access to the source. A component’s bytecode is analyzed to gather control and data flow information, which is then used to obtain definition and use information of method and class variables. Then, the definition and use information is used to increase component testability during component integration testing. We have implemented the technique and present empirical results for some components, demonstrating that the method is feasible and practical.

Article Details

How to Cite
[1]
S. Kansomkeat, J. Offutt, and W. Rivepiboon, “Bytecode-Based Analysis for Increasing Class-Component Testability”, ECTI-CIT Transactions, vol. 2, no. 1, pp. 33–44, Mar. 2016.
Section
Artificial Intelligence and Machine Learning (AI)