La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

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

Presentazioni simili


Presentazione sul tema: "Workshop 2010 Iniziativa Software 24 Settembre 2010 Finmeccanica Group Services, Roma Working group: Prof. S. RUSSO, Dott. M. LOFFREDA, PhD G. Paolillo,"— Transcript della presentazione:

1 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

2 Workshop Iniziativa Software II ed. 2 Testing Sistemi Sw Distribuiti Mission Critical Outline Descrizione linea di ricerca Approccio proposto per il testing Caso di studio: Swim Box Stato davanzamento

3 Workshop Iniziativa Software II ed. 3 Testing 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 lutilizzo delle risorse destinate al testing al fine di assicurare un prestabilito livello di reliability e minimizzare il costo totale del testing Tematica Obiettivo

4 Workshop Iniziativa Software II ed. 4 Testing 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 dellarchitettura Leventuale 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 Ref.

5 Workshop Iniziativa Software II ed. 5 Testing 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 (C j ) 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 lutilizzo medio dei componenti C1 C3 OS P 24 P OS-1 P 1-OS P 12 P 34 P 23 P 21 P OS-3 P 3-OS Sys Calls C4 C2

6 Workshop Iniziativa Software II ed. 6 Testing Sistemi Sw Distribuiti Mission Critical Approccio proposto (3/6) La reliability totale del sistema R sys è calcolata considerando le reliability individuali dei componenti R i ed i visit count V J P i,j = probabilità di transizione V j = numero atteso di visite dove q j = probabilità che lapplicazione parta dal componente C J m = numero di absorbing state La reliability attesa del sistema è: E[R sys ] = ( i n R i V i ) * K V OS dove K V OS è la reliability dellOS stimato come 1 - lim n F/n, durante gli n test di una versione precedente (F è il numero di fallimenti)

7 Workshop Iniziativa Software II ed. 7 Testing 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 R sys < R min : Minimize T t = i f i (λ i ) Subject to E[R sys ] = (Π i n R i Vi ) * K Vos R min dove λ è la failure intensity Le tecniche di mitigazione dei fallimenti considerati sono: Riavvio del componente Riesecuzione da parte dellapplicazione Switch automatico in caso di fallimento (failover to a standby)

8 Workshop Iniziativa Software II ed. 8 Testing 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 C i dotato di mitigation means diviene: E[R sys ] = (Π i n R Ci Vi ) * K Vos dove R Ci = 1 - Pr(componente C i fallisca)

9 Workshop Iniziativa Software II ed. 9 Testing Sistemi Sw Distribuiti Mission Critical Approccio proposto (6/6) Informazioni necessarie per applicare lapproccio Informazioni sullarchitettura Identificazione dei componenti, probabilità di transizione (o conteggio di esecuzione) Informazioni sui componenti Tempo speso per visita, reliability dellOS, 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 dallesecuzione dei casi di test di una versione precedente Attraverso dati storici e/o con lausilio di esperti

10 Workshop Iniziativa Software II ed. 10 Testing Sistemi Sw Distribuiti Mission Critical Caso di studio: SWIM-SUIT prototype Lapproccio 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

11 Workshop Iniziativa Software II ed. 11 Testing Sistemi Sw Distribuiti Mission Critical Caso di studio: SWIM-SUIT prototype OBIETTIVO: Verificare la bontà dellapproccio proposto su un sistema mission-critical Il testing del prototipo è stato già affrontato nellambito del progetto SWIM-SUIT utilizzando test funzionali allocati uniformemente tra i diversi componenti Attraverso lallocazione delle risorse di testing, secondo lapproccio proposto, si vuole dimostrare un improvement della reliability del sistema a parità di risorse totali di testing utilizzate Consolidare attraverso lesperienza sul campo una metodologia di testing, in particolar modo nella pianificazione dei test, da utilizzare per sistemi mission- critical

12 Workshop Iniziativa Software II ed. 12 Testing Sistemi Sw Distribuiti Mission Critical Caso di studio: SWIM-SUIT prototype Il progetto SWIM-SUIT ha realizzato il prototipo SWIM-BOX: ATM Domain Components Core Components To/From ATM Stakeholders To/From DataLink Layer

13 Workshop Iniziativa Software II ed. 13 Testing 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

14 Workshop Iniziativa Software II ed. 14 Testing Sistemi Sw Distribuiti Mission Critical Caso di studio: Analisi del software (1/2) Componente Flight Data Domain (FDD) CSCIFUNCTIONIN 1IN 2IN 3OUT FDD createFOFlightObjectCluster[] FlightIdentifier updateFOFlightIdentifierFlightObjectCluster[] Boolean readFOFlightIdentifierFlightObjectCluster[] FlightObject readFOsFlightIdentifier[] FlightObject[] readFOSummaryFlightIdentifier[] FlightSummary[] requestFOServiceFlightIdentifierFlightObjectReleaseString[]ComplexReport handoverFOFlightIdentifier Boolean setFilteringCriteriaFilteringCriteria Boolean unsetFilteringCriteriaFlightIdentifier[]AvailableFilteringCriteria[] Boolean subscribeStakeholderIdentifierEndPoint Boolean unsubscribe void addMeAsParticipantFlightIdentifierFDDRole Boolean removeMeAsParticipantFlightIdentifierboolean Boolean getRoleForFlightFlightIdentifier FDDRole

15 Workshop Iniziativa Software II ed. 15 Testing Sistemi Sw Distribuiti Mission Critical Caso di studio: Analisi del software (1/2) Componente Publish/Subscribe (PSS) CSCIFUNCTIONIN 1IN 2IN 3OUT PSS activatePublisherSwimTopic[] Boolean activateSubscriberSwimTopic[]Filter[] Boolean activateSubscriberSwimTopic[]Filter[]DataListener[]Boolean deactivatePublisherSwimTopic[] Boolean deactivateSubscriberSwimTopic[] Boolean getFilterSwimTopic Filter getMessagesSwimTopicInt SWIMPublishedData[] isPublisherActivatedSwimTopic Boolean isSubscriberActivatedSwimTopic Boolean isSubscriberActivatedForPullSwimTopic Boolean isSubscriberActivatedForPushSwimTopic Boolean publishSWIMPublishedData[] Boolean removeFilterSwimTopic Boolean setFilterSwimTopicFilter Boolean CSCIFUNCTIONIN 1IN 2OUT SDS getDataStorekey SharedData setDataStorekeySharedDatabolean removeDataStorekey bolean Componente Share Data Store (SDS)

16 Workshop Iniziativa Software II ed. 16 Testing Sistemi Sw Distribuiti Mission Critical Caso di studio: Analisi del software (2/2) Metriche dimensionali del codice: Metriche/ ComponentiFDDSDDAIDPub/SubSharedDS REG Req/Rep CountLineComment RatioCommentToCode0,481,181,20,350,671,171,15 CountDeclFile CountLineBlank CountStmtDecl CountDeclFunction CountLine CountStmtExe CountLineCode CountDeclClass 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.

17 Workshop Iniziativa Software II ed. 17 Testing 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. FDDSDDAIDPub/SubSDSREGReq/Rep AVARAGE COMPLEXITY Avg Cyclomatic2,682,224,042,463,061,753,33 Max Cyclomatic Max Nesting SUM COMPLEXITY Count Path Sum Cyclomatic Sum Essential

18 Workshop Iniziativa Software II ed. 18 Testing Sistemi Sw Distribuiti Mission Critical Caso di studio: Analisi del software (2/4) Metriche di Halstead: Si basano su quattro indici ricavati dallanalisi 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 dellimplementazione del programma e può essere pensata come il numero di bit richiesti per rappresentare lintero programma nella sua forma minima (indipendentemente dalla lunghezza dei nomi dei token). Program Difficulty (D): Il livello di difficoltà o di propensione allerrore 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 limplementazione 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 nellimplementazione del sistema.

19 Workshop Iniziativa Software II ed. 19 Testing Sistemi Sw Distribuiti Mission Critical Caso di studio: Analisi del software (2/4) Metriche di Halstead per i componenti ATM Domain: FDDSDDAID Average ValueVarianceAverage ValueVarianceAverage ValueVariance n12, , , ,405740, , n26, ,7522, ,15820, , N136, ,249, ,3282, ,0033 N224, ,257, ,0081, ,531 Vocabulary8, ,91823, ,96570, ,00314 Length60, ,8317, ,1373, ,499 Volume484,183752,022587E7125, ,829, ,8 Difficulty2, ,774480, , , , Effort46501,3953, E116634,01951, E101601,57459, E8 Bugs Delivered0, , , , , ,

20 Workshop Iniziativa Software II ed. 20 Testing Sistemi Sw Distribuiti Mission Critical Caso di studio: Analisi del software (2/4) Metriche di Halstead per i componenti core: Pub/SubSharedDSREGReq/Rep Average Value Variance Average Value Variance Average Value Variance Average Value Variance n15, ,424240, , , , , , n216, ,18682, ,93491, , , , N199, ,411, ,3695, ,10961, ,7773 N272, ,168, ,07454, ,57911, ,35876 Vocabulary22, ,38573,0324,339632, ,535550, ,22574 Length172, ,7520, ,20110, ,63572, ,862 Volume1293,88533, E7139, ,169, ,320, ,97 Difficulty9, ,6691, ,463290, , , , Effort134772,338, E119449,6987,152404E93070,02421, E91180,18571, E9 Bugs Delivered0, , , , , , , ,

21 Workshop Iniziativa Software II ed. 21 Testing Sistemi Sw Distribuiti Mission Critical Attività in corso Le attività attualmente in corso prevedono: Individuazione delle probabilità di transizione a partire dallo studio del codice e con lausilio di esperti di dominio Definizione della catena di Markov tempo discreto che rappresenti il sistema Riduzione dei casi di test attraverso lutilizzo delle classi di equivalenza Progettazione delle classi Tester per il testing funzionale sulla base delle classi di equivalenza precedentemente definite

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


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

Presentazioni simili


Annunci Google