Projekt

Zurück zur Übersicht

AVATAR: Automated coVerAge-based Testing via static-dynamic Abstraction Refinement and coarsening

Titel Englisch AVATAR: Automated coVerAge-based Testing via static-dynamic Abstraction Refinement and coarsening
Gesuchsteller/in Pezzè Mauro
Nummer 132666
Förderungsinstrument Projektförderung (Abt. I-III)
Forschungseinrichtung Facoltà di scienze informatiche Università della Svizzera italiana
Hochschule Università della Svizzera italiana - USI
Hauptdisziplin Informatik
Beginn/Ende 01.10.2010 - 31.08.2013
Bewilligter Betrag 200'152.00
Alle Daten anzeigen

Keywords (12)

software testing and analysis, structural testing, combination of static and dynamic program analysis, concolic execution, abstract interpretation, data flow testing, Software testing, structural coverage, test case generation, dynamic analysis, static analysis, abstraction refinement and coarsening

Lay Summary (Englisch)

Lead
Lay summary
Structural testing coverage is a proxy measure of the adequacy of testing that can be useful to both software quality managers and tester designers. Despite this, few of the many structural coverage criteria studied in academia find common application in industrial practice, due to both the scarce availability of automated support for generating test suites with high coverage and the penalizing impact of infeasible program elements. This project aims to define a new generation of structural testing approaches to automatically generate test suites with high structural coverage, and correctly account for a relevant number of infeasible elements of the coverage domain. This project will suitably exploit the combination of dynamic and static analysis techniques. Static program analyses quickly explode in complexity and become intractable, while dynamic program analyses scale to large programs, but do not cover the state space exhaustively. Recently static and dynamic analyses have been combined to exploits the positive synergy of observed facts (brought by dynamic analysis) and deductions that can be generalized from these (brought by static analysis). This project will integrate data from concrete executions of the program with the statically analysis of an abstract (over-approximated) and finite model of the program state space. It will study the use of abstraction refinement and coarsening (ARC) that we have introduced in a recent paper, to re-aggregate the states generated by the refinement process as the analysis of the program progresses. Our preliminary results based on combining abstract refinement with concolic execution to refine branch coverage are very encouraging. This project will exploit these results by exploring the applicability of coarsening to the combination of other static and dynamic analysis techniques to refine complex coverage criteria. The detailed goals of the project are to (1) define new approaches to structural testing to achieve accurate coverage according to different classes of coverage criteria, (2) define new program analysis algorithms that combine static and dynamic analysis to efficiently generate test suites and analyze infeasible targets throughout industrial-size programs, (3) define new reference abstractions that allow for optimizing the trade-off between precision and costs of the analysis for different classes of structural testing criteria, and (4) study the effectiveness of different coverage criteria by evaluating to what extent the test suites that satisfy the coverage criteria can expose program defects, and by comparing the effectiveness across different classes of coverage criteria.
Direktlink auf Lay Summary Letzte Aktualisierung: 21.02.2013

Verantw. Gesuchsteller/in und weitere Gesuchstellende

Mitarbeitende

Publikationen

Publikation
Quantifying the Complexity of Dataflow Testing
Denaro Giovanni, Pezzè Mauro, Vivanti Mattia (2013), Quantifying the Complexity of Dataflow Testing, in 8th International Workshop on Automation of Software Testing, San Francisco (USA)IEEE Press, Pisataway.
Enhancing structural software coverage by incrementally computing branch executability
BaludaMauro, Braione Pietro, Denaro Giovanni, Pezzè Mauro (2011), Enhancing structural software coverage by incrementally computing branch executability, in Software Quality Journal, 19(4), 725-751.
Structural Coverage of Feasible Code
Baluda Mauro, Braione Pietro, Denaro Giovanni, Pezzè Mauro (2010), Structural Coverage of Feasible Code, in IEEE (ed.), Proceedings of the 5th International Workshop on Automation of Software Testing (AST 2010), IEEE Press, New York, 59-66.
Automatic structural testing with abstraction refinement and coarsening
Baluda Mauro (2011), Automatic structural testing with abstraction refinement and coarsening, in 19th ACM SIGSOFT symposium and the 13th European conference on Foundations of Sofware Engineering, Szeged, HungaryACM, Proceedings of the 19th ACM SIGSOFT symposium and the 13th European conference on Foundations of sof.
An industrial case study of the effectiveness of test generators
Braione P., Denaro G., Mattavelli A., Vivanti M., Muhammad A. (2012), An industrial case study of the effectiveness of test generators, in Proceedings of the 7th International Workshop on Automation of Software Testing (AST 2012), ACM Press, NY.
Dynamic Analysis for Diagnosing Integration Faults
Mariani Leonardo, Pastore Fabrizio, Pezzé Mauro (2011), Dynamic Analysis for Diagnosing Integration Faults, in IEEE Transactions on Software Engineering, 37(4), 486-508.
Supporting Test Suite Evolution through Test Case Adaptation
MirzaAghaei Mehdi, Pastore Fabrizio, Pezzé Mauro (2012), Supporting Test Suite Evolution through Test Case Adaptation, in Proceeding of the 5th International Conference on Software Testing, Verification and Validation, IEEE Press, Piscataway.

Zusammenarbeit

Gruppe / Person Land
Felder der Zusammenarbeit
VTT Technical Research Centre of Finland Finnland (Europa)
- Publikation
- Industrie/Wirtschaft/weitere anwendungs-orientierte Zusammenarbeit
Università di Milano Bicocca Italien (Europa)
- vertiefter/weiterführender Austausch von Ansätzen, Methoden oder Resultaten
- Publikation

Wissenschaftliche Veranstaltungen

Aktiver Beitrag

Titel Art des Beitrags Titel des Artikels oder Beitrages Datum Ort Beteiligte Personen
Conference Einzelvortrag International Conference on Software Engineering (CSE) 20.05.2013 San Francisco, Vereinigte Staaten von Amerika Pezzè Mauro; Vivanti Mattia; Baluda Mauro
conference Einzelvortrag ICSM'12: International conference on Software Maintenance 23.09.2012 Riva del Garda, Italy, Italien Pezzè Mauro
Conference Einzelvortrag Balcan Conference in Informatics 16.09.2012 Novi Sad, Serbia, Serbien Pezzè Mauro
Conference Einzelvortrag ISSTA'12: ACM International Conference on Software Testing and Analysis 15.07.2012 Minneapolis, United States of America, Vereinigte Staaten von Amerika Pezzè Mauro
research internship Vortrag im Rahmen einer Tagung Summer research internship in the Mobile Enterprise Software group at IBM T. J. Watson Research Center in Hawthorne 11.06.2012 Watson Research Center, Vereinigte Staaten von Amerika Baluda Mauro
Conference Vortrag im Rahmen einer Tagung Student Volunteer at 34th International Conference on Software Engineering 04.06.2012 Zurich, Switzerland, Schweiz Baluda Mauro; Vivanti Mattia
Workshop Einzelvortrag The 20th CREST Open Workshop: The Oracle Problem for Automated Software Testing 21.05.2012 London, UK, Grossbritannien und Nordirland Pezzè Mauro
Workshop Einzelvortrag Mysore Park Workshop on The Future of Debugging 28.02.2012 Mysore, India, Indien Pezzè Mauro
summer school Vortrag im Rahmen einer Tagung INRIA summer school on modelling and verifying algorithms 10.11.2011 Paris, France, Frankreich Baluda Mauro
Conference Einzelvortrag ESEC/FSE'11: ACM SIGSOFT Symposium on the Foundations of Software Engineering 01.09.2011 Szeged, Hungary, Ungarn Pezzè Mauro
Conference Einzelvortrag ICSE'11: 33th International Conference on Software Engineering 21.05.2011 Honolulu, United States of America, Vereinigte Staaten von Amerika Pezzè Mauro
conference Einzelvortrag GT-VMT'11: International Workshop on Graph Transformation and Visual Modeling Techniques 02.04.2011 Saarbrücken, Germany, Deutschland Pezzè Mauro
conference Vortrag im Rahmen einer Tagung ICST'11: 4th IEEE International Conference on Software Testing, Verification and Validation 21.03.2011 Berlin, Germany, Deutschland Pezzè Mauro
seminar Einzelvortrag Dagstuhl seminar on Self-Repairing software 06.02.2011 Wadern-Dagstuhl, Germany, Deutschland Pezzè Mauro
Conference Einzelvortrag Software Quality Days 18.01.2011 Vienna, Austria, Oesterreich Pezzè Mauro


Verbundene Projekte

Nummer Titel Start Förderungsinstrument
146831 DyStaCCo: Dynamic and STatic Analysis Combined for code COverage 01.09.2013 Projektförderung (Abt. I-III)

Abstract

Structural testing coverage is a proxy measure of the adequacy of testing that can be useful to both software quality managers and tester designers. Despite this, few of the many structural coverage criteria studied in academia find common application in industrial practice, due to both the scarce availability of automated support for generating test suites with high coverage and the penalizing impact of infeasible program elements. This project aims to define a new generation of structural testing approaches to automatically generate test suites with high structural coverage, and correctly account for a relevant number of infeasible elements of the coverage domain. The results of the project will enable test designers to automatically compute accurate coverage measurements, thus breaking through the barriers that challenge the applicability of structural coverage criteria, and equipping the scientific community with new means for gathering credible and conclusive evidence on the effectiveness of structural coverage criteria. This project will suitably exploit the combination of dynamic and static analysis techniques. Static program analyses quickly explode in complexity and become intractable, while dynamic program analyses scale to large programs, but do not cover the state space exhaustively. Recently static and dynamic analyses have been combined to exploits the positive synergy of observed facts (brought by dynamic analysis) and deductions that can be generalized from these (brought by static analysis). This project will integrate data from concrete executions of the program with the statically analysis of an abstract (over-approximated) and finite model of the program state space. It will study the use of abstraction refinement and coarsening (ARC) that we have introduced in a recent paper, to re-aggregate the states generated by the refinement process as the analysis of the program progresses. The rationale behind ARC elaborates on the observation that the analysis algorithms generate a lot of information (refinements) to reason on the reachability of the target program elements; while the analysis meets such goal for any target elements, coarsening drops the refinements generated throughout the finalized decision processes. Our preliminary results based on combining abstract refinement with concolic execution to refine branch coverage are very encouraging. This project will exploit these results by exploring the applicability of coarsening to the combination of other static and dynamic analysis techniques to refine complex coverage criteria. The detailed goals of the project are to (1) define new approaches to structural testing to achieve accurate coverage according to different classes of coverage criteria, (2) define new program analysis algorithms that combine static and dynamic analysis to efficiently generate test suites and analyze infeasible targets throughout industrial-size programs, (3) define new reference abstractions that allow for optimizing the trade-off between precision and costs of the analysis for different classes of structural testing criteria, and (4) study the effectiveness of different coverage criteria by evaluating to what extent the test suites that satisfy the coverage criteria can expose program defects, and by comparing the effectiveness across different classes of coverage criteria. The project combines theoretical investigation with experimental validation through prototype implementations that will be defined during the project.