In questo tutorial imparerai
- Cosa sono i sistemi embedded?
- Che cos'è il test integrato?
- Tipi di test del software incorporato
- Differenza: test integrati e test del software
- Sfide: test del software integrato
Cosa sono i sistemi embedded?
I sistemi integrati sono i dispositivi controllati elettronicamente in cui software e hardware sono strettamente collegati. I sistemi incorporati possono contenere una varietà di dispositivi informatici. Si tratta di PC incorporati in altri dispositivi per gestire funzioni specifiche dell'applicazione. L'utente finale di solito non è nemmeno a conoscenza della loro esistenza.
Test integrati
Embedded Testing è un processo di test per il controllo degli attributi funzionali e non funzionali sia del software che dell'hardware in un sistema embedded e per garantire che il prodotto finale sia privo di difetti. Lo scopo principale del test integrato è verificare e convalidare se il prodotto finale di hardware e software embedded soddisfa o meno i requisiti del cliente.
Il test del software incorporato controlla e garantisce che il software interessato sia di buona qualità e conforme a tutti i requisiti che dovrebbe soddisfare. Il test del software integrato è un approccio eccellente per garantire la sicurezza in applicazioni critiche come apparecchiature mediche, ferrovie, aviazione, industria automobilistica, ecc. Test rigorosi e accurati sono fondamentali per garantire la certificazione del software.
Come eseguire il test del software incorporato
In generale, esegui il test per quattro motivi:
- Per trovare bug nel software
- Aiuta a ridurre il rischio sia per gli utenti che per l'azienda
- Riduci i costi di sviluppo e manutenzione
- Per migliorare le prestazioni
In Embedded Testing vengono eseguite le seguenti attività:
1. Il software è dotato di alcuni ingressi.
2. Viene eseguita una parte del software.
3. Lo stato del software viene osservato e gli output vengono controllati per le proprietà previste, ad esempio se l'output corrisponde al risultato previsto, la conformità ai requisiti e l'assenza di arresti anomali del sistema.
Tipi di test del software incorporato
Fondamentalmente, ci sono cinque livelli di test che possono essere applicati al software incorporato
Test di unità software
Il modulo unit è una funzione o una classe. L'Unit Testing viene eseguito dal team di sviluppo, principalmente dallo sviluppatore e di solito viene eseguito in un modello di revisione tra pari. Sulla base delle specifiche dei moduli vengono sviluppati casi di test.
Test d'integrazione
I test di integrazione possono essere classificati in due segmenti:
- Test di integrazione software
- Test di integrazione software / hardware.
Alla fine, viene testata l'interazione del dominio hardware e dei componenti software. Ciò può comprendere l'esame dell'interazione tra i dispositivi periferici incorporati e il software.
Lo sviluppo del software incorporato ha una caratteristica unica che si concentra sull'ambiente reale, in cui il software viene eseguito, viene generalmente creato in parallelo con il software. Ciò causa inconvenienti per i test poiché i test completi non possono essere eseguiti in una condizione simulata.
Test di unità di sistema
Ora il modulo da testare è un framework completo che consiste in codice software completo in aggiunta a tutto il sistema operativo in tempo reale (RTOS) e parti relative alla piattaforma come interrupt, meccanismi di tasking, comunicazioni e così via. Il protocollo Point of Control non è più una chiamata a una funzione o un'invocazione di un metodo, ma piuttosto un messaggio inviato / ricevuto utilizzando le code di messaggi RTOS.
Le risorse di sistema vengono osservate per valutare la capacità del sistema di supportare l'esecuzione del sistema integrato. Per questo aspetto, il test gray-box è il metodo di test preferito. A seconda dell'organizzazione, il test delle unità di sistema è compito dello sviluppatore o di un team di integrazione di sistema dedicato.
Test di integrazione del sistema
Il modulo da testare inizia da un insieme di componenti all'interno di un singolo nodo. I punti di controllo e osservazione (PCO) sono un mix di protocolli di comunicazione relativi alla rete e RTOS, come messaggi di rete ed eventi RTOS. Oltre a un componente, anche un Virtual Tester può svolgere il ruolo di nodo.
Test di convalida del sistema
Il modulo da testare è un sottosistema con un'implementazione completa o il sistema embedded completo. L'obiettivo di questo test finale è soddisfare i requisiti funzionali dell'entità esterna. Si noti che un'entità esterna può essere una persona o un dispositivo in una rete di telecomunicazioni o entrambi.
Differenza: test integrati e test del software
Test del software | Test integrati |
---|---|
Il test del software è relativo solo al software. | Il test integrato è correlato sia al software che all'hardware. |
In media il 90% dei test effettuati nel mondo è un test black box puramente manuale. | I test incorporati vengono eseguiti su sistemi o chip incorporati, può essere una scatola nera o una scatola bianca. |
Le principali aree di test sono i controlli della GUI, la funzionalità, la convalida e un certo livello di test del database. | Le principali aree di test sono il comportamento dell'hardware per il n. degli input che gli sono stati dati. |
I test del software vengono eseguiti principalmente su applicazioni client-server, web e mobili. | Test integrati generalmente eseguiti sull'Hardware. |
ad esempio, Google Mail, Yahoo Mail, applicazioni Android. | ad esempio, macchine del settore sanitario, microcontrollori utilizzati nei computer. |
Sfide: test del software integrato
Alcune delle sfide che si possono affrontare durante i test del software integrato:
Dipendenza dall'hardware
La dipendenza dall'hardware è tra le principali difficoltà incontrate durante i test del software integrato a causa dell'accesso limitato all'hardware. Tuttavia, emulatori e simulatori potrebbero non rappresentare con precisione il comportamento del dispositivo effettivo e potrebbero dare un'idea sbagliata delle prestazioni del sistema e dell'usabilità dell'applicazione.
Software open source
La maggior parte dei componenti software incorporati sono di natura open source, non sono creati internamente e non sono disponibili test completi. Esiste un'ampia gamma di combinazioni di test e scenari risultanti.
Difetti software e hardware
Un altro aspetto è quando il software viene sviluppato per un hardware appena creato, durante questo processo è possibile identificare un alto rapporto di difetti hardware. Il difetto riscontrato non è limitato al software. Potrebbe anche essere correlato all'hardware.
Difetti riproducibili
I difetti sono più difficili da riprodurre / ricreare nel caso del sistema integrato. Ciò impone alla procedura di test incorporata di valutare ogni occorrenza di difetto sostanzialmente più alta rispetto a un caso standard, oltre a raccogliere tutti i dati che potrebbero essere sensibilmente necessari per alterare il sistema e trovare le fondamenta del difetto.
Aggiornamenti software continui
I sistemi incorporati richiedono aggiornamenti software regolari come l'aggiornamento del kernel, correzioni di sicurezza, driver di dispositivo diversi, ecc. I vincoli identificati con l'influenza degli aggiornamenti software rendono difficile l'identificazione dei bug. Inoltre, aumenta l'importanza della procedura di compilazione e distribuzione.
Sommario
Ci sono alcune difficoltà nel testare il test del software incorporato che lo rende più difficile del normale test del software. Il problema fondamentale è la stretta dipendenza dall'ambiente hardware che viene preparato contemporaneamente al software e che è regolarmente richiesto per eseguire test affidabili del software. A volte è persino difficile testare il software senza strumenti personalizzati, il che rende la concentrazione sui test nelle ultime fasi estremamente allettante senza sforzo.
Una delle cose più importanti è che dovresti pensare è il fatto che dovresti spesso optare per il test automatico del software. Il test automatizzato incorporato è un processo più veloce che richiederebbe alcune ore per essere completato e in questo modo il problema del software viene risolto.