La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

1 UNIVERSITA DEGLI STUDI DI MILANO BICOCCA FACOLTA DI SCIENZE MATEMATICHE, FISICHE E NATURALI Corso di Laurea Magistrale in Informatica Automazione di.

Presentazioni simili


Presentazione sul tema: "1 UNIVERSITA DEGLI STUDI DI MILANO BICOCCA FACOLTA DI SCIENZE MATEMATICHE, FISICHE E NATURALI Corso di Laurea Magistrale in Informatica Automazione di."— Transcript della presentazione:

1 1 UNIVERSITA DEGLI STUDI DI MILANO BICOCCA FACOLTA DI SCIENZE MATEMATICHE, FISICHE E NATURALI Corso di Laurea Magistrale in Informatica Automazione di Test di Sistemi Embedded Relatore: Prof. Mauro PEZZE Correlatori: Lorena SIMONI Giuseppe GORGOGLIONE Relazione della prova finale di: Carmine Carella Matricola: Anno Accademico 2009/2010

2 Il Software nei sistemi embedded Il Software nei sistemi embedded Testing nei sistemi embedded Testing nei sistemi embedded Automazione del Testing Automazione del Testing Il Progetto Cartesio Il Progetto Cartesio Contributo della Tesi Contributo della Tesi Attività di testing Attività di testing Conclusioni Conclusioni Indice

3 Incidenza percentuale dei sistemi embedded nel costo finale dei prodotti (1) (1) Brandolese, C. and Fornaciari, W., Sistemi Embedded - sviluppo hardware e software per sistemi dedicati, 2007, Mondadori Fatturato del software embedded per categoria(1) (AAGR - Average Annual Growth Rate) Mercato globale dei sistemi embedded in miliardi di dollari (1) Utilizzo recente dei sistemi operativi per sistemi embedded (1) TESTING EMBEDDED AUTOMAZIONE AMBIENTE SPERIMENTALE ATTIVITA TESTING CONCLUSIONI SW SISTEMI EMBEDDED CONTRIBUTO TESI Il SW nei Sistemi Embedded

4 Fasi Tipologie di Testing SoftwareProcessoreSistemaAmbiente Simulazione One waySimulato--- FeedbackSimulato--- Rapid prototypingSperimentale Reale Prototipazione Test unità/integrazione sw (1) Sperimentale/reale (host) HostSimulato Test unità/integrazione sw (2) Reale (finale)EmulatoreSimulato Test unità/integrazione hw -Reale (finale) Test integrazione hw/sw Reale(finale) SperimentaleSimulato Test di sistemaReale(finale) PrototipoSimulato Test ambientaleReale(finale) Prototipo maturoSimulato Pre-produzione Test di sistemaReale(finale) Reale Post-produzione Test mantenimentoReale(finale) Testing nei Sistemi Embedded TESTING EMBEDDED AUTOMAZIONE AMBIENTE SPERIMENTALE ATTIVITA TESTING CONCLUSIONI SW SISTEMI EMBEDDED CONTRIBUTO TESI

5 Cross- compilazione Ambiente Host Ambiente di sviluppo Host-testing Ambiente Target Ambiente di esecuzione Target-testing Verifica delle caratteristiche non funzionali del SW Verifica delle caratteristiche non funzionali del SW Test integrazione hw/sw Test integrazione hw/sw Test di sistema Test di sistema Test integrazione hw/sw Test integrazione hw/sw Test di sistema Test di sistema Gli ambienti di Testing Approccio simulativo tramite emulazione di piattaforma TESTING EMBEDDED AUTOMAZIONE AMBIENTE SPERIMENTALE ATTIVITA TESTING CONCLUSIONI SW SISTEMI EMBEDDED CONTRIBUTO TESI

6 Importanza: migliora efficacia ed efficienza del testing Importanza: migliora efficacia ed efficienza del testing Problema: Problema: Soluzioni ad-hoc (application-specific) Soluzioni ad-hoc (application-specific) Metodologie interne aziendali Metodologie interne aziendali Letteratura scarsa e approcci poco concreti Letteratura scarsa e approcci poco concreti Soluzione proposta: Soluzione proposta: personalizzazione di strumenti off-the-shelf per adattarli allarchitettura specifica in modo garantire il corretto funzionamento dello strumento di automazione personalizzazione di strumenti off-the-shelf per adattarli allarchitettura specifica in modo garantire il corretto funzionamento dello strumento di automazione Automazione del testing TESTING EMBEDDED AUTOMAZIONE AMBIENTE SPERIMENTALE ATTIVITA TESTING CONCLUSIONI SW SISTEMI EMBEDDED CONTRIBUTO TESI

7 PND Customer USB SDCARD NAND CLCD TOUCHPANEL KEYBOARD POWER MANAGEMENT AUDIO GPS GPIO ETHERNET SERIAL PORT Graphic Il Progetto Cartesio BSP linux Cartesio Sviluppo e testing sw in STM GUI e applicazioni proprietarie BSP customizzato GUI e applicazioni proprietarie BSP customizzato Board ST PROCESSO TESTING Test object: device driver manual and automatic test suite Test funzionali e strutturali Test report: excel PROCESSO TESTING Test object: device driver manual and automatic test suite Test funzionali e strutturali Test report: excel Sviluppo BSP LINUX CARTESIO Firmware Bootloader Kernel + (BSP) device driver Command line interface TESTING EMBEDDED AUTOMAZIONE AMBIENTE SPERIMENTALE ATTIVITA TESTING CONCLUSIONI SW SISTEMI EMBEDDED CONTRIBUTO TESI

8 Analisi fattibilità e costi della soluzione adottata: Analisi fattibilità e costi della soluzione adottata: Valutazione caratteristiche non funzionali del sw nellambiente target attraverso 4 attivita di testing rilevanti nel processo di testing del BSP Linux Cartesio Valutazione caratteristiche non funzionali del sw nellambiente target attraverso 4 attivita di testing rilevanti nel processo di testing del BSP Linux Cartesio Attività di Testing Classe problemi analizzati Requisiti di Qualità prestazioni codice in fase di boot punti critici del software con maggiore tempo di esecuzione nella fase di boot prestazioni uso e gestione della memoria memory leak prestazioni, affidabilità prestazioni di I/O su dispositivi di mass storage scarsa efficienza delle operazioni di I/O (lettura, scrittura) prestazioni test di copertura problemi nellefficacia dei test funzionali e strutturali dellambiente sperimentale copertura Contributo della Tesi TESTING EMBEDDED AUTOMAZIONE AMBIENTE SPERIMENTALE ATTIVITA TESTING CONCLUSIONI SW SISTEMI EMBEDDED CONTRIBUTO TESI

9 Obiettivi e Scelta Strumento: Profiling: strategia per valutare le prestazioni del codice Profiling: strategia per valutare le prestazioni del codice Function Tracing - tecnica di profiling per valutazione di: Function Tracing - tecnica di profiling per valutazione di: Prestazioni funzioni kernel eseguite al boot Prestazioni funzioni kernel eseguite al boot Funzioni dei device driver Funzioni dei device driver Analisi e scelta strumento di automazione Bootchart Ftrace Ftrace: framework del kernel Linux Ftrace: framework del kernel Linux Function Graph Tracer: Function Graph Tracer: Misura il tempo di esecuzione delle funzioni (durata delle funzioni) Misura il tempo di esecuzione delle funzioni (durata delle funzioni) Costruisce il grafo delle chiamate Costruisce il grafo delle chiamate Debug filesystem per esportare i risultati nello user-space Debug filesystem per esportare i risultati nello user-space Valutazione delle Prestazioni del Codice nella Fase di Boot (1) TESTING EMBEDDED AUTOMAZIONE AMBIENTE SPERIMENTALE ATTIVITA TESTING CONCLUSIONI SW SISTEMI EMBEDDED CONTRIBUTO TESI

10 Personalizzazione di Function Graph Tracer per lapplicazione su architettura ARM Personalizzazione di Function Graph Tracer per lapplicazione su architettura ARM GCC KERNEL Function{ probe } KERNEL Function{ probe } Mcount arch/arm/kernel/entry- common.S Mcount arch/arm/kernel/entry- common.S Function Graph Tracer __gnu_mcount_mc compila invoca Valutazione delle Prestazioni del Codice nella Fase di Boot (2) TESTING EMBEDDED AUTOMAZIONE AMBIENTE SPERIMENTALE ATTIVITA TESTING CONCLUSIONI SW SISTEMI EMBEDDED CONTRIBUTO TESI

11 Problema: valori durata non accurati Problema: valori durata non accurati Soluzione: utilizzo di un timer ad alta risoluzione Soluzione: utilizzo di un timer ad alta risoluzione API Sched-clock() Modifica driver del timer: arch/arm/mach-cartesio/time.c Struttura di Stato Struct clock_source Clock_source_read() Struttura di Stato Struct clock_source Clock_source_read() LR/HR Hardware clock chips Device driver timer LR/HR Timer Framework API definisce implementa i nvoca Hardware HR timer clock chip Hardware HR timer clock chip Function Duration Tracer chiama astrae Sottosistema time-management kernel Valutazione delle Prestazioni del Codice nella Fase di Boot (3) TESTING EMBEDDED AUTOMAZIONE AMBIENTE SPERIMENTALE ATTIVITA TESTING CONCLUSIONI SW SISTEMI EMBEDDED CONTRIBUTO TESI

12 Valutazione delle Prestazioni del Codice nella Fase di Boot (4) Risultati Sperimentali Ambiente Target Ambiete Host Function Graph Tracer Startup sistema Kernel-space Debug file system User-space Risultati Strumento Post-Analisi FDD Strumento Post-Analisi FDD MMC Risultati 0.18sec 0.05sec 0.04sec 0.02sec (Valori temporali in microsecondi) TESTING EMBEDDED AUTOMAZIONE AMBIENTE SPERIMENTALE ATTIVITA TESTING CONCLUSIONI SW SISTEMI EMBEDDED CONTRIBUTO TESI

13 Memory leakage: Memory leakage: consumo di memoria Zona di memoria non più necessaria, non deallocata Errore di programmazione Errore di programmazione Rilevanza nei sistemi embedded Rilevanza nei sistemi embedded Impatto negativo prestazioni e affidabilità sistema Impatto negativo prestazioni e affidabilità sistema Scelto e personalizzato kmemleak Scelto e personalizzato kmemleak Memory leak nei device driver Memory leak nei device driver cartesio_sga_probe cartesio_sga_init Fase inizializzazione driver Fase inizializzazione driver Funzione init Funzione init Funzione exit Funzione exit Rilevazione di Memory Leak TESTING EMBEDDED AUTOMAZIONE AMBIENTE SPERIMENTALE ATTIVITA TESTING CONCLUSIONI SW SISTEMI EMBEDDED CONTRIBUTO TESI

14 KB/s (media) KB/s (media) KB/s (media) 1018 KB/s (media) Obiettivi: Obiettivi: Valutare le prestazioni Valutare le prestazioni Ottimizzazione Ottimizzazione Strumenti base time cp source dest Strumenti base time cp source dest Limite: scarsa efficacia per processi di ottimizzazione Limite: scarsa efficacia per processi di ottimizzazione Strumenti complessi per correlare le prestazioni ad altri parametri: cpu cache, buffer cache, ecc. Strumenti complessi per correlare le prestazioni ad altri parametri: cpu cache, buffer cache, ecc. IOzone IOzone Valutazione delle Prestazioni di I/O su Dispositivi di Mass Storage Device driver MMC su release BSP 2.3 e 2.4 TESTING EMBEDDED AUTOMAZIONE AMBIENTE SPERIMENTALE ATTIVITA TESTING CONCLUSIONI SW SISTEMI EMBEDDED CONTRIBUTO TESI

15 Problema: Problema: Approcci ad-hoc Approcci ad-hoc Soluzione: Soluzione: Personalizzazione di strumenti generali Personalizzazione di strumenti generali Risultati: Risultati: Approccio ad-hoc superato Approccio ad-hoc superato Personalizzazione, può influenzare la raccolta e l'analisi dei risultati per valutare la qualità Personalizzazione, può influenzare la raccolta e l'analisi dei risultati per valutare la qualità Migliorato il processo di testing STM Migliorato il processo di testing STM aree di qualità non esplorate aree di qualità non esplorate strumenti di automazione strumenti di automazione Conclusioni TESTING EMBEDDED AUTOMAZIONE AMBIENTE SPERIMENTALE ATTIVITA TESTING CONCLUSIONI SW SISTEMI EMBEDDED CONTRIBUTO TESI

16 Criteri Scelta Strumenti di Automazione 1. Instrumentazione (implicita o esplicita), 2. Licenza degli strumenti 3. Linguaggio di programmazione con il quale è scritto il sw da testare 4. Sistema operativo 5. Architettura hw utilizzata 6. Ambito di utilizzo e integrazione (strumenti user-space e kernel-space) 7. Interfaccia e reporting (GUI/command-line)

17 Rilevazione di Memory Leak (1) Scelta dello Strumento Non necessaria la personalizzazione per larchitettura ARM Non necessaria la personalizzazione per larchitettura ARM Facilmente integrabile nel kernel Facilmente integrabile nel kernel

18 Rilevazione di Memory Leak (2) nei device driver Fasi di un device driver: Fasi di un device driver: Esecuzione Esecuzione Inizializzazione Inizializzazione Fase Inizializzazione Fase Inizializzazione Fase platform-dependet del processo di boot del kernel Fase platform-dependet del processo di boot del kernel Registrazione dei device Registrazione dei device Registrazione dei driver Registrazione dei driver Associazione tra device e driver Associazione tra device e driver Associazione tra device e driver

19 Rilevazione di Memory Leak (3) Risultati Sperimentali Errore programmazione: mancanza dellistruzione di deallocazione della struttura di stato Errore programmazione: mancanza dellistruzione di deallocazione della struttura di stato Funzione probe e funzione remove Funzione probe e funzione remove FUNZIONE PROBE struct cartesio_sga *sga sga=kzalloc(struct cartesio_sga) FUNZIONE PROBE struct cartesio_sga *sga sga=kzalloc(struct cartesio_sga) FUNZIONE REMOVE kfree (sga) FUNZIONE REMOVE kfree (sga) MEMORIA struttura di stato sga struttura di stato Rilevazione dell'errore con kmemleak Problema con i driver caricati come modulo cartesio_sga_probe cartesio_sga_init

20 Rilevazione di Memory Leak (4) Risultati Sperimentali Errore programmazione: mancanza salvataggio dellhandle della struttura di stato allocata Errore programmazione: mancanza salvataggio dellhandle della struttura di stato allocata Funzione probe Funzione probe FUNZIONE PROBE struct cartesio_sga *sga sga=kzalloc(struct cartesio_sga) amba_set_drvdata(dev,sga) FUNZIONE PROBE struct cartesio_sga *sga sga=kzalloc(struct cartesio_sga) amba_set_drvdata(dev,sga) MEMORIA struttura di stato sga Struct device Struct device_private *p Struct device Struct device_private *p Rilevazione dell'errore con kmemleak cartesio_sga_probe cartesio_sga_init

21 Valutazione delle Prestazioni di I/O su Dispositivi a Blocchi Scelta dello Strumento e Personalizzazione Scelta dello strumento di automazione: Scelta dello strumento di automazione: Bonnie e Bonnie++: valutazione di prestazioni su hard disk (tempi di seek) Bonnie e Bonnie++: valutazione di prestazioni su hard disk (tempi di seek) Tiobench: stress test multi-thread Tiobench: stress test multi-thread Iozone: verificare le prestazioni con linfluenza della gerarchia di memorie. Più completo Iozone: verificare le prestazioni con linfluenza della gerarchia di memorie. Più completo diverse operazioni: read, write dimensioni di file differenti (da 64KB a 512MB) trasferiti con record di diverse dimensioni (da 4K a 16MB) Ambiente Target Ambiete Host IOzone Risultati compatibili excel User-space Excel MMC Risultati Personalizzazione Personalizzazione CC= cc C89= c89 GCC= gcc CCS= /usr/ccs/bin/cc NACC= /opt/ansic/bin/cc CC= cc C89= c89 GCC= gcc CCS= /usr/ccs/bin/cc NACC= /opt/ansic/bin/cc CC= arm-stm-linux-gnueabi-gcc C89= c89 GCC= gcc CCS= /usr/ccs/bin/cc NACC= /opt/ansic/bin/cc CC= arm-stm-linux-gnueabi-gcc C89= c89 GCC= gcc CCS= /usr/ccs/bin/cc NACC= /opt/ansic/bin/cc


Scaricare ppt "1 UNIVERSITA DEGLI STUDI DI MILANO BICOCCA FACOLTA DI SCIENZE MATEMATICHE, FISICHE E NATURALI Corso di Laurea Magistrale in Informatica Automazione di."

Presentazioni simili


Annunci Google