When interacting with their software systems, users may have to deal with problems like crashes, failures, and program instability. Faulty software running in the field is not only the consequence of ineffective in-house verification and validation techniques, but it is also due to the complexity and diversity of the interactions between an application and its environment. Many of these interactions can be hardly predicted at testing time, and even when they could be predicted, often there are so many cases to be tested that they cannot be all feasibly addressed before the software is released. Field testing aims to tackle the problem of applications failing in the field by moving the testing phase directly in the field environment. This makes it possible to exploit different scenarios that would otherwise be difficult to capture with in-house testing. In this Ph.D. thesis we explore the area of software field testing, we present a study that characterizes the problem of applications failing in the field, a client-server architecture that can be exploited to organize and control the field testing process and a testing approach that exploits the field itself as testbed for running the test cases. The presented approach is empirically evaluated on a popular dataset of software faults demonstrating that 35% of the faults that were not discovered in-house could have been revealed with field testing.

Quando interagiscono con sistemi software, gli utenti potrebbero dover affrontare problemi come crash, fallimenti e instabilità del programma. Il software difettoso in esecuzione sul campo non è solo la conseguenza di tecniche di verifica inefficaci, ma è anche dovuto alla complessità e alla diversità delle interazioni tra un'applicazione e il suo ambiente. Molte di queste interazioni sono difficilmente previste al momento del test, e anche quando potrebbero essere previste, spesso ci sono così tanti casi da testare che non possono essere affrontati in modo fattibile prima che il software sia rilasciato. Il testing sul campo si propone di affrontare il problema dei fallimenti delle applicazioni sul campo spostando la fase di test direttamente nell'ambiente di produzione. Ciò rende possibile sfruttare diversi scenari che altrimenti sarebbero difficili da catturare con test tradizionali. In questa tesi esploriamo l'area del testing sul campo del software, presentiamo uno studio che caratterizza il problema delle applicazioni che falliscono sul campo, un'architettura client-server che può essere sfruttata per organizzare e controllare il processo di test sul campo e un approccio di test che sfrutta l’ambiente di produzione come banco di prova per l'esecuzione dei test case. L'approccio presentato viene valutato empiricamente su un dataset di errori del software, dimostrando che il 35% dei guasti non rilevati internamente potrebbe essere stato rivelato con test sul campo.

(2019). Field Testing of Software Applications. (Tesi di dottorato, Università degli Studi di Milano-Bicocca, 2019).

Field Testing of Software Applications

GAZZOLA, LUCA
2019

Abstract

When interacting with their software systems, users may have to deal with problems like crashes, failures, and program instability. Faulty software running in the field is not only the consequence of ineffective in-house verification and validation techniques, but it is also due to the complexity and diversity of the interactions between an application and its environment. Many of these interactions can be hardly predicted at testing time, and even when they could be predicted, often there are so many cases to be tested that they cannot be all feasibly addressed before the software is released. Field testing aims to tackle the problem of applications failing in the field by moving the testing phase directly in the field environment. This makes it possible to exploit different scenarios that would otherwise be difficult to capture with in-house testing. In this Ph.D. thesis we explore the area of software field testing, we present a study that characterizes the problem of applications failing in the field, a client-server architecture that can be exploited to organize and control the field testing process and a testing approach that exploits the field itself as testbed for running the test cases. The presented approach is empirically evaluated on a popular dataset of software faults demonstrating that 35% of the faults that were not discovered in-house could have been revealed with field testing.
LEPORATI, ALBERTO OTTAVIO
MARIANI, LEONARDO
software engineering; software testing; field testing; failure study; in-vivo testing
software engineering; software testing; field testing; failure study; in-vivo testing
INF/01 - INFORMATICA
English
15-feb-2019
INFORMATICA - 87R
31
2017/2018
open
(2019). Field Testing of Software Applications. (Tesi di dottorato, Università degli Studi di Milano-Bicocca, 2019).
File in questo prodotto:
File Dimensione Formato  
phd_unimib_769189.pdf

accesso aperto

Descrizione: tesi di dottorato
Dimensione 780.69 kB
Formato Adobe PDF
780.69 kB Adobe PDF Visualizza/Apri

I documenti in IRIS sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/10281/241221
Citazioni
  • Scopus ND
  • ???jsp.display-item.citation.isi??? ND
Social impact