La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Prioritizzazione di casi di test basata su algoritmi genetici Relatore: Prof. Andrea De Lucia Supervisione: Dott. Annibale Panichella Candidato: Gianluca.

Presentazioni simili


Presentazione sul tema: "Prioritizzazione di casi di test basata su algoritmi genetici Relatore: Prof. Andrea De Lucia Supervisione: Dott. Annibale Panichella Candidato: Gianluca."— Transcript della presentazione:

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

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

3 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 3

4 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. Prioritizzazione di casi di test basata su GAs 4 S1S2S3S4S5S6S7S8S9S10COST T1 XXXXXXXX4 T2 XXXXXXXXX5 T3 XXXX3 T4 XXXXX3 Possibili ordinamenti:  T1 - T2 - T3 - T4  T2 - T3 - T4 - T1  T4 - T3 - T2 - T1  …

5 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 5

6 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 6

7 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 7

8 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 Prioritizzazione di casi di test basata su GAs 8 T1T2T3T4T5T T1T4T6T5T2T3

9 Approccio proposto alla soluzione del problema di Test Case Prioritisation(2) Prioritizzazione di casi di test basata su GAs 9

10 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 10

11 Approccio proposto alla soluzione del problema di Test Case Prioritisation (4) Prioritizzazione di casi di test basata su GAs 11 P P’ C C’

12 Approccio proposto alla soluzione del problema di Test Case Prioritisation (5) Prioritizzazione di casi di test basata su GAs 12

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

14 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 14

15 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 1.FUN: file contenente il valore della funzione obiettivo raggiunto. 2.VAR: file contente il vettore ordinato della test suite. 3.Nome.fig: file Matlab; grafico rappresentante la curva che ottiene il più alto valore di fitness 4.Algorithm.log: file contenente informazioni relative all’esecuzione dell’algoritmo. Prioritizzazione di casi di test basata su GAs 15

16 Analisi Sperimentale Caso di Studio  4 Programmi Open-Source GNU disponibili dal Software-artifact Infrastructure Repository (SIR): Bash, Flex, Gzip e Vim Prioritizzazione di casi di test basata su GAs 16 ProgramLOC# of Test Cases # of Statement Description Bash59, Shell language interpreter Flex10, Fast lexical analyser Gzip5, Data compression program Vim122, Improved vi editor

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

18 Analisi Sperimentale (3) Prioritizzazione di casi di test basata su GAs 18

19 Analisi Sperimentale (4) Prioritizzazione di casi di test basata su GAs 19 Algoritmo Greedy Caso di studioFunzione di Fitness VIM E12 BASH E24 FLEX E11 GZIP E9 Algoritmo Genetico – dati statistici della funzione di fitness Caso di studio MinMax GA > GreedyTest Statistico di Wilcoxon (0.05) VIM E E+24 25/30A favore di GA BASH E E24 5/30A favore di Greedy FLEX E E+22 8/30A favore di Greedy GZIP E E+18 29/30A favore di GA

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

21 Analisi Sperimentale(6) Prioritizzazione di casi di test basata su GAs 21 Algoritmo Greedy Caso di studioFunzione di Fitness VIM E12 BASH E24 FLEX E11 GZIP E9 Algoritmo Genetico – dati statistici della funzione di fitness Caso di studio MinMax GA > GreedyTest Statistico di Wilcoxon (0.05) VIM E E+24 30/30A favore di GA BASH E E+36 30/30A favore di GA FLEX E E11 30/30A favore di GA GZIP E E+17 30/30A favore di GA

22 Analisi Sperimentale (7) Prioritizzazione di casi di test basata su GAs 22

23 Analisi Sperimentale (8) Prioritizzazione di casi di test basata su GAs 23

24 Analisi Sperimentale(9) Prioritizzazione di casi di test basata su GAs 24 APFD Area Fault/Cost VIM E9 FLEX E9 BASH E9 GZIP ALGORITMO GENETICO APFDAREA Fault/Cost MINMAX GA > Greedy Wilcoxon (0.05) MINMAX GA > Greedy Wilcoxon (0.05) VIM /30A favore di Greedy E E9 29/30A favore di GA FLEX /30A favore di GA E E9 19/30A favore di GA BASH /30 (=)A favore di Greedy E E9 18/30A favore di GA GZIP /30A favore di GA /30A favore di Greedy

25 Analisi Sperimentale(10) Prioritizzazione di casi di test basata su GAs 25 APFD Area Fault/Cost VIM E9 FLEX E9 BASH E9 GZIP ALGORITMO GENETICO APFDAREA Fault/Cost MINMAX GA > Greedy Wilcoxon (0.05) MINMAX GA > GreedyWilcoxon (0.05) VIM /30A favore di Greedy E E9 30/30A favore di GA FLEX /30A favore di GA E E9 17/30A favore di GA BASH /30A favore di GA E E9 30/30A favore di GA GZIP /30A favore di GA /30 A favore di Greedy

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 26

27 ? Prioritizzazione di casi di test basata su GAs 27


Scaricare ppt "Prioritizzazione di casi di test basata su algoritmi genetici Relatore: Prof. Andrea De Lucia Supervisione: Dott. Annibale Panichella Candidato: Gianluca."

Presentazioni simili


Annunci Google