Abstract:
Testing software is made easier when testability is high. In general, 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. Therefore, it is helpful to increase a component's testability before it is reused. Also, it is helpful to measure a component's testability to indicate the difficult of revealing faults. Some information about components is needed to in crease and measure component's testabilit, such as information gotten through program analysis. A crucial property of reused software components is that the source is not available, making program analysis significantly more difficult. This thesis addresses this problem by performing program analysis at bytecode level. This bycote analysis technique increases and measures components testability without requiring access to the source code. 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 variable of component. Then, the definition and use information is used to increase component testability during component integration, and measure component testability for estimating the difficulty of testing. We have implemented the technique and applied it on some sampled component. Experimental results reveal that fault detection ability can be increased by using our increasing testability process. Also, the proposed testability measurement is appropriate in indicating component testability.