Keynote for my Master Thesis. This work consists in the development of a tool, named Ocelot, which implements different approach for automatic test case generation, using search-based techniques. Ocelot is able to instrument and automatically generate high quality test suites both in terms of coverage and size, for programs written in C language.
Schede riassuntive di appunti su Machine Learning.
Appunti personali riscritti a partire dal materiale fornito per il corso Machine Learning Unibo Sede Cesena A.A. 2017/2018
This document analyzes and summarizes several album covers, including Drake's "Take Care" which features a painting representing Drake as an artist and symbols of wealth, spirituality, and disappointment. ASAP Rocky's "Goldie" cover prominently features gold, representing wealth and power. Michael Jackson's "Greatest Hits" highlights his famous tracks and status as the "King of Pop".
Este documento compara las oportunidades para investigación científica y tecnológica de jóvenes universitarios en Bogotá y Medellín. Explica que Bogotá invierte más en este sector pero que en Medellín se aprovechan mejor los recursos. También señala que Colombia destina pocos recursos a la investigación en comparación con otros países de América Latina, y que incentivar más a los jóvenes en este campo podría promover el desarrollo social y económico del país.
Speed It App is a system developed by a team of master student (Giovanni Grano, Matteo Merola, Simone Scalabrino and Carlo Branca) from University of Salerno, to partecipate at 2015 edition of ScoreIT context, during ICSE 2015. Speed It App is designed, as its name suggest, to speed up queues using a code QR in order to identify people before that their turn to be served arrive. With this project, Team Molise achieved final phase of ScoreIT context which took place during ICSE 2015 edition.
This document discusses the role and impact of social media on branding, using City FM89 as a case study. It provides background on the rise of social media and defines key terms like brand strategy and image. International brands that successfully used social media mentioned include Domino's Pizza, which improved its brand image on Facebook. Local Pakistani brands that gained recognition through social media are also listed, many started by youth selling accessories, clothing and more. In conclusion, social media allows direct customer connections and feedback to strengthen brands.
A simple and rapid dna extraction method from FINA nd qPCRManish Thakur
A simple and rapid DNA extraction method from whole blood for highly sensitive detection and quantitation of HIV-1 pro-viral DNA by real-time PCR (Journal of Virological Methods 214 (2015) 37–42 )
SnapGene is software that allows users to visualize and annotate DNA sequences. It can be used to plan cloning experiments and PCR strategies through features like restriction enzyme mapping and primer design. SnapGene provides customizable views of sequences and their annotations. It aims to help researchers fully document their molecular biology work to save time and money.
Presentazione della Tesi di Laurea Specialistica : STRUMENTI PER LA GENERAZIO...Boymix81
Breve presentazione del lavoro svolto per la tesi : STRUMENTI PER LA GENERAZIONE AUTOMATICA DI TEST STRUTTURALI E FUNZIONALI, scaricabile dal sito web http://boymix81.mynickname.info
Definizione e sviluppo di un algoritmo genetico multiobiettivo per problemi d...Stefano Costanzo
Lo scopo di questo lavoro di tesi è lo sviluppo di un approccio meta-euristico basato sugli algoritmi genetici per la risoluzione di problemi multi-obiettivo sia di programmazione lineare che di ottimizzazione combinatoria. Alcune tipologie di questi problemi si prestano ad essere risolti mediante algoritmi ad-hoc che fanno leva sulle caratteristiche strutture matematiche delle variabili di ingresso con cui sono modellati, così come evidenziato nella vasta letteratura esaminata. Il presente lavoro propone invece di generalizzare queste tecniche in modo da poter offrire uno o più algoritmi che sappiano gestire contemporaneamente il maggior numero di classi di problemi. Inoltre, l’intrinseca complessità dovuta alla natura multi-obiettivo dei problemi affrontati, richiede di spostare l’attenzione dai metodi deterministici-tradizionali a quelli evolutivi-euristici. Viene quindi delineato il profilo di un algoritmo genetico capace di elaborare problemi multi-obiettivo con vincoli lineari, non lineari, variabili intere e strutture di variabili combinatorie. Particolare attenzione viene dedicata alle fasi precedenti il ciclo puro di ottimizzazione di un algoritmo genetico, introducendo delle procedure di semplificazione dei sistemi di vincoli lineari e un metodo di eliminazione delle uguaglianze, notoriamente ostiche per gli approcci evolutivi. Risultati sperimentali, su molteplici classi di problemi test, vengono confrontati con algoritmi genetici esistenti mostrando dei comportamenti sicuramente incoraggianti per un raffinamento ulteriore della strategia delineata.
Schede riassuntive di appunti su Machine Learning.
Appunti personali riscritti a partire dal materiale fornito per il corso Machine Learning Unibo Sede Cesena A.A. 2017/2018
This document analyzes and summarizes several album covers, including Drake's "Take Care" which features a painting representing Drake as an artist and symbols of wealth, spirituality, and disappointment. ASAP Rocky's "Goldie" cover prominently features gold, representing wealth and power. Michael Jackson's "Greatest Hits" highlights his famous tracks and status as the "King of Pop".
Este documento compara las oportunidades para investigación científica y tecnológica de jóvenes universitarios en Bogotá y Medellín. Explica que Bogotá invierte más en este sector pero que en Medellín se aprovechan mejor los recursos. También señala que Colombia destina pocos recursos a la investigación en comparación con otros países de América Latina, y que incentivar más a los jóvenes en este campo podría promover el desarrollo social y económico del país.
Speed It App is a system developed by a team of master student (Giovanni Grano, Matteo Merola, Simone Scalabrino and Carlo Branca) from University of Salerno, to partecipate at 2015 edition of ScoreIT context, during ICSE 2015. Speed It App is designed, as its name suggest, to speed up queues using a code QR in order to identify people before that their turn to be served arrive. With this project, Team Molise achieved final phase of ScoreIT context which took place during ICSE 2015 edition.
This document discusses the role and impact of social media on branding, using City FM89 as a case study. It provides background on the rise of social media and defines key terms like brand strategy and image. International brands that successfully used social media mentioned include Domino's Pizza, which improved its brand image on Facebook. Local Pakistani brands that gained recognition through social media are also listed, many started by youth selling accessories, clothing and more. In conclusion, social media allows direct customer connections and feedback to strengthen brands.
A simple and rapid dna extraction method from FINA nd qPCRManish Thakur
A simple and rapid DNA extraction method from whole blood for highly sensitive detection and quantitation of HIV-1 pro-viral DNA by real-time PCR (Journal of Virological Methods 214 (2015) 37–42 )
SnapGene is software that allows users to visualize and annotate DNA sequences. It can be used to plan cloning experiments and PCR strategies through features like restriction enzyme mapping and primer design. SnapGene provides customizable views of sequences and their annotations. It aims to help researchers fully document their molecular biology work to save time and money.
Presentazione della Tesi di Laurea Specialistica : STRUMENTI PER LA GENERAZIO...Boymix81
Breve presentazione del lavoro svolto per la tesi : STRUMENTI PER LA GENERAZIONE AUTOMATICA DI TEST STRUTTURALI E FUNZIONALI, scaricabile dal sito web http://boymix81.mynickname.info
Definizione e sviluppo di un algoritmo genetico multiobiettivo per problemi d...Stefano Costanzo
Lo scopo di questo lavoro di tesi è lo sviluppo di un approccio meta-euristico basato sugli algoritmi genetici per la risoluzione di problemi multi-obiettivo sia di programmazione lineare che di ottimizzazione combinatoria. Alcune tipologie di questi problemi si prestano ad essere risolti mediante algoritmi ad-hoc che fanno leva sulle caratteristiche strutture matematiche delle variabili di ingresso con cui sono modellati, così come evidenziato nella vasta letteratura esaminata. Il presente lavoro propone invece di generalizzare queste tecniche in modo da poter offrire uno o più algoritmi che sappiano gestire contemporaneamente il maggior numero di classi di problemi. Inoltre, l’intrinseca complessità dovuta alla natura multi-obiettivo dei problemi affrontati, richiede di spostare l’attenzione dai metodi deterministici-tradizionali a quelli evolutivi-euristici. Viene quindi delineato il profilo di un algoritmo genetico capace di elaborare problemi multi-obiettivo con vincoli lineari, non lineari, variabili intere e strutture di variabili combinatorie. Particolare attenzione viene dedicata alle fasi precedenti il ciclo puro di ottimizzazione di un algoritmo genetico, introducendo delle procedure di semplificazione dei sistemi di vincoli lineari e un metodo di eliminazione delle uguaglianze, notoriamente ostiche per gli approcci evolutivi. Risultati sperimentali, su molteplici classi di problemi test, vengono confrontati con algoritmi genetici esistenti mostrando dei comportamenti sicuramente incoraggianti per un raffinamento ulteriore della strategia delineata.
Progettazione e sviluppo di un sistema di visione artificiale per il monitora...RiccardoScilla
Presentazione Tesi
Progettazione e sviluppo di un sistema di visione artificiale per il monitoraggio automatico delle posizioni di uno sciame di robot in uno scenario di laboratorio
Progettazione e sviluppo di un sistema di visione artificiale per il monitora...RiccardoScilla
Presentazione Tesi
Progettazione e sviluppo di un sistema di visione artificiale per il monitoraggio automatico delle posizioni di uno sciame di robot in uno scenario di laboratorio
AZURE Machine Learning Studio: applicazione alla manutenzione predittivaAriel Cedola
Presentazione al meetup Azure Torino del 13 dicembre 2018 sullo strumento Azure Machine Learning Studio. Comprende una breve intro al machine learning, concetti di base di Azure Machine Learning Studio e del suo utilizzo, e la sua integrazione con altri servizi di Azure come Event Hub, Stream Analytics, Blob Storage e Power BI, in un caso di uso di analisi di dati in tempo reale nell'ambito della manutenzione predittiva. I dati di telemetria di sensori in streaming sono stati simulati a partire di un codice in-house sviluppato in Python.
Design Exploration: Sviluppo telaio per vettura formula saeMarco Basilici
La relazione approfondirà maggiormente gli aspetti teorici legati al Design Exploration effettuata sulla piattaforma di Ansys Workbench, dopo aver fatto un preambolo sullo sviluppo del prodotto.
Tecniche Di Troubleshooting Nei Sistemi DistribuitiK-Tech Formazione
Questo seminario sulle tecniche di troubleshooting fa rientra nella collaborazione fra K-Tech (http://www.k-tech.it/) e la Facoltà di Ingegneria dell’Università Roma TRE, nell’ambito delle attività della Consulta.
Il seminario presenta come risolvere problemi tipici dei sistemi distribuiti che avvengono in produzione. Insieme agli esempi pratici si presenta anche un metodo per il troubleshooting che assicura una maniera veloce ed efficace per la determinazione dei problemi ed in generale per la gestione delle performance applicative. Il metodo si basa sulle evidenze del monitoraggio e pone l'accento sulla qualità delle informazioni raccolte in produzione, il fattore più determinante, assieme al tempo, per tutto il processo di troubleshooting. Questo materiale è preso da un corso di più giorni offerto da K-Tech s.r.l. Il corso ha lo scopo di mostrare agli Application Server Administrator (ASA) cosa fare per rendere possibile la risoluzione dei problemi in breve tempo e cosa evitare attraverso il confronto dei risultati di queste azioni. Gli esempi pratici mostrano come applicare correttamente il metodo e selezionare gli strumenti più adatti in ogni singolo caso.
Per conoscere le iniziative di K-Tech seguiteci sul nostro sito: http://www.k-tech.it/
Extended Summary of Optimized Design of a Human Intranet NetworkOlesiaRonzon
This research proposes a methodology for the exploration of the design space (DSE) of a Human Intranet (HI), or a network architecture, consisting of a Wireless Body Area Network (WBAN).
Leverage Mixed Integer Linear Programming (MILP) to generate possible network configurations based on energy estimates. In addition, an accurate simulation of discrete events is used to verify the feasibility of the proposed configurations based on reliability constraints.
Extended Summary of Optimized Design of a Human Intranet Network
Master Thesis
1. Università degli Studi di Salerno
Dipartimento di Informatica
Implementation and comparison of novel techniques for
automated search based test data generation
Tesi di Laurea Magistrale in Informatica
Relatore
Prof. Andrea De Lucia
Candidato
Giovanni Grano
4. Search Based Software Engineering
Applica tecniche di ricerca euristiche a tipici problemi dell’ingegneria del
software, opportunamente riformulati come problemi di ottimizzazione
algoritmi genetici hill climbing
AVM algoritmi memetici
5. Search Based Software Testing
0
175
350
525
700
1975 1979 1983 1989 1993 1997 2001 2005 2008 2011 2013
SBST è una sotto area di SBSE che utilizza euristiche di ottimizzazione per tecniche di
ricerca, con lo scopo di automatizzare i processi di testing
generazione automatica minimizzazione di test case
prioritizzazione di test case selezione di test case
9. if (a == 10) {
b = 11;
} else {
b = 10;
}
if (_f_ocelot_trace(
a == 10, //condizione originale
_f_ocelot_eq_numeric(a, 10), //distanza da true
_f_ocelot_neq_numeric(a, 10) //distanza da false
)){
b = 11;
} else {
b = 10;
}
Instrumentazione
Traccia gli eventi
Registra le distanze
11. if (a == 10) {
b = 11;
} else {
b = 10;
}
Java Library+ Lista di eventi,
Esecuzione e simulazione
Data la lista di eventi registrati e il CFG della
funzione, si simula l’esecuzione sul grafo
12. 0 0.2
scelta distanza False distanza True
false 0 0.2
Esecuzione e simulazione
Java Library+ Lista di eventi,
13. Puntatori
test (int a, int b, int* c, int* d, int* e)
#1 numeri reali
1 array ∀ puntatore
#1 array di associazione
Ridefinizione del cromosoma
[10,22] a e b
[0, 1, 22, 3] array #0
[23, 2, 2, 65] array #1
[22, 56, 3, 3] array #2
[0, 0, 1] associazione puntatori
Una matrice tiene traccia dei puntatori
agli array presenti nel cromosoma
0 1 22 3
23 2 2 65
22 56 3 3
if (c == d)
if (d == e)
return true; L’indice di riga viene utilizzato per calcolare la
distanza dal target
14. Approccio path di base + single target
Un target per ogni cammino linearmente
indipendente
Approach level
Numero di nodi del path obiettivo non coperti
Branch distance
Somma delle distanze nel punto in cui il path diverge
Ricerca single-target sui branch non coperti
" parametri
archi
. T.C. 1
/ no T.C.
" single target
. T.C. 2
16. Many Object Sorting Algorithm
Riformulazione della branch coverage come problema multi-obiettivo Riformulazione della funzione di fitness
Sia B = {b1, …, bm} l’insieme dei branch del programma, occorre
trovare un insieme di casi di test che ottimizzi la copertura degli
m branch
Vettore di fitness
La soluzione è rappresentata da un vettore di fitness {f1, …, fm}.
Per ogni target viene considerata la somma tra branch distance
e approach level
Dominanza e ottimalità di Pareto
Ogni soluzione è valutata in termini di dominanza di Pareto e
ottimalità di Pareto
17. Many Object Sorting Algorithm
Un caso di test x* si dice Pareto ottimale se e solo se non
è dominato da nessun altro caso di test
Ottimalità di Pareto
Un caso di test x domina un altro caso di test y se e solo
se:
Dominanza di Pareto
Ranking tradizionale vs nuovo criterio di
preferenza
18. Many Object Sorting AlgorithmMany Object Sorting Algorithm
L’algoritmo
1 Popolazione random iniziale
2 Si applicano crossover e mutazione
Generazione offspring
3 Algoritmo di preference sorting
4 In accordo al rank assegnato e alla
crowding distance
Generazione nuova popolazione
5 Le soluzioni che coprono un target
vengono aggiunte ad un archivio
Archiviazione delle soluzioni
Pi
Qi
F0
F1
F2
preference
sorting
Fn
soluzioni
rigettate
Pi+1
nuova
popolazione
crowding distance
19. Algoritmo basato sul CDG
Algoritmo memory-based che cerca di massimizzare la coverage collaterale
Copertura collaterale
Attraverso l’analisi del Control Dependence Graph si mira a
massimizzare la coverage collaterale per un dato caso di test
Funzione di fitness secondaria
Una funzione di fitness secondaria misura la coverage
collaterale raggiunta
Coverable branches
Attraverso il CDG calcoliamo il numero di coverable branches
per un arco obiettivo
20. Algoritmo basato su CDG
S
61
32 87
54
FTFT
FT
Coverable edges
Funzione di fitness per la collateral coverage
22. Research Questions
Branch coverage
RQ 1
'
# casi di test
RQ 2
0
Convergenza
RQ 3
I due approcci introdotti sono stati valutati empiricamente utilizzando come baseline la metodologia basata sui path linearmente
indipendenti
23. !
1
Caso di studio
1Funzioni sotto esame
!Setting
funzione LOC #branch V(G)
triangle 21 14 7
gimp_rbg_to_hsl_int 58 14 7
gimp_rbg_to_hsc4 62 18 9
cliparc 136 64 32
Csqrt 26 6 3
Parametro valore
popolazione iniziale 100
crossover rate 0.8
mutation rate 0.2
constant mutation rate mutation rate/20
search budget 30.000
2
2Operatori
tipologia operatore
selezione Binary Tournament
crossover SBX Crossover
mutazione Polynomial + Constant Mutation
27. Analisi dei risultati
Coverage Test Suite Size
Convergenza
RQ1 RQ2
RQ3
L’algoritmo multi-obiettivo converge dopo un numero di valutazioni
delle soluzioni candidate estremamente più piccolo
Convergenza
I nuovi approcci garantiscono una test suite del 50% più piccola,
rispetto all’approccio dei path di base, al netto della minimizzazione
Test Suite Size
Gli algoritmi introdotti in OCELOT non incrementano il livello di
coverage raggiunto dalla tecnica dei path di base
Coverage