Towards Test Focus Selection for Integration Testing Using Method Level Software Metrics (original) (raw)

Cost-Benefit Analysis of Using Dependency Knowledge at Integration Testing

In software system development, testing can take considerable time and resources, and there are numerous examples in the literature of how to improve the testing process. In particular, methods for selection and prioritization of test cases can play a critical role in efficient use of testing resources. This paper focuses on the problem of selection and ordering of integration-level test cases. Integration testing is performed to evaluate the correctness of several units in composition. Further, for reasons of both effectiveness and safety, many embedded systems are still tested manually. To this end, we propose a process, supported by an online decision support system, for ordering and selection of test cases based on the test result of previously executed test cases. To analyze the economic efficiency of such a system, a customized return on investment (ROI) metric tailored for system integration testing is introduced. Using data collected from the development process of a large-scale safety-critical embedded system, we perform Monte Carlo simulations to evaluate the expected ROI of three variants of the proposed new process. The results show that our proposed decision support system is beneficial in terms of ROI at system integration testing and thus qualifies as an important element in improving the integration testing process.

A New Type of Integration Error and its Influence on Integration Testing Techniques

World Academy of Science, Engineering and Technology, International Journal of Computer, Electrical, Automation, Control and Information Engineering, 2008

Testing is an activity that is required both in the development and maintenance of the software development life cycle in which Integration Testing is an important activity. Integration testing is based on the specification and functionality of the software and thus could be called black-box testing technique. The purpose of integration testing is testing integration between software components. In function or system testing, the concern is with overall behavior and whether the software meets its functional specifications or performance characteristics or how well the software and hardware work together. This explains the importance and necessity of IT for which the emphasis is on interactions between modules and their interfaces. Software errors should be discovered early during IT to reduce the costs of correction. This paper introduces a new type of integration error, presenting an overview of Integration Testing techniques with comparison of each technique and also identifying w...

Focusing Testing by Using Inspection and Product Metrics

International Journal of Software Engineering and Knowledge Engineering, 2013

A well-known approach for identifying defect-prone parts of software in order to focus testing is to use different kinds of product metrics such as size or complexity. Although this approach has been evaluated in many contexts, the question remains if there are further opportunities to improve test focusing. One idea is to identify other types of information that may indicate the location of defect-prone software parts. Data from software inspections, in particular, appear to be promising. This kind of data might already lead to software parts that have inherent difficulties or programming challenges, and in consequence might be defect-prone. This article first explains how inspection and product metrics can be used to focus testing activities. Second, we compare selected product and inspection metrics commonly used to predict defect-prone parts (e.g. size and complexity metrics, inspection defect content metrics, and defect density metrics). Based on initial experience from two cas...

Coupling-based criteria for integration testing

1998

SUMMARY Integration testing is an important part of the testing process, but few integration testing techniques have been systematically studied or defined. The goal of this research is to develop practical, effective, formalizable, automatable techniques for testing of connections between components during software integration. This paper presents an integration testing technique that is based on couplings between software components.

Test Order for Class-based Integration Testing of Java Applications

Quality Software, 2005.( …, 2005

This paper presents an improvement to existing class test ordering strategies by including coupling measures to reduce non-determinism and decrease the number of stubs to be produced. Our novel strategy aims to lift the known methods from class hierarchies to component-based product lines in which so-called connectors between components are key entities for structuring, assembling and integrating software architectures, and in which tighter coupling of classes inside components and looser coupling between classes in different components are fundamental to component-based architecture composition. The paper also evaluates the new method and confirms the expected reductions in the number of stubs generated and the improved test ordering. Two recent test order strategies for C++ are compared with our novel approach through experiments conducted on two mini product lines written in Java. The new proposed test ordering strategy is more deterministic through measuring coupling, which is at the heart of component-based product line architectures.