22
Workshop 2010 Iniziativa Software 24 Settembre 2010 Finmeccanica Group Services , Roma Working group: Prof. S. RUSSO, Dott. M. LOFFREDA, PhD G. Paolillo , PhD R. Pietrantuono, Ing. G. CAMPANILE Definizione e sperimentazione di tecniche avanzate di testing dei sistemi software distribuiti mission-critical Accordo CINI-Finmeccanica: Iniziativa Software Progetto di ricerca “Testing dei sistemi software distribuiti mission- critical”

Workshop 2010 Iniziativa Software 24 Settembre 2010 Finmeccanica Group Services, Roma Working group: Prof. S. RUSSO, Dott. M. LOFFREDA, PhD G. Paolillo,

Embed Size (px)

Citation preview

Page 1: Workshop 2010 Iniziativa Software 24 Settembre 2010 Finmeccanica Group Services, Roma Working group: Prof. S. RUSSO, Dott. M. LOFFREDA, PhD G. Paolillo,

Workshop 2010 Iniziativa Software24 Settembre 2010Finmeccanica Group Services , Roma

Working group: Prof. S. RUSSO, Dott. M. LOFFREDA, PhD G. Paolillo, PhD R. Pietrantuono, Ing. G. CAMPANILE

Definizione e sperimentazione di tecniche avanzate di testing dei sistemi software distribuiti mission-critical

Accordo CINI-Finmeccanica: Iniziativa Software

Progetto di ricerca “Testing dei sistemi software distribuiti mission-critical”

Page 2: Workshop 2010 Iniziativa Software 24 Settembre 2010 Finmeccanica Group Services, Roma Working group: Prof. S. RUSSO, Dott. M. LOFFREDA, PhD G. Paolillo,

Workshop Iniziativa Software II ed. 2Testing Sistemi Sw Distribuiti Mission Critical

Outline

• Descrizione linea di ricerca• Approccio proposto per il testing• Caso di studio: Swim Box• Stato d’avanzamento

Page 3: Workshop 2010 Iniziativa Software 24 Settembre 2010 Finmeccanica Group Services, Roma Working group: Prof. S. RUSSO, Dott. M. LOFFREDA, PhD G. Paolillo,

Workshop Iniziativa Software II ed. 3Testing Sistemi Sw Distribuiti Mission Critical

Linea di ricerca - Descizione del problema

Tecniche avanzate di testing per sistemi software distribuiti mission-critical• Criterio generale: allocare più risorse per i

componenti più critici, ma … • Come quantificare la criticità dei componenti?

• Quante risorse sono necessarie?

• Quanto le interazione tra componenti influenzano la reliability totale del sistema?

Come ottimizzare l’utilizzo delle risorse destinate al testing al fine di • assicurare un prestabilito livello di reliability e

• minimizzare il costo totale del testing

Tematica

Obiettivo

Page 4: Workshop 2010 Iniziativa Software 24 Settembre 2010 Finmeccanica Group Services, Roma Working group: Prof. S. RUSSO, Dott. M. LOFFREDA, PhD G. Paolillo,

Workshop Iniziativa Software II ed. 4Testing Sistemi Sw Distribuiti Mission Critical

Approccio proposto (1/6)

Obiettivo: assicurare un desiderato livello di reliability minimizzando i costi di testing attraverso la definizione di una allocazione ottima delle risorse di testing• Identificazione dei componendi più critici

• Allocazione delle risorse di testing

Tenendo in considerazione:• Le relazioni tra le componenti dell’architettura

• L’eventuale presenza di meccanismi di Fault Tolerance

• La reliability del sistema operativo

Inoltre:• I componenti possono essere definiti a diversi livelli di

granularità (subsystem, component, object, …)

• La soluzione stessa sarà definita a diversi livelli di dettaglio

Software reliability and testing time allocation: an architecture-based approach , R. Pietrantuono, S. Russo, K. S. Trivedi, IEEE transactions on Software engineering, year: 2010, volume: 36 , issue: 3

Page 5: Workshop 2010 Iniziativa Software 24 Settembre 2010 Finmeccanica Group Services, Roma Working group: Prof. S. RUSSO, Dott. M. LOFFREDA, PhD G. Paolillo,

Workshop Iniziativa Software II ed. 5Testing Sistemi Sw Distribuiti Mission Critical

Approccio proposto (2/6)

Modellazione del sistema: catene di Markov a tempo discreto (Absorbing DTMC – Discrete Time Markov Chain)

• Gli stati rappresentano i componenti (Cj)

• Le transizioni il trasferimento del controllo tra i componenti

• Il sistema operativo OS è rappresentato con un apposito stato dal quale si transita attraverso le system call

• Il conteggio delle visite (visit count) per considerare l’utilizzo medio dei componenti

C1

C3

OS

P24

POS-1

P1-OS

P12

P34

P23

P2

1

POS-3

P3-OS

Sys Calls

C4

C2

Page 6: Workshop 2010 Iniziativa Software 24 Settembre 2010 Finmeccanica Group Services, Roma Working group: Prof. S. RUSSO, Dott. M. LOFFREDA, PhD G. Paolillo,

Workshop Iniziativa Software II ed. 6Testing Sistemi Sw Distribuiti Mission Critical

Approccio proposto (3/6)

La reliability totale del sistema Rsys è calcolata considerando le reliability individuali dei componenti Ri ed i visit count VJ

Pi,j= probabilità di transizione

Vj = numero atteso di visite

dove qj = probabilità che l’applicazione parta dal componente CJ

m = numero di absorbing state

La reliability attesa del sistema è:

E[Rsys] = (∏in Ri

Vi) * KVOS

dove KVOS è la reliability dell’OS stimato come 1 - limn F/n, durante gli n test di una versione precedente (F è il numero di fallimenti)

,11, 2,...,

k n m

j j k j kkV q p V j n m

Page 7: Workshop 2010 Iniziativa Software 24 Settembre 2010 Finmeccanica Group Services, Roma Working group: Prof. S. RUSSO, Dott. M. LOFFREDA, PhD G. Paolillo,

Workshop Iniziativa Software II ed. 7Testing Sistemi Sw Distribuiti Mission Critical

Approccio proposto (4/6)• Si assume che la reliability di ogni componente cresca con il testing time• La relazione è descritta dal modello SRGM (Software Reliability Growth Model)

TestingTime = f(Reliability)• Il modello minimizza il costo totale del testing garantendo che Rsys < Rmin :

Minimize Tt = ∑i fi(λi)

Subject to E[Rsys] = (Πin Ri

Vi ) * KVos ≥ Rmin

dove λ è la failure intensityLe tecniche di mitigazione dei fallimenti considerati sono:• Riavvio del componente

• Riesecuzione da parte dell’applicazione

• Switch automatico in caso di fallimento (failover to a standby)

Page 8: Workshop 2010 Iniziativa Software 24 Settembre 2010 Finmeccanica Group Services, Roma Working group: Prof. S. RUSSO, Dott. M. LOFFREDA, PhD G. Paolillo,

Workshop Iniziativa Software II ed. 8Testing Sistemi Sw Distribuiti Mission Critical

Approccio proposto (5/6)Le tecniche di mitigazione dei fallimenti:

La formula della reliability del sistema in presenza di un componente Ci dotato di mitigation means diviene:

E[Rsys] = (Πin RCi

Vi ) * KVos

dove RCi = 1 - Pr(componente Ci fallisca)

Page 9: Workshop 2010 Iniziativa Software 24 Settembre 2010 Finmeccanica Group Services, Roma Working group: Prof. S. RUSSO, Dott. M. LOFFREDA, PhD G. Paolillo,

Workshop Iniziativa Software II ed. 9Testing Sistemi Sw Distribuiti Mission Critical

Approccio proposto (6/6)Informazioni necessarie per applicare l’approccio• Informazioni sull’architettura

• Identificazione dei componenti, probabilità di transizione (o conteggio di esecuzione)

• Informazioni sui componenti• Tempo speso per visita, reliability dell’OS, metriche di complessità, tempi tra i fallimenti/tipi di guasti e copertura, parametri dei meccanismi

Metodologie (non alternative) per estrarre tali info:• Dal progetto: documenti (diagrammi UML), tool di analisi statica del codice e tool di simulazione • Da profilazione dinamica: estraendo dei profili dall’esecuzione dei casi di test di una versione precedente • Attraverso dati storici e/o con l’ausilio di esperti

Page 10: Workshop 2010 Iniziativa Software 24 Settembre 2010 Finmeccanica Group Services, Roma Working group: Prof. S. RUSSO, Dott. M. LOFFREDA, PhD G. Paolillo,

Workshop Iniziativa Software II ed. 10Testing Sistemi Sw Distribuiti Mission Critical

Caso di studio: SWIM-SUIT prototypeL’approccio proposto sarà applicato alla verifica del prototipo

realizzato da Selex-SI/SESM nel progetto europeo: SWIM-SUIT (System Wide Information Management

SUpported by Innovative Technologies)

10 Countries, 20 Partners:6 Industrie, 1 Airporto, 1 azienda di gestione, 2 compagnie aeree, 4 ANSPs, 4 SMEs, 2 Centri di ricerca, 1 Università

RTD project (STREP)

Call 4b of the 6FP

Budget:11,8 M€6,3 M€ finanziati dalla EC

Page 11: Workshop 2010 Iniziativa Software 24 Settembre 2010 Finmeccanica Group Services, Roma Working group: Prof. S. RUSSO, Dott. M. LOFFREDA, PhD G. Paolillo,

Workshop Iniziativa Software II ed. 11Testing Sistemi Sw Distribuiti Mission Critical

Caso di studio: SWIM-SUIT prototypeOBIETTIVO:

• Verificare la bontà dell’approccio proposto su un sistema mission-critical • Il testing del prototipo è stato già affrontato nell’ambito

del progetto SWIM-SUIT utilizzando test funzionali allocati uniformemente tra i diversi componenti

• Attraverso l’allocazione delle risorse di testing, secondo l’approccio proposto, si vuole dimostrare un improvement della reliability del sistema a parità di risorse totali di testing utilizzate

• Consolidare attraverso l’esperienza sul campo una metodologia di testing, in particolar modo nella pianificazione dei test, da utilizzare per sistemi mission-critical

Page 12: Workshop 2010 Iniziativa Software 24 Settembre 2010 Finmeccanica Group Services, Roma Working group: Prof. S. RUSSO, Dott. M. LOFFREDA, PhD G. Paolillo,

Workshop Iniziativa Software II ed. 12Testing Sistemi Sw Distribuiti Mission Critical

Caso di studio: SWIM-SUIT prototypeIl progetto SWIM-SUIT ha realizzato il prototipo SWIM-BOX:

ATM Domain Components

Core Components

Page 13: Workshop 2010 Iniziativa Software 24 Settembre 2010 Finmeccanica Group Services, Roma Working group: Prof. S. RUSSO, Dott. M. LOFFREDA, PhD G. Paolillo,

Workshop Iniziativa Software II ed. 13Testing Sistemi Sw Distribuiti Mission Critical

Caso di studio: Analisi del software (1/2)Individuazione dei componenti:

• 3 componenti di alto livello (ATM Domain Components):• FDD, SDD, AID

• 4 componenti di basso livello (Core Components):• Pub/Sub, ShareDS, Req/Rep, Registry

Lo studio attuale si è concentrato su 3 componenti, 1 di livello ATM Domain e due di livello core :• FDD: 14 servizi esposti• Pub/Sub: 14 servizi esposti• ShareDS: 3 servizi esposti

Page 14: Workshop 2010 Iniziativa Software 24 Settembre 2010 Finmeccanica Group Services, Roma Working group: Prof. S. RUSSO, Dott. M. LOFFREDA, PhD G. Paolillo,

Workshop Iniziativa Software II ed. 14Testing Sistemi Sw Distribuiti Mission Critical

Caso di studio: Analisi del software (1/2)

Componente Flight Data Domain (FDD)

CSCI FUNCTION IN 1 IN 2 IN 3 OUT

FDD

createFO FlightObjectCluster[] FlightIdentifier

updateFO FlightIdentifier FlightObjectCluster[] Boolean

readFO FlightIdentifier FlightObjectCluster[] FlightObject

readFOs FlightIdentifier[] FlightObject[]

readFOSummary FlightIdentifier[] FlightSummary[]

requestFOService FlightIdentifier FlightObjectRelease String[] ComplexReport

handoverFO FlightIdentifier Boolean

setFilteringCriteria FilteringCriteria Boolean

unsetFilteringCriteria FlightIdentifier[] AvailableFilteringCriteria[] Boolean

subscribe StakeholderIdentifier EndPoint Boolean

unsubscribe void

addMeAsParticipant FlightIdentifier FDDRole Boolean

removeMeAsParticipant FlightIdentifier boolean Boolean

getRoleForFlight FlightIdentifier FDDRole

Page 15: Workshop 2010 Iniziativa Software 24 Settembre 2010 Finmeccanica Group Services, Roma Working group: Prof. S. RUSSO, Dott. M. LOFFREDA, PhD G. Paolillo,

Workshop Iniziativa Software II ed. 15Testing Sistemi Sw Distribuiti Mission Critical

Caso di studio: Analisi del software (1/2)Componente Publish/Subscribe (PSS)

CSCI FUNCTION IN 1 IN 2 IN 3 OUT

PSS

activatePublisher SwimTopic[] Boolean

activateSubscriber SwimTopic[] Filter[] Boolean

activateSubscriber SwimTopic[] Filter[] DataListener[] Boolean

deactivatePublisher SwimTopic[] Boolean

deactivateSubscriber SwimTopic[] Boolean

getFilter SwimTopic Filter

getMessages SwimTopic Int SWIMPublishedData[]

isPublisherActivated SwimTopic Boolean

isSubscriberActivated SwimTopic Boolean

isSubscriberActivatedForPull SwimTopic Boolean

isSubscriberActivatedForPush SwimTopic Boolean

publish SWIMPublishedData[] Boolean

removeFilter SwimTopic Boolean

setFilter SwimTopic Filter Boolean

CSCI FUNCTION IN 1 IN 2 OUT

SDS getData Storekey SharedData setData Storekey SharedData bolean removeData Storekey bolean

Componente Share Data Store (SDS)

Page 16: Workshop 2010 Iniziativa Software 24 Settembre 2010 Finmeccanica Group Services, Roma Working group: Prof. S. RUSSO, Dott. M. LOFFREDA, PhD G. Paolillo,

Workshop Iniziativa Software II ed. 16Testing Sistemi Sw Distribuiti Mission Critical

Caso di studio: Analisi del software (2/2)Metriche dimensionali del codice:

Metriche/ Componenti FDD SDD AID Pub/Sub SharedDS REG Req/Rep

CountLineComment 4.774 3.348 635 4.321 180 1.668 406

RatioCommentToCode 0,48 1,18 1,2 0,35 0,67 1,17 1,15

CountDeclFile 110 41 3 100 4 26 2

CountLineBlank 2.092 59 3 4.524 42 47 2

CountStmtDecl 3.142 1.000 163 3.478 73 495 132

CountDeclFunction 619 179 23 887 18 131 15

CountLine 16.636 3.473 638 21.032 491 1.796 408

CountStmtExe 4.089 991 213 5.595 126 380 116

CountLineCode 9.875 2.829 530 12.333 270 1.425 353

CountDeclClass 110 41 3 103 4 28 2

Legenda: FDD: Flight Data Domain SDD: Surveillance Data Domain AID: Aeronautical Information

Service Domain Pub/Sub: Publish/Subscribe

Service SharedDS: Shared Data Store REG : Registry Req/Rep: Request/Reply

• CountLineComment -- Number of lines containing comment. This can overlap with other code counting metrics.

• RatioCommentToCode -- Ratio of number of comment lines to number of code lines.

• CountDeclFile -- Number of files.

• CountLineBlank -- Number of blank lines.

• CountStmtDecl -- Number of declarative statements. Note that there can be overlap here with executable statements - int i = 0;

• CountDeclFunction -- Number of functions.

• CountLine -- Number of all lines.

• CountStmtExe -- Number of executable statements. Note that there can be overlap with declarative statements (int i = 0; )

• CountLineCode -- The number of lines that contain source code. Note that a line can contain source and a comment and thus count towards multiple metrics.

• CountDeclClass -- Number of classes.

Page 17: Workshop 2010 Iniziativa Software 24 Settembre 2010 Finmeccanica Group Services, Roma Working group: Prof. S. RUSSO, Dott. M. LOFFREDA, PhD G. Paolillo,

Workshop Iniziativa Software II ed. 17Testing Sistemi Sw Distribuiti Mission Critical

Caso di studio: Analisi del software (2/3)Metriche di complessità ciclomatica del codice:

Legenda: FDD: Flight Data Domain SDD: Surveillance Data Domain AID: Aeronautical Information

Service Domain Pub/Sub: Publish/Subscribe

Service SharedDS: Shared Data Store REG : Registry Req/Rep: Request/Reply

Avg Cyclomatic -- Average cyclomatic complexity for all nested functions or methods.Max Cyclomatic -- Maximum cyclomatic complexity of all nested functions or methods.Max Nesting -- Maximum nesting level of control constructs (if, while, for, switch, etc.) in the function. Count Path -- Number of unique paths though a body of code, not counting abnormal exits or gotos. Sum Cyclomatic -- Sum of cyclomatic complexity of all nested functions or methods.Sum Essential -- Sum of essential complexity of all nested functions or methods.

FDD SDD AID Pub/Sub SDS REG Req/Rep

AVARAGE COMPLEXITY

Avg Cyclomatic 2,68 2,22 4,04 2,46 3,06 1,75 3,33

Max Cyclomatic 57 29 16 35 13 12 17

Max Nesting 9 5 4 5 5 3 6

SUM COMPLEXITY

Count Path 8029123 92592 652 807148 78 292 1209

Sum Cyclomatic 1707 397 93 2195 55 229 50

Sum Essential 1092 226 70 1204 44 149 26

Page 18: Workshop 2010 Iniziativa Software 24 Settembre 2010 Finmeccanica Group Services, Roma Working group: Prof. S. RUSSO, Dott. M. LOFFREDA, PhD G. Paolillo,

Workshop Iniziativa Software II ed. 18Testing Sistemi Sw Distribuiti Mission Critical

Caso di studio: Analisi del software (2/4)Metriche di Halstead:Si basano su quattro indici ricavati dall’analisi del codice:• n1: Numero di operatori univocamente presenti nel codice;• n2: Numero di operandi (costanti e variabili) univocamente presenti nel codice;• N1: Numero totale di occorrenze degli operatori nel codice;• N2: Numero totale di occorrenze degli operandi nel codice. 

A partire da questi si ricavano altri indici quali:• Program Vocabulary (n): il vocabolario n del programma e definito come n = n1 + n2• Implementation Length (N): è una misura della dimensione del programma N=N1+N2• Program Volume (V): Rappresenta la dimensione dell’implementazione del programma e

può essere pensata come il numero di bit richiesti per rappresentare l’intero programma nella sua forma minima (indipendentemente dalla lunghezza dei nomi dei token).

• Program Difficulty (D): Il livello di difficoltà o di propensione all’errore e proporzionale al numero degli operatori unici del programma:

• Effort to implement (E): Lo sforzo di programmazione può essere pensato come lo sforzo richiesto a comprendere l’implementazione piuttosto che a produrla:

• Number of delivered bugs (B): Il numero di Delivered Bugs è correlato con la complessità globale del software. Esso rappresenta una stima del numero di errori presenti nell’implementazione del sistema.

(N2/n2)*) (n1/2 = D

D*V =E

3000 / (2/3))*(E B 2

Page 19: Workshop 2010 Iniziativa Software 24 Settembre 2010 Finmeccanica Group Services, Roma Working group: Prof. S. RUSSO, Dott. M. LOFFREDA, PhD G. Paolillo,

Workshop Iniziativa Software II ed. 19Testing Sistemi Sw Distribuiti Mission Critical

Caso di studio: Analisi del software (2/4)Metriche di Halstead per i componenti ATM Domain: 

FDD SDD AID

Average Value Variance Average Value Variance Average Value Variance

n1 2,0058026 50,827984 0,7812808 16,40574 0,1476846 4,6639647

n2 6,67795 1452,752 2,6216748 430,1582 0,60826033 100,798706

N1 36,03675 87718,24 9,832512 10615,328 2,255319 1550,0033

N2 24,734043 40876,25 7,1812806 5771,008 1,6633291 869,531

Vocabulary 8,683752 1920,9182 3,4029558 579,9657 0,7559449 148,00314

Length 60,770794 248219,83 17,013794 31998,137 3,9186482 4735,499

Volume 484,18375 2,022587E7 125,726105 2434715,8 29,98373 287974,8

Difficulty 2,7814314 154,77448 0,8699507 28,114206 0,18022528 8,956488

Effort 46501,395 3,87956146E11 6634,0195 1,7365164E10 1601,5745 9,5437338E8

Bugs Delivered 0,11014426 0,93304616 0,025274333 0,088539906 0,0066555715 0,01474004

Page 20: Workshop 2010 Iniziativa Software 24 Settembre 2010 Finmeccanica Group Services, Roma Working group: Prof. S. RUSSO, Dott. M. LOFFREDA, PhD G. Paolillo,

Workshop Iniziativa Software II ed. 20Testing Sistemi Sw Distribuiti Mission Critical

Caso di studio: Analisi del software (2/4)Metriche di Halstead per i componenti core: 

Pub/Sub SharedDS REG Req/Rep

Average

ValueVariance

Average

ValueVariance

Average

ValueVariance

Average

ValueVariance

n1 5,5627704 132,42424 0,88409704 21,849209 0,5854545 12,509381 0,07549505 2,520328

n2 16,91775 2232,1868 2,115903 187,9349 1,5781819 126,844154 0,38118812 87,432076

N1 99,52597 150450,4 11,838275 7925,369 5,9624243 2549,1096 1,4344059 1388,7773

N2 72,61256 80109,16 8,328841 4094,0745 4,3854547 1374,5791 1,095297 803,35876

Vocabulary 22,48052 3291,3857 3,0 324,33963 2,1636364 214,53555 0,45668316 118,22574

Length 172,13853 449723,75 20,167116 23361,201 10,347878 7654,6357 2,529703 4304,862

Volume 1293,8853 3,2003052E7 139,7089 1224271,1 69,37697 399238,3 20,336634 290819,97

Difficulty 9,809524 632,669 1,4150944 76,46329 0,7151515 25,113071 0,09777228 4,996591

Effort 134772,33 8,6436735E11 9449,698 7,152404E9 3070,0242 1,3668311E9 1180,1857 1,0768553E9

Bugs Delivered 0,35182166 2,3403342 0,038257774 0,092384934 0,016456466 0,024251778 0,0042476472 0,012598781

Page 21: Workshop 2010 Iniziativa Software 24 Settembre 2010 Finmeccanica Group Services, Roma Working group: Prof. S. RUSSO, Dott. M. LOFFREDA, PhD G. Paolillo,

Workshop Iniziativa Software II ed. 21Testing Sistemi Sw Distribuiti Mission Critical

Attività in corsoLe attività attualmente in corso prevedono:• Individuazione delle probabilità di transizione a partire dallo

studio del codice e con l’ausilio di esperti di dominio• Definizione della catena di Markov tempo discreto che

rappresenti il sistema• Riduzione dei casi di test attraverso l’utilizzo delle classi di

equivalenza• Progettazione delle classi Tester per il testing funzionale sulla

base delle classi di equivalenza precedentemente definite

 

Page 22: Workshop 2010 Iniziativa Software 24 Settembre 2010 Finmeccanica Group Services, Roma Working group: Prof. S. RUSSO, Dott. M. LOFFREDA, PhD G. Paolillo,

Workshop Iniziativa Software II ed. 22Testing Sistemi Sw Distribuiti Mission Critical

Grazie dell’attenzione