Projekt

Zurück zur Übersicht

DyStaCCo: Dynamic and STatic Analysis Combined for code COverage

Titel Englisch DyStaCCo: Dynamic and STatic Analysis Combined for code COverage
Gesuchsteller/in Pezzè Mauro
Nummer 146831
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.09.2013 - 31.08.2015
Bewilligter Betrag 212'502.00
Alle Daten anzeigen

Keywords (6)

software testing and analysis, concolic execution, test automation, code coverage, structural testing, data flow testing

Lay Summary (Italienisch)

Lead
Lo sviluppo del software è un processo che coinvolge diverse attività, tra cui attività di verifica ed in particolare attività di test. La completezza dei test è comunemente misurata come percentuale di codice eseguito e la pratica attuale fa riferimento a misure semplici ignorando metriche complesse ma efficaci. Questo progetto introdurrà nuove tecniche di copertura definite in modo dinamico, superando così i problemi delle tecniche tradizionali definite in modo statico.
Lay summary
Obiettivi e risultati

Lo sviluppo del software è un processo complesso che coinvolge diverse attività. Tra queste le attività di verifica e convalida giocano un ruolo importante sia dal punto di vista economico che tecnologico.  Tra le varie tecniche, le attività di test sono di gran lunga le più diffuse nella pratica industriale per la loro versatilità, efficacia e scalabilità. Un buon approccio ingegneristico richiede di misurare delle attività e dei risultati. La completezza dei test è comunemente misurata calcolando percentuale di codice eseguito. La pratica attuale fa riferimento a misure molto semplici, quali la copertura delle istruzioni.  Metriche più complesse ed efficaci come la copertura di flusso dei dati non trovano applicazione industriale per la difficoltà di coprire tutti gli elementi e l’impossibilità di identificare parti di codice non eseguibili.

Questo progetto introdurrà nuove tecniche di copertura di flusso dei dati definite in modo dinamico, superando così i problemi di copertura e di eseguibilità delle tecniche tradizionali definite in modo statico. Nel progetto definiremo le tecniche di copertura dinamica e produrremo prototipi per la loro sperimentazione industriale.

Contesto scientifico e sociale

Il software è un elemento cardine della nostra società e gli inevitabili malfunzionamenti che persistono in molti prodotti possono avere effetti economici e sociali anche gravi.  Le tecniche messe a punto in questo progetto miglioreranno le capacità di rilevare ed eliminare i difetti e controllare il processo di qualità, con vantaggi economici e sociali sia diretti con la riduzione dei costi di sviluppo sia indiretti con la riduzione dei costi che verranno evitati grazie alla riduzione dei malfunzionamenti dei prodotti.


Direktlink auf Lay Summary Letzte Aktualisierung: 07.04.2013

Verantw. Gesuchsteller/in und weitere Gesuchstellende

Mitarbeitende

Publikationen

Publikation
On the Right Objectives of Data Flow Testing
Denaro Giovanni, Pezzè Mauro, Vivanti Mattia (2014), On the Right Objectives of Data Flow Testing, in Proceedings of the International Conference on Software Testing, Verification and, IEEE, Piscateway, NJ, US.
Dynamic Data-flow Testing
Vivanti Mattia (2014), Dynamic Data-flow Testing, in Proceedings of the 36th International Conference on Software Engineering, ACM, New York, NY, US.
Dynamic Data Flow Testing of Object Oriented Systems
Denaro Giovanni, Margara Alessandro, Pezzè Mauro, Vivanti Mattia (2015), Dynamic Data Flow Testing of Object Oriented Systems, in Proceedings of the 37th International Conference on Software Engineering, IEEE, Piscateway, NJ.
Combining Multiple Coverage Criteria in Search-Based Unit Test Generation
Rojas José Miguel, Campos José, Vivanti Mattia, Fraser Gordon, Arcuri Andrea (2015), Combining Multiple Coverage Criteria in Search-Based Unit Test Generation, in Proceedings of the 7th International Symposium on Search-Based Software Engineeri, Springer, Germany.
Search-based Data-flow Test Generation
Vivanti Mattia, Mis Andre, Gorla Alessandra, Fraser Gordon (2013), Search-based Data-flow Test Generation, in Proceedings of the International Symposium on Software Reliability Engineering, IEEE, Piscateway, NJ.
Efficient analysis of event processing applications
Cugola Gianpaolo, Margara Alessandro, Pezzè Mauro, Pradella Matteo (2015), Efficient analysis of event processing applications, in Proceedings of the 9th ACM International Conference on Distributed Event-Based Systems, ACM Press, New York, NY.
Towards Automated A/B Testing
Tamburrelli Giordano, Margara Alessandro (2014), Towards Automated A/B Testing, in Proceedings of the 6th International Symposium on Search-Based Software Engineering, Springer, Germany.
Software testing with code-based test generators: data and lessons learned from a case study with an industrial software component
Braione Pietro, Denaro Giovanni, Mattavelli Andrea, Vivanti Mattia, Muhammad Ali (2013), Software testing with code-based test generators: data and lessons learned from a case study with an industrial software component, in Software Quality Journal, 1-23.
Automated Test Oracles: A Survey
Pezzè Mauro, Zhang Cheng (2015), Automated Test Oracles: A Survey, in Atif Memon (ed.), Advances in Computers, Elsevier, USA, 1-48.
Recent Advances in Automatic Black-Box Testing
Mariani Leonardo, Pezzè Mauro, Zuddas Daniele (2015), Recent Advances in Automatic Black-Box Testing, in Atif Memon (ed.), Advances in Computers, Elsevier, USA, 157-193.
Introduction to the Special Issue on ISSTA 2013
Harman Mark, Pezzè Mauro (2015), Introduction to the Special Issue on ISSTA 2013, in ACM Transactions on Software Engineering and Methodology, 24(4), 21-21.

Zusammenarbeit

Gruppe / Person Land
Felder der Zusammenarbeit
University of Oregon Vereinigte Staaten von Amerika (Nordamerika)
- vertiefter/weiterführender Austausch von Ansätzen, Methoden oder Resultaten
University of Sheffield Grossbritannien und Nordirland (Europa)
- vertiefter/weiterführender Austausch von Ansätzen, Methoden oder Resultaten
- Publikation
- Austausch von Mitarbeitern
University of 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
UniTn PhD School 2015 Einzelvortrag Course on software testing and analysis with emphasis on data flow 08.06.2015 Trento, Italien Pezzè Mauro
37th International Conference on Software Engineering Vortrag im Rahmen einer Tagung Dynamic Data Flow Testing of Object Oriented Systems 16.05.2015 Firenze, Italien Vivanti Mattia; Pezzè Mauro; Margara Alessandro
Workshop organised jointly with the ISSTA PC meeting Vortrag im Rahmen einer Tagung Exploiting intrinsic software redundancy for automated software testing 27.03.2015 Eugene, Vereinigte Staaten von Amerika Pezzè Mauro
International Symposium on the Foundations of Software Engineering Vortrag im Rahmen einer Tagung Search-Based Synthesis of Equivalent Method Sequences 16.11.2014 Hongkong, Hongkong Pezzè Mauro
International Symposium on Search-Based Software Engineering Vortrag im Rahmen einer Tagung Keynote 26.08.2014 Fortaleza, Brasilien Pezzè Mauro
36th International Conference on Software Engineering Vortrag im Rahmen einer Tagung Dynamic Data Flow Testing 31.05.2014 Hyderabad, Indien Vivanti Mattia; Pezzè Mauro
8th ACM International Conference on Distributed Event-Based Systems Vortrag im Rahmen einer Tagung Learning From the Past: Automated Rule Generation for Complex Event Processing 26.05.2014 Mumbai, Indien Margara Alessandro
IEEE International Conference on Software Testing, Verification and Validation Vortrag im Rahmen einer Tagung On the Rigth Objectives of Data Flow Testing 31.03.2014 Cleveland, Vereinigte Staaten von Amerika Vivanti Mattia
UniTn PhD School 2014 Einzelvortrag Course on software testing and analysis with emphasis on data flow 03.02.2014 Trento, Italien Pezzè Mauro
IEEE International Symposium on Software Reliability Engineering Vortrag im Rahmen einer Tagung Search Based Data Flow Testing 13.11.2013 Pasadena, Vereinigte Staaten von Amerika Vivanti Mattia


Verbundene Projekte

Nummer Titel Start Förderungsinstrument
132666 AVATAR: Automated coVerAge-based Testing via static-dynamic Abstraction Refinement and coarsening 01.10.2010 Projektförderung (Abt. I-III)

Abstract

Testing is an essential activity in software development, and code coverage is an important technique to assess the adequacy of software testing, and support decision making over a quality process. While most testing managers would probably agree on these considerations, despite the research effort that produced many code coverage criteria to address several testing goals, code coverage has not made its journey to become consolidated best practice yet. The main reasons for the limited success of code coverage are traceable to the high (often unaffordable) costs of designing test suites with high coverage indicators. Manually inspecting programs to find test cases that exercise non-trivial portions of uncovered code can be extremely expensive. Even worse, relevant amount of effort might be wasted in the attempt of covering infeasible code elements, generally induced in non-negligible amounts by many relevant coverage domains. The many techniques to automatically generate test cases to increase code coverage work fairly well for simple metrics, like statement and branch coverage, but do not address well complex metrics, like data flow coverage criteria. The DyStaCCo project is grounded on the excellent results of the recent SNF project AVATAR. The DyStaCCo project aims to progress over the current achievements and findings along two major research directions. First, this project will extend the AVATAR results to deal with large programs. This requires extending the approach to cope with inter-procedural program flows, study alternative dynamic and static analysis techniques to solve performance problems, define models and procedures to efficiently integrate the different analysis techniques to overcome the limitation of the current technique. Second, DyStaCCo aims to investigate qualitatively and quantitatively automatic dataflow testing. Dataflow testing techniques have not been automated beyond the computation of testing requirements, and have not been studied extensively due to the difficulty of achieving reasonable data flow coverage indicators even for simple programs. Grounded on the AVATAR experience with automating branch testing, this project aims to automate the generation of test suites that can achieve high data flow coverage and thus enable a quantitative study of these metrics. To extend the use of analysis for data flow testing we will need to experiment with different analysis techniques, and define new models and techniques to suitably combine the techniques and compute infeasible data flow elements.