210 likes | 650 Views
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.
E N D
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: 055465 Anno Accademico 2009/2010
Indice • Il Software nei sistemi embedded • Testing nei sistemiembedded • Automazione delTesting • Il Progetto Cartesio • Contributo della Tesi • Attività di testing • Conclusioni
SW SISTEMI EMBEDDED Il SW nei SistemiEmbedded TESTING EMBEDDED Incidenza percentuale dei sistemi embedded nel costo finale dei prodotti (1) AUTOMAZIONE Mercato globale dei sistemi embedded in miliardi di dollari (1) AMBIENTE SPERIMENTALE CONTRIBUTO TESI ATTIVITA’ TESTING Utilizzo recente dei sistemi operativi per sistemi embedded (1) Fatturato del software embedded per categoria(1) (AAGR - Average Annual Growth Rate) CONCLUSIONI (1) Brandolese, C. and Fornaciari, W., Sistemi Embedded - sviluppo hardware e software per sistemi dedicati, 2007, Mondadori
SW SISTEMI EMBEDDED Testing nei Sistemi Embedded TESTING EMBEDDED AUTOMAZIONE AMBIENTE SPERIMENTALE CONTRIBUTO TESI ATTIVITA’ TESTING CONCLUSIONI
SW SISTEMI EMBEDDED Gliambientidi Testing TESTING EMBEDDED AUTOMAZIONE Ambiente Target Ambiente Host Cross-compilazione Ambiente di esecuzione Ambiente di sviluppo AMBIENTE SPERIMENTALE Host-testing Target-testing CONTRIBUTO TESI • Test integrazione hw/sw • Test di sistema Approccio simulativo tramite emulazione di piattaforma ATTIVITA’ TESTING • Verifica delle caratteristiche non funzionali del SW CONCLUSIONI
SW SISTEMI EMBEDDED Automazione deltesting TESTING EMBEDDED • Importanza: migliora efficacia ed efficienza deltesting • Problema: • Soluzioni ad-hoc (application-specific) • Metodologie interne aziendali • Letteratura scarsa e approcci poco concreti • Soluzione proposta: • personalizzazione di strumenti off-the-shelf per adattarliall’architettura specifica in modo garantire il corretto funzionamento dello strumento di automazione AUTOMAZIONE AMBIENTE SPERIMENTALE CONTRIBUTO TESI ATTIVITA’ TESTING CONCLUSIONI
SW SISTEMI EMBEDDED Il Progetto Cartesio TESTING EMBEDDED Board ST PND Customer GPIO SERIAL PORT CLCDTOUCHPANEL USB AUTOMAZIONE Sviluppo BSP LINUX CARTESIO • PROCESSO TESTING • Test object: device driver • manual and automatic test suite • Test funzionali e strutturali • Test report: excel SDCARD GPS AUDIO KEYBOARD NAND Command line interface • GUI e applicazioni proprietarie • BSP customizzato Kernel + (BSP) device driver POWERMANAGEMENT Graphic ETHERNET AMBIENTE SPERIMENTALE Bootloader BSP linux Cartesio Firmware Sviluppo e testing sw in STM CONTRIBUTO TESI ATTIVITA’ TESTING CONCLUSIONI
SW SISTEMI EMBEDDED Contributo della Tesi TESTING EMBEDDED • Analisi fattibilità e costi della soluzione adottata: • Valutazione caratteristiche non funzionali del sw nell’ambiente target attraverso 4 attivita’ di testing rilevanti nel processo di testing del BSP Linux Cartesio AUTOMAZIONE AMBIENTE SPERIMENTALE CONTRIBUTO TESI ATTIVITA’ TESTING CONCLUSIONI
SW SISTEMI EMBEDDED Valutazione delle Prestazioni del Codice nella Fase diBoot (1) TESTING EMBEDDED Obiettivi e Scelta Strumento: • Profiling: strategia per valutare le prestazioni del codice • FunctionTracing - tecnica di profiling per valutazione di: • Prestazioni funzioni kernel eseguite alboot • Funzioni dei device driver • Analisi e scelta strumento di automazione • Bootchart • Ftrace • Ftrace: framework del kernelLinux • FunctionGraphTracer: • Misura il tempo di esecuzione delle funzioni (durata delle funzioni) • Costruisce il grafo delle chiamate • Debugfilesystem per esportare i risultati nello user-space AUTOMAZIONE AMBIENTE SPERIMENTALE CONTRIBUTO TESI ATTIVITA’ TESTING CONCLUSIONI
SW SISTEMI EMBEDDED Valutazione delle Prestazioni del Codice nella Fase diBoot (2) TESTING EMBEDDED • Personalizzazione di FunctionGraphTracer per l’applicazione su architettura ARM AUTOMAZIONE AMBIENTE SPERIMENTALE KERNEL Function{ probe } Mcount arch/arm/kernel/entry-common.S __gnu_mcount_mc invoca CONTRIBUTO TESI invoca compila ATTIVITA’ TESTING Function Graph Tracer GCC CONCLUSIONI
SW SISTEMI EMBEDDED Valutazione delle Prestazioni del Codice nella Fase diBoot (3) TESTING EMBEDDED • Problema: valori durata non accurati • Soluzione: utilizzo di un timer ad alta risoluzione AUTOMAZIONE AMBIENTE SPERIMENTALE Sottosistema time-management kernel CONTRIBUTO TESI • Modifica driver del timer: arch/arm/mach-cartesio/time.c LR/HR Timer Framework Struttura di Stato Structclock_source Clock_source_read() invoca definisce APISched-clock() ATTIVITA’ TESTING API implementa Device driver timer chiama astrae CONCLUSIONI FunctionDurationTracer Hardware HR timer clock chip LR/HR Hardware clock chips
SW SISTEMI EMBEDDED Valutazione delle Prestazioni del Codice nella Fase di Boot (4)Risultati Sperimentali TESTING EMBEDDED Ambiente Target Ambiete Host AUTOMAZIONE Debug file system User-space Risultati Strumento Post-Analisi FDD Startup sistema Risultati MMC AMBIENTE SPERIMENTALE Function Graph Tracer Kernel-space (Valori temporali in microsecondi) CONTRIBUTO TESI 0.18sec 0.05sec ATTIVITA’ TESTING 0.04sec CONCLUSIONI 0.02sec 0.02sec
SW SISTEMI EMBEDDED Rilevazione diMemoryLeak TESTING EMBEDDED • Memoryleakage: consumo di memoria • Zona di memoria non più necessaria, non deallocata • Errore di programmazione • Rilevanza nei sistemi embedded • Impatto negativo prestazioni e affidabilità sistema • Scelto e personalizzato kmemleak • Memoryleak nei device driver AUTOMAZIONE AMBIENTE SPERIMENTALE • Fase inizializzazione driver • Funzione init • Funzione exit CONTRIBUTO TESI ATTIVITA’ TESTING cartesio_sga_probe CONCLUSIONI cartesio_sga_init
SW SISTEMI EMBEDDED Valutazione delle Prestazioni di I/O su Dispositivi di Mass Storage TESTING EMBEDDED Device driver MMC su release BSP 2.3 e 2.4 50.207 KB/s (media) • Obiettivi: • Valutare le prestazioni • Ottimizzazione • Strumenti base timecp source dest • Limite: scarsa efficacia per processi di ottimizzazione • Strumenti complessiper correlare le prestazioni ad altri parametri: cpu cache, buffer cache, ecc. • IOzone AUTOMAZIONE AMBIENTE SPERIMENTALE 1018 KB/s (media) CONTRIBUTO TESI 57.642 KB/s (media) ATTIVITA’ TESTING 9.204 KB/s (media) CONCLUSIONI
SW SISTEMI EMBEDDED Conclusioni TESTING EMBEDDED • Problema: • Approcci ad-hoc • Soluzione: • Personalizzazione di strumenti generali • Risultati: • Approccio ad-hoc superato • Personalizzazione, può influenzare la raccolta e l'analisi dei risultati per valutare la qualità • Migliorato il processo di testing STM • aree di qualità non esplorate • strumenti di automazione AUTOMAZIONE AMBIENTE SPERIMENTALE CONTRIBUTO TESI ATTIVITA’ TESTING CONCLUSIONI
Criteri Scelta Strumenti di Automazione • Instrumentazione (implicita o esplicita), • Licenza degli strumenti • Linguaggio di programmazione con il quale è scritto il sw da testare • Sistema operativo • Architettura hw utilizzata • Ambito di utilizzo e integrazione (strumenti user-space e kernel-space) • Interfaccia e reporting (GUI/command-line)
Rilevazione di MemoryLeak (1)Scelta dello Strumento • Non necessaria la personalizzazione per l’architettura ARM • Facilmente integrabile nel kernel
Rilevazione di MemoryLeak (2)nei device driver Associazione tra device e driver • Fasi di un device driver: • Esecuzione • Inizializzazione • Fase Inizializzazione • Fase platform-dependet del processo di boot del kernel • Registrazione dei device • Registrazione dei driver • Associazione tra device e driver
Rilevazione di MemoryLeak (3)Risultati Sperimentali • Errore programmazione: mancanza dell’istruzione di deallocazione della struttura di stato • Funzione probe e funzione remove MEMORIA FUNZIONE REMOVE kfree (sga) FUNZIONE PROBE structcartesio_sga*sga sga=kzalloc(structcartesio_sga) struttura di stato struttura di stato sga • Rilevazione dell'errore con kmemleak struttura di stato struttura di stato • Problema con i driver caricati come modulo cartesio_sga_probe cartesio_sga_init
Rilevazione di MemoryLeak (4)Risultati Sperimentali • Errore programmazione: mancanza salvataggio dell’handle della struttura di stato allocata • Funzione probe MEMORIA FUNZIONE PROBE structcartesio_sga*sga sga=kzalloc(structcartesio_sga) amba_set_drvdata(dev,sga) struttura di stato sga Structdevice Structdevice_private*p • Rilevazione dell'errore con kmemleak cartesio_sga_probe cartesio_sga_init
Valutazione delle Prestazioni di I/O su Dispositivi a BlocchiScelta dello Strumento e Personalizzazione • Scelta dello strumento di automazione: • Bonnie e Bonnie++: valutazione di prestazioni su hard disk (tempi di seek) • Tiobench: stress test multi-thread • Iozone: verificare le prestazioni con l’influenza 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 AmbieteHost Risultati compatibili excel Excel MMC User-space Risultati IOzone • Personalizzazione CC=arm-stm-linux-gnueabi-gcc 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