Scegli la tua lingua
Corso Avanzato di Embedded Software Testing
Più di 2 milioni di studenti in tutto il mondo

Corso Avanzato di Embedded Software Testing

Padroneggiare l'intero spettro del test del software embedded — dall'analisi statica e l'iniezione di guasti al debug on-target e all'automazione CI. Questo addestramento avanzato fornisce agli ingegneri firmware e ai professionisti del test tecniche comprovate per sistemi safety-critical e con risorse limitate. Colmare le lacune di copertura, rafforzare gli stack di comunicazione e fornire evidenze pronte per l'audit con sicurezza.

Dedika per aziende

Cosa imparerai:

  • Progettare casi di test basati sulle specifiche di progettazione e sulla struttura per i moduli firmware embedded.

  • Configurare i livelli di astrazione hardware e gli harness di test per l'esecuzione di test unitari su host.

  • Applicare i criteri di copertura MC/DC e di copertura delle diramazioni in linea con i livelli di integrità della sicurezza funzionale.

  • Eseguire campagne di fault injection mirate a software, hardware e interfacce di comunicazione.

  • Realizzare pipeline CI automatizzate che eseguono test embedded su simulatori e postazioni hardware-in-the-loop.

  • Mappare le evidenze di test ai requisiti del ciclo di vita della sicurezza per una documentazione di conformità pronta per l'audit.

Come studi in modo pratico Corso Avanzato di Embedded Software Testing

Come metti in pratica Corso Avanzato di Embedded Software Testing

Per te che sei un'azienda e vuoi formare il tuo team

Su Dedika per aziende, il corso include esercizi ed esempi personalizzati sul tuo business e secondo le esigenze della tua azienda.

Clicca qui

Contenuto del corso

8 Capitoli • 38 LezioniDurata tra 4 e 360 ore (decidi tu)

Capitolo 1Vedi dettagli

Fondamenti di test del software embedded

  • Lezione 1 • Ciclo di vita del testing embedded

    Mappa le attività di testing attraverso le fasi di sviluppo, dal livello di unità a quello di sistema. Fornisce un framework per organizzare tutte le tecniche trattate nei capitoli successivi.

  • Lezione 2 • Categorie di difetti comuni

    Cataloga i tipi di difetti prevalenti nel software embedded: guasti di temporizzazione, errori di memoria e bug di interazione con l'hardware. Motiva strategie di progettazione dei test mirate.

  • Lezione 3 • Panoramica sui sistemi embedded

    Definisce l'interazione hardware-software, i vincoli di risorse e i requisiti in tempo reale. Costituisce la base per tutte le successive strategie di test nelle realtà dei sistemi embedded.

  • Lezione 4 • Obiettivi e vincoli del testing

    Identifica gli obiettivi specifici del testing embedded: sicurezza, affidabilità e temporizzazione. Collega gli obiettivi di test ai requisiti a livello di sistema.

Capitolo 2Vedi dettagli

Tecniche di progettazione dei test per codice embedded

  • Lezione 1 • Progettazione dei test basata sulle specifiche

    Deriva casi di test dai requisiti utilizzando il partizionamento in classi di equivalenza e l'analisi dei valori limite. Garantisce la copertura funzionale senza richiedere l'accesso al codice sorgente.

  • Lezione 2 • Progettazione dei test per macchine a stati

    Applica tecniche basate sugli stati al firmware con implementazioni esplicite di macchine a stati. Produce casi di test per la copertura delle transizioni e dei percorsi nascosti.

  • Lezione 3 • Gestione dei dati di test

    Organizza set di dati di input, output attesi e valori limite per un'esecuzione ripetibile dei test. Stabilisce pratiche di gestione dei dati che supportano l'automazione nei capitoli successivi.

  • Lezione 4 • Progettazione di test per gli interrupt

    Affronta il comportamento guidato dagli interrupt come una sfida unica nella progettazione dei test embedded. Le tecniche assicurano che le routine di servizio degli interrupt siano esercitate in condizioni realistiche.

  • Lezione 5 • Progettazione dei test basata sulla struttura

    Utilizza la struttura del codice sorgente per guidare la creazione di casi di test per moduli embedded. Supporta direttamente la misurazione della copertura introdotta nei capitoli successivi.

Capitolo 3Vedi dettagli

Analisi statica e revisione del codice

  • Lezione 1 • Integrazione dell'analisi statica nella CI

    Integra strumenti di analisi statica nelle pipeline di integrazione continua per progetti embedded. Garantisce il rilevamento precoce dei difetti senza bloccare il flusso di lavoro degli sviluppatori.

  • Lezione 2 • Principi dell'analisi statica

    Spiega come gli analizzatori statici analizzano il codice per rilevare comportamenti indefiniti, errori di flusso dati e violazioni degli standard di codifica. Posiziona l'analisi statica come complemento al testing dinamico.

  • Lezione 3 • Standard di codifica e conformità

    Tratta gli standard di codifica orientati alla sicurezza per C e C++ embedded e la loro applicazione automatizzata. Collega la conformità agli standard alla riduzione della densità di difetti.

  • Lezione 4 • Tecniche di revisione del codice tra pari

    Struttura i processi di ispezione e walkthrough per massimizzare l'efficienza nel rilevamento dei difetti. Affianca il giudizio umano all'analisi statica automatizzata.

Capitolo 4Vedi dettagli

Astrazione hardware e progettazione dell'harness di test

  • Lezione 1 • Esecuzione di test di unità su macchina host

    Configura ambienti di compilazione per compilare ed eseguire test di firmware embedded su macchine di sviluppo. Accelera i cicli di feedback dei test prima che l'hardware sia disponibile.

  • Lezione 2 • Simulazione del comportamento delle periferiche

    Tecniche per modellare sensori, attuatori e periferiche di comunicazione nel software. Estende la testabilità ai percorsi di codice dipendenti dall'hardware.

  • Lezione 3 • Stub, driver e oggetti mock

    Distingue stub, driver e mock e dimostra la loro costruzione per moduli embedded. Consente il test di unità isolato senza hardware fisico.

  • Lezione 4 • Concetti del livello di astrazione hardware

    Definisce il pattern del livello di astrazione hardware e il suo ruolo nel rendere il firmware testabile su macchine host. Stabilisce la base architetturale per tutti i progetti di harness.

  • Lezione 5 • Manutenzione e scalabilità dell'harness

    Affronta l'evoluzione a lungo termine dell'harness man mano che il firmware cresce e l'hardware cambia. Assicura che l'infrastruttura di test rimanga una risorsa per la produttività e non una passività.

Capitolo 5Vedi dettagli

Misurazione e analisi della copertura del codice

  • Lezione 1 • Tecniche di strumentazione

    Illustra i metodi di strumentazione a livello sorgente e binario per la raccolta di dati di copertura sull'hardware target. Affronta l'overhead di strumentazione nei sistemi con risorse limitate.

  • Lezione 2 • Raccolta della copertura sul target

    Descrive i metodi per estrarre i dati di copertura dai target embedded tramite interfacce di debug e output seriale. Colma il divario tra analisi su host ed esecuzione su target.

  • Lezione 3 • Reportistica di copertura e tracciabilità

    Collega i risultati di copertura ai requisiti e ai casi di test per una documentazione pronta per l'audit. Supporta la reportistica di conformità nei progetti safety-critical.

  • Lezione 4 • Criteri e standard di copertura

    Definisce la copertura delle istruzioni, dei rami, MC/DC e dei percorsi e le mappa ai livelli di integrità della sicurezza. Fornisce il framework di selezione utilizzato in tutto questo capitolo.

  • Lezione 5 • Analisi e chiusura delle lacune di copertura

    Analizza il codice non coperto per distinguere il codice non testabile dai casi di test mancanti. Guida l'aggiunta mirata di test per raggiungere gli obiettivi di copertura.

Capitolo 6Vedi dettagli

Test dinamico su hardware target

  • Lezione 1 • Tecniche di rilevamento dei guasti a runtime

    Applica watchdog timer, unità di protezione della memoria e framework di asserzione per rilevare guasti a runtime. Converte i difetti latenti in fallimenti di test osservabili.

  • Lezione 2 • Debug dei guasti intermittenti

    Applica strategie sistematiche per riprodurre e isolare guasti non deterministici su hardware. Affronta corse critiche, guasti di temporizzazione e sensibilità ambientali.

  • Lezione 3 • Strumenti di traccia e profilazione

    Utilizza le capacità di traccia delle istruzioni e dei dati per osservare l'esecuzione senza strumentazione intrusiva. Consente l'analisi temporale e la localizzazione dei difetti.

  • Lezione 4 • Fondamenti delle interfacce di debug

    Tratta i protocolli di debug JTAG e SWD, la configurazione della sonda e la gestione dei breakpoint. Fornisce le basi di accesso hardware per tutte le attività di test sul target.

  • Lezione 5 • Test di temporizzazione e prestazioni

    Misura il tempo di esecuzione, la latenza degli interrupt e il comportamento di schedulazione dei task rispetto ai requisiti in tempo reale. Convalida il rispetto dei vincoli temporali sotto carico.

Capitolo 7Vedi dettagli

Iniezione di guasti e test di robustezza

  • Lezione 1 • Fondamenti dell'iniezione di guasti

    Definisce i modelli di guasto, i punti di iniezione e i requisiti di osservabilità per i sistemi embedded. Stabilisce le basi concettuali per tutte le tecniche di iniezione in questo capitolo.

  • Lezione 2 • Test dei guasti di comunicazione e protocollo

    Inietta messaggi malformati, violazioni di temporizzazione ed errori di protocollo nelle interfacce di comunicazione. Convalida la robustezza dello stack di protocollo e il comportamento di ripristino dagli errori.

  • Lezione 3 • Analisi dei risultati dell'iniezione di guasti

    Valuta le risposte del sistema ai guasti iniettati rispetto ai comportamenti attesi di stato sicuro. Produce prove di robustezza per la documentazione del caso di sicurezza.

  • Lezione 4 • Iniezione di guasti basata su software

    Implementa l'iniezione di guasti tramite mutazione del codice, corruzione dei valori di ritorno e attivazione forzata di eccezioni. Convalida i percorsi di gestione degli errori senza modifiche hardware.

  • Lezione 5 • Iniezione di guasti a livello hardware

    Utilizza sonde di debug e manipolazione fisica dei segnali per iniettare guasti a livello di interfaccia hardware. Testa la resilienza del firmware a guasti hardware e anomalie di segnale.

Capitolo 8Vedi dettagli

Automazione dei test e integrazione continua

  • Lezione 1 • Framework di test di unità per C embedded

    Configura e utilizza framework di test di unità leggeri adatti a codebase C e C++ embedded. Produce suite di test autonome e portabili, eseguibili su host e target.

  • Lezione 2 • Architettura di automazione per sistemi embedded

    Progetta architetture di automazione a strati che separano test su host, test su simulatore e test sul target. Fornisce il modello strutturale per tutto il lavoro di automazione in questo capitolo.

  • Lezione 3 • Automazione dei test hardware-in-the-loop

    Automatizza l'esecuzione dei test su hardware fisico utilizzando sonde di debug remote e strumenti di orchestrazione dei test. Consente esecuzioni di regressione notturne non presidiate su target reali.

  • Lezione 4 • Integrazione nella pipeline CI

    Integra build, analisi statica, test su host e test sul target in una pipeline CI unificata. Fornisce feedback utile di superamento/fallimento a ogni commit di codice.

  • Lezione 5 • Gestione della suite di regressione

    Mantiene in salute la suite di test gestendo la selezione dei test, l'eliminazione dei test instabili e la crescita della suite. Mantiene sostenibile l'investimento in automazione man mano che la codebase cresce.

Certificazione

Il tuo certificato valido di completamento

Questo corso è per te:

  • Ingegnere Firmware: desidera competenze di verifica strutturate che vadano oltre i test di unità informali.

  • Embedded Test Engineer: necessita di tecniche avanzate per la conformità a progetti safety-critical.

  • Systems Engineer: responsabile della qualità dell'integrazione hardware-software su target con risorse limitate.

  • Professionista QA Software: in fase di transizione verso domini embedded dal test del software applicativo.

  • Ingegnere Elettronico: scrive firmware e cerca approcci disciplinati per la sua validazione.

  • Technical Lead: sta costruendo una cultura di test del team basata su pratiche riproducibili e fondate su evidenze.

Cosa dicono i nostri studenti

Le sue lezioni sono perfette. Ho acquistato il pacchetto annuale e finalmente ho l'opportunità di seguire diversi argomenti di mio interesse senza dover cambiare piattaforma... vi ringrazio per tutto quello che fate, vi ho già raccomandati ad altre persone...
Giulio Carlo
Giulio CarloStudente di Marketing Digitale
Mi piace come le lezioni vanno dritte al punto e come riesco a cambiare capitoli e saltare contenuti di cui non ho bisogno.
Mariana Ferres
Mariana FerresStudentessa di Fotografia
Mi piace il contenuto e il modo di presentazione e trascrizione dei video, che accelera il processo!
Luciana Alvarenga
Luciana AlvarengaStudentessa di Nail Design
La piattaforma è veloce, semplice da usare. La diversità dei contenuti e i video complementari aiutano molto nell'apprendimento.
André Felipe
André FelipeStudente di Prompt Engineering

Principali percorsi formativi

FAQ

Chi è Dedika?

Il certificato è valido in Italia?

I corsi sono gratuiti?

Qual è il carico di lavoro del corso?

Come sono strutturati i corsi?

Come funzionano i corsi?

Qual è la durata dei corsi?

Qual è il costo o il prezzo dei corsi?

Cos’è un corso EAD o online e come funziona?

Corso PDF