La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Prioritizzazione di casi di test basata su algoritmi genetici

Presentazioni simili


Presentazione sul tema: "Prioritizzazione di casi di test basata su algoritmi genetici"— Transcript della presentazione:

1 Prioritizzazione di casi di test basata su algoritmi genetici
Università degli Studi di Salerno Facoltà di Scienze Matematiche Fisiche e Naturali Laurea Magistrale in Sistemi Informativi e Tecnologie del Software Prioritizzazione di casi di test basata su algoritmi genetici Relatore: Prof. Andrea De Lucia Supervisione: Dott. Annibale Panichella Candidato: Gianluca Carbone Anno Accademico 2013/2014 Algoritmi

2 Prioritizzazione di casi di test basata su GAs
Sommario Introduzione e Background Approccio al problema di TC Prioritisation Implementazione Analisi Sperimentale Prioritizzazione di casi di test basata su GAs

3 Prioritizzazione di casi di test basata su GAs
Introduzione Definizioni In base alla definizione dell’IEEE software glossary il testing di regressione è “re-test selettivo di un sistema o componente per verificare che modifiche non hanno causato effetti involontari e il sistema o la componente è ancora conforme ai suoi requisiti specificati”. (IEEE Std 1990) Minimizzazione, Selezione, e Ordinamento Le tecniche di Minimizzazione di test suite cercano di ridurre la grandezza di una test suite attraverso l’eliminazione di test ridondanti dalla test suite in relazione ai criteri di testing definiti Le tecniche di Selezione di test case hanno lo scopo di individuare test case rilevanti al fine di testare recenti cambiamenti. Prioritizzazione di casi di test basata su GAs

4 Prioritizzazione di casi di test basata su GAs
Introduzione(2) Il problema di Test case Prioritisation ha lo scopo di ordinare i test case di una test suite in modo tale che la rilevazione di fault sia massimizzata senza eseguire l’intera test suite. S1 S2 S3 S4 S5 S6 S7 S8 S9 S10 COST T1 X 4 T2 5 T3 3 T4 Possibili ordinamenti: T1 - T2 - T3 - T4 T2 - T3 - T4 - T1 T4 - T3 - T2 - T1 Prioritizzazione di casi di test basata su GAs

5 Prioritizzazione di casi di test basata su GAs
Background Approcci al problema di TC Prioritisation Coverage-based prioritisation  copertura statement, branch, … History-based Approach  fault passati, file mappati con i test case e poi divisi per livelli di priorità Requirement-based Approach  test case mappati ai requisiti del software Model-based Approach  test case divisi per livelli di priorità in base ad un modello predefinito Probabilistic Approach Distribution-based Approach  test case clusterizzati in base alla loro similarità Prioritizzazione di casi di test basata su GAs

6 Prioritizzazione di casi di test basata su GAs
Background(2) Contributo di questo lavoro GAs (Genetic Algorithms) sono stati utilizzati efficacemente per risolvere solo due problemi relativi al test di regressione: minimizzazione Rappresentazione binaria selezione delle soluzioni ordinamento Rappresentazione binaria Obiettivo  «Riempire questo gap», fornendo un approccio basato su GAs per risolvere il problema di test case prioritisation. Prioritizzazione di casi di test basata su GAs

7 Prioritizzazione di casi di test basata su GAs
Algoritmi Genetici Algoritmo Genetico Standard Un algoritmo genetico è un algoritmo euristico ispirato al principio della selezione naturale ed evoluzione biologica teorizzato nel 1859 da Charles Darwin. (1) Generazione casuale della prima popolazione di soluzioni; (2) Applicazione della funzione di fitness ; (3) Selezione delle soluzioni in base alla fitness e della logica di selezione (4) Procedimento di crossover e mutazione a partire dalle soluzioni scelte al punto 3. (5) Nuova popolazione a partire dalle soluzioni identificate al punto 4. (6) Ri-esecuzione della procedura a partire dal punto 2 . Prioritizzazione di casi di test basata su GAs

8 Prioritizzazione di casi di test basata su GAs
Approccio proposto alla soluzione del problema di Test Case Prioritisation Rappresentazione della soluzione Data una Test Suite (T1, T2, T3, T4, T5, T6) Selezione dei test case Ordinamento dei test case T1 T2 T3 T4 T5 T6 1 1 2 3 4 5 6 T1 T4 T6 T5 T2 T3 Prioritizzazione di casi di test basata su GAs

9 Approccio proposto alla soluzione del problema di Test Case Prioritisation(2)
Criteri di test Criterio di copertura di statement: numero di statement coperti. 𝐶𝑂𝑉 𝑗 = 𝑖=1 𝑗 𝑐𝑜𝑣 ( 𝑡 𝑖 ) , 𝑑𝑎 𝑚𝑎𝑠𝑠𝑖𝑚𝑖𝑧𝑧𝑎𝑟𝑒 2. Criterio di costo cumulativo: numero di istruzioni elementari nel codice. 𝐶𝑂𝑆𝑇 𝑗 = 𝑖=1 𝑗 𝑐𝑜𝑠𝑡 𝑡 𝑖 , 𝑑𝑎 𝑚𝑖𝑛𝑖𝑚𝑖𝑧𝑧𝑎𝑟𝑒 Prioritizzazione di casi di test basata su GAs

10 Prioritizzazione di casi di test basata su GAs
Approccio proposto alla soluzione del problema di Test Case Prioritisation(3) Problema Multi-Obiettivo (una possibile soluzione): - due funzioni di fitness da valutare. un certo numero di soluzioni ottimali, che si andranno a trovare su un fronte di Pareto. Prioritizzazione di casi di test basata su GAs Algoritmi

11 Prioritizzazione di casi di test basata su GAs
Approccio proposto alla soluzione del problema di Test Case Prioritisation (4) Funzione di Fitness (la nostra soluzione): MAX 𝐶𝑂𝑉 𝑗 = 𝑖=1 𝑗 𝑐𝑜𝑣( 𝑡 𝑖 ) MIN 𝐶𝑂𝑆𝑇 𝑗 = 𝑖=1 𝑗 𝑐𝑜𝑠𝑡 ( 𝑡 𝑖 ) 𝑐𝑜𝑠𝑡(1) 𝑐𝑜𝑠𝑡(𝑛) 𝑓 𝑥 𝑑𝑥 ≈ 𝑗=1 𝑛 (𝑐𝑜𝑠𝑡 𝑗+1 −𝑐𝑜𝑠𝑡 𝑗) ∗ 𝑐𝑜𝑣 𝑗+1 +𝑐𝑜𝑣(𝑗) 2 C P C’ P’ Prioritizzazione di casi di test basata su GAs

12 Prioritizzazione di casi di test basata su GAs
Approccio proposto alla soluzione del problema di Test Case Prioritisation (5) Selezione Data una popolazione P di soluzioni, seleziona le migliori P /2 soluzioni in base alla funzione obiettivo Crossover Mutazione Prioritizzazione di casi di test basata su GAs

13 Prioritizzazione di casi di test basata su GAs
Approccio proposto alla soluzione del problema di Test Case Prioritisation (6) Algoritmo Genetico Prioritizzazione di casi di test basata su GAs

14 Prioritizzazione di casi di test basata su GAs
Implementazione Caratteristiche di sistema, Tools e Linguaggi Sistema 64 bit, 8GB RAM, Intel Core i7-2670QM 2.20GHz 2.20 GHz Java (IDE: Eclipse), MATLAB, R (test statistici) JMetal: Framework orientato agli oggetti basato su Java per la risoluzione di problemi di ottimizzazione con tecniche metaeuristiche. MatlabControl: API Java che permette chiamate a MATLAB. Prioritizzazione di casi di test basata su GAs

15 Prioritizzazione di casi di test basata su GAs
Implementazione (2) Parametri di Input e Output Input 1. Matrice binaria rappresentante la copertura degli Statements 2. Vettore di interi rappresentante il costo di ogni test case Output FUN: file contenente il valore della funzione obiettivo raggiunto. VAR: file contente il vettore ordinato della test suite. Nome.fig: file Matlab; grafico rappresentante la curva che ottiene il più alto valore di fitness Algorithm.log: file contenente informazioni relative all’esecuzione dell’algoritmo. Prioritizzazione di casi di test basata su GAs

16 Analisi Sperimentale Caso di Studio
4 Programmi Open-Source GNU disponibili dal Software-artifact Infrastructure Repository (SIR): Bash, Flex, Gzip e Vim Program LOC # of Test Cases # of Statement Description Bash 59,846 1200 14539 Shell language interpreter Flex 10,459 567 3432 Fast lexical analyser Gzip 5,680 215 1686 Data compression program Vim 122,169 975 34049 Improved vi editor Prioritizzazione di casi di test basata su GAs

17 Analisi Sperimentale (2)
Algoritmo Greedy Prioritizzazione di casi di test basata su GAs

18 Analisi Sperimentale (3)
Research Questions R 𝑸 𝟏 : In che misura l’algoritmo genetico produce soluzioni ottimali in termini di costo e copertura rispetto all’algoritmo Greedy ? R 𝑸 𝟐 : In che misura l’algoritmo genetico migliora l'ottimalità della soluzione prodotta dall'algoritmo Greedy, se si include nella popolazione iniziale la soluzione prodotta dall’algoritmo Greedy ? R 𝑸 𝟑 :  Quale è l’efficacia nell'individuare i fault dell’algoritmo genetico rispetto all’algoritmo Greedy ? R 𝑸 𝟒 : In che misura l'algoritmo genetico migliora l'efficacia dell'algoritmo Greedy, se si include nella popolazione iniziale la soluzione prodotta dall’algoritmo Greedy ? Prioritizzazione di casi di test basata su GAs

19 Analisi Sperimentale (4)
R 𝑸 𝟏 : In che misura l’algoritmo genetico produce soluzioni ottimali in termini di costo e copertura rispetto all’algoritmo Greedy ? Algoritmo Greedy Caso di studio Funzione di Fitness VIM E12 BASH E24 FLEX E11 GZIP E9 Algoritmo Genetico – dati statistici della funzione di fitness Caso di studio Min Max GA > Greedy Test Statistico di Wilcoxon (0.05) VIM E+24 E+24 25/30 A favore di GA BASH E+24 E24 5/30 A favore di Greedy FLEX E+22 E+22 8/30 GZIP E+18 E+18 29/30 Prioritizzazione di casi di test basata su GAs

20 Analisi Sperimentale (5)
COV GZIP COST COV FLEX COST Prioritizzazione di casi di test basata su GAs

21 Analisi Sperimentale(6)
R 𝑸 𝟐 : In che misura l’algoritmo genetico migliora l'ottimalità della soluzione prodotta dall'algoritmo Greedy, se si include nella popolazione iniziale la soluzione prodotta dall’algoritmo Greedy ? Algoritmo Greedy Caso di studio Funzione di Fitness VIM E12 BASH E24 FLEX E11 GZIP E9 Algoritmo Genetico – dati statistici della funzione di fitness Caso di studio Min Max GA > Greedy Test Statistico di Wilcoxon (0.05) VIM E12 E+24 30/30 A favore di GA BASH E+36 E+36 FLEX E11  E11  GZIP E+17 E+17 Prioritizzazione di casi di test basata su GAs

22 Analisi Sperimentale (7)
Research Questions R 𝑸 𝟏 : In che misura l’algoritmo genetico produce soluzioni ottimali in termini di costo e copertura rispetto all’algoritmo Greedy ? R 𝑸 𝟐 : In che misura l’algoritmo genetico migliora l'ottimalità della soluzione prodotta dall'algoritmo Greedy, se si include nella popolazione iniziale la soluzione prodotta dall’algoritmo Greedy ? R 𝑸 𝟑 :  Quale è l’efficacia nell'individuare i fault dell’algoritmo genetico rispetto all’algoritmo Greedy ? R 𝑸 𝟒 : In che misura l'algoritmo genetico migliora l'efficacia dell'algoritmo Greedy, se si include nella popolazione iniziale la soluzione prodotta dall’algoritmo Greedy ? Prioritizzazione di casi di test basata su GAs

23 Analisi Sperimentale (8)
Metriche di Valutazione APFD (Average Percentage Faults Detection) APFD = 1− 𝑇𝐹 1 + 𝑇𝐹 2 +…+ 𝑇𝐹 𝑚 𝑛𝑚 𝑛 Area Fault/Cost Funzione obiettivo Metrica di valutazione Prioritizzazione di casi di test basata su GAs

24 Analisi Sperimentale(9)
R 𝑸 𝟑 :  Quale è l’efficacia nell'individuare i fault dell’algoritmo genetico rispetto all’algoritmo Greedy ? APFD Area Fault/Cost VIM E9 FLEX E9 BASH E9 GZIP ALGORITMO GENETICO APFD AREA Fault/Cost MIN MAX GA > Greedy Wilcoxon (0.05) VIM 0/30 A favore di Greedy E9 E9 29/30 A favore di GA FLEX E9 E9 19/30 BASH 5/30 (=) E9 E9 18/30 GZIP 24/30 8/30 Prioritizzazione di casi di test basata su GAs

25 Analisi Sperimentale(10)
R 𝑸 𝟒 : In che misura l'algoritmo genetico migliora l'efficacia dell'algoritmo Greedy, se si include nella popolazione iniziale la soluzione prodotta dall’algoritmo Greedy ? APFD Area Fault/Cost VIM E9 FLEX E9 BASH E9 GZIP ALGORITMO GENETICO APFD AREA Fault/Cost MIN MAX GA > Greedy Wilcoxon (0.05) VIM 0/30 A favore di Greedy E9 E9 30/30 A favore di GA FLEX E9 E9 17/30 BASH 16/30 E9 E9 GZIP 1 8/30 Prioritizzazione di casi di test basata su GAs

26 Conclusioni e lavori futuri
Risultati ottenuti complessivamente buoni (funzioni di Fitness e metriche di Valutazione) Tempo di esecuzione alto per ottenere una soluzione per programmi di grandi dimensioni (VIM e BASH) Casi di studio pochi (4) Valutare approcci Multi-obiettivo o con altri criteri di Testing Iniezione di diversità nell’algoritmo genetico - convergenza più rapida verso soluzioni migliori Prioritizzazione di casi di test basata su GAs

27 Prioritizzazione di casi di test basata su GAs
? Prioritizzazione di casi di test basata su GAs


Scaricare ppt "Prioritizzazione di casi di test basata su algoritmi genetici"

Presentazioni simili


Annunci Google