70 likes | 173 Vues
This course provides an in-depth examination of integration testing strategies, focusing on object-oriented approaches. Case studies are presented, showcasing various complexities, including telecommunications software and Java libraries. Key challenges include optimizing the number of stubs needed and the duration for integration. The course also discusses the Perfect Club Benchmarks and the scientific library LAPACK, emphasizing data dependence analysis and its impact on execution order. Students will learn how to select efficient testing strategies through experimental evaluations and practical scenarios.
E N D
ECE 453 – CS 447 – SE 465 Software Testing & Quality AssuranceCase StudiesInstructorPaulo Alencar
Overview • Selecting an integration testing strategy • Some OO integration testing strategies are compared. • Six real-world case studies of various complexities are considered (e.g., small telecommunications software, Swing Java Library) • Optimization problem – minimization of the number of stubs to the written (cost) and the number of steps needed to achieve the integration (duration) • Hahn, V., Akif, K., Traon, Y., Jezequel, J., Selecting an Efficient OO Integration Strategy: An Experimental Evaluation of Data Dependence Analysis Techniques, IEEE Transactions on Parallel and Distributed Systems, vol. 15, no. 3, pp. 196-213, March 2004.
Main Results • Perfect Club Benchmarks, Scientific Library Lapack – Fortran • Perfect Club Benchmarks – collection of scientific • and engineering Fortran 77 programs executed in • high-performance computers • Scientific Library Lapack – a numerical linear algebra library • of Fortran 77 programs for high-performance computers • Polaris compiler (Illinois/Purdue) – restructuring compiler • that automatically parallelizes Fortran programs for execution • on shared memory multiprocessors • Polaris was extended to perform the following tests: the Banerjee • test, I-test, and the Omega test
Main Results • Data dependence: two statements are dependent if both access • the same memory location and at least one of them writes on it • In the presence of data dependence the order of execution in the • original program needs to be preserved. Statements that are not • data dependent may be executed in any order and, therefore, in • parallel • For scalar variables, traditional dataflow analysis can obtain • the data dependence relations (e.g., a sequential loop can be • transformed into a parallel loop if it does not contain loop • carried dependences) • For arrays, the problem is more complicated • and the compiler must examine the subscript expressions • (i.e., determine integer solutions with constraints)
Main Results The Perfect Club Benchmarks: The Scientific Library Lapack:
Main Results The Perfect Club Benchmarks: The Scientific Library Lapack:
Main Results The Scientific Library Lapack: