ABSTRACT
A component-based software system consists of well-encapsulated components that interact with each other via their interfaces. Software integration tests are generated to test the interactions among different components. These tests are usually in the form of sequences of interface method calls. Although many components are equipped with documents that provide informal specifications of individual interface methods, few documents specify component interaction constraints on the usage of these interface methods, including the order in which these methods should be called and the constraints on the method arguments and returns across multiple methods. In this paper, we propose Substra, a framework for automatic generation of software integration tests based on call-sequence constraints inferred from initial-test executions or normal runs of the subsystem under test. Two types of sequencing constraints are inferred: shared subsystem states and object define-use relationships. The inferred constraints are used to guide automatic generation of integration tests. We have implemented Substra with a tool and applied the tool on an ATM example. The preliminary results show that the tool can effectively generate integration tests that exercise new program behaviors.
- S. Ali, M. J. ur Rehman, L. C. Briand, H. Asghar, Z. Zafar, and A. Nadeem. A state-based approach to integration testing for object-oriented programs. Technical Report SCE-05-08, Department of Systems and Computer Engineering, Carleton University, May 2005.Google Scholar
- G. Ammons, R. Bodik, and J. R. Larus. Mining specifications. In Proc. 29th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 4--16, 2002. Google ScholarDigital Library
- F. Basanieri, A. Bertolino, and E. Marchetti. The Cow-Suite approach to planning and deriving test suites in UML projects. In Proc. 5th International Conference on the Unified Modeling Language, pages 383--397, 2002. Google ScholarDigital Library
- R. C. Bjork. ATM example introduction. http://courses.knox.edu/cs292/ATMExample/Intro.html.Google Scholar
- M. D. Ernst, J. Cockrell, W. G. Griswold, and D. Notkin. Dynamically discovering likely program invariants to support program evolution. IEEE Trans. Softw. Eng., 27(2):99--123, 2001. Google ScholarDigital Library
- G. T. Heineman and W. T. Councill. Component-Based Software Engineering: Putting the Pieces Together. Addison-Wesley, 2001. Google ScholarDigital Library
- D. Kung, N. Suchak, J. Gao, and P. Hsia. On object state testing. In Proc. 18th International Computer Software and Applications Conference, pages 222--227, 1994.Google ScholarCross Ref
- L. C. Briand, Y. Labiche, and J. Leduc. Towards the reverse engineering of UML sequence diagrams for distributed real-time Java software. Technical Report SCE-04-04, Carleton University, September 2004.Google Scholar
- A. Orso and B. Kennedy. Selective Capture and Replay of Program Executions. In Proc. 3rd International ICSE Workshop on Dynamic Analysis, pages 29--35, St. Louis, MO, May 2005. Google ScholarDigital Library
- A. Paradkar. SALT - an integrated environment to automate generation of function tests for APIs. In Proc. 11th International Symposium on Software Reliability Engineering, pages 304--316, 2000. Google ScholarDigital Library
- A. Rountev, O. Volgin, and M. Reddoch. Static Control-Flow Analysis for Reverse Engineering of UML Sequence Diagrams. In Proc. ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools and Engineering, pages 96--102, September 2005. Google ScholarDigital Library
- D. Saff, S. Artzi, J. H. Perkins, and M. D. Ernst. Automatic test factoring for Java. In Proc. 21st Annual International Conference on Automated Software Engineering, pages 114--123, Long Beach, CA, November 2005. Google ScholarDigital Library
- K. Sen and G. Agha. Automated systematic testing of open distributed programs. In Proc. International Conference on Fundamental Approaches to Software Engineering (FASE 2006), 2006. Google ScholarDigital Library
- J. Whaley, M. C. Martin, and M. S. Lam. Automatic extraction of object-oriented component interfaces. In Proc. International Symposium on Software Testing and Analysis, pages 218--228, 2002. Google ScholarDigital Library
- T. Xie, D. Marinov, and D. Notkin. Rostra: A framework for detecting redundant object-oriented unit tests. In Proc. 19th IEEE International Conference on Automated Software Engineering, pages 196--205, Sept. 2004. Google ScholarDigital Library
- T. Xie and D. Notkin. Automatic extraction of object-oriented observer ions from unit-test executions. In Proc. 6th International Conference on Formal Engineering Methods, pages 290--305, Nov. 2004.Google ScholarCross Ref
- T. Xie and D. Notkin. Automatic extraction of sliced object state machines for component interfaces. In Proceedings of the 3rd Workshop on Specification and Verification of Component-Based Systems (SAVCBS 2004), pages 39--46, October 2004.Google Scholar
- T. Xie and D. Notkin. Tool-assisted unit-test generation and selection based on operational abstractions. Automated Software Engineering Journal, 2006. Google ScholarDigital Library
- H. Yuan and T. Xie. Automatic extraction of abstract-object-state machines based on branch coverage. In Proc. 1st International Workshop on Reverse Engineering To Requirements at WCRE 2005, pages 5--11, November 2005.Google Scholar
Index Terms
- Substra: a framework for automatic generation of integration tests
Recommendations
Generating combinatorial test suite for interaction relationship
SOQUA '07: Fourth international workshop on Software quality assurance: in conjunction with the 6th ESEC/FSE joint meetingCombinatorial testing could detect the faults triggered by the interactions among factors in software. But in many cases, the pair-wise, N-way and even the variable strength combinatorial testing may lead test suite redundancy and fault detect ability ...
Continuous test suite augmentation in software product lines
SPLC '13: Proceedings of the 17th International Software Product Line ConferenceSoftware Product Line (SPL) engineering offers several advantages in the development of families of software products. There is still a need, however, to generate test cases for individual products in product lines more efficiently. In this paper we ...
Randomization for testing systems of systems
IRI'09: Proceedings of the 10th IEEE international conference on Information Reuse & IntegrationThis paper applies randomization theory to the problem of selecting software test cases for software systems and applications in order to overcome the hurdle of high cost in testing componentized Systems of Systems (SoS). We have used a corner point ...
Comments