Ecco una ripartizione delle categorie ed esempi di strumenti comuni:
1. Framework di test: Questi forniscono la struttura e l'organizzazione per test automatizzati.
* Google Test (GTest): Un framework di test C ++ ampiamente utilizzato noto per la sua semplicità ed estensibilità. Comunemente usato in progetti incorporati che utilizzano C ++.
* Unity: Un framework di test unitari leggero e multipiattaforma adatto per progetti C e C ++. Popolare nei sistemi incorporati a causa della sua piccola impronta.
* cpputest: Un altro framework di test unitari C ++ specificamente progettato per sistemi incorporati, enfatizzando l'uso minimo delle risorse.
* CUNIT: Un framework di test unitari per C.
* TestComplete: Un quadro commerciale che supporta lo scripting in varie lingue e può automatizzare i test della GUI (anche se meno comuni direttamente in sistemi incorporati a metallo nudo)
2. Ambienti di esecuzione di test/corridori: Questi gestiscono la gestione delle suite di prova e la segnalazione dei risultati.
* Molti ides incorporano i corridori di test: Ad esempio, Eclipse CDT può integrarsi con framework come Google Test.
* Script personalizzati: Spesso, i team di sistemi incorporati scrivono i propri script (ad es. Usando Python o Bash) per orchestrare l'esecuzione dei test, in particolare per i test a livello di integrazione e a livello di sistema.
* Sistemi di integrazione continua/distribuzione continua (CI/CD): Jenkins, Gitlab CI, Azure DevOps, ecc., Sono comunemente usati per automatizzare il processo di build e test, anche per i sistemi incorporati. Questi spesso si integrano con i framework e i corridori di prova.
3. Strumenti specifici per hardware: Questi strumenti spesso colmano il divario tra il software di automazione dei test e l'hardware incorporato.
* Debugger JTAG: Strumenti come quelli di Segger, Lauterbach o ARM forniscono interfacce per debug e testare l'hardware a basso livello. Possono anche attivare test e catturare i risultati.
* Emulatori in circuito (ICE): Gli ICE consentono scenari di test più sofisticati rispetto a JTAG, spesso compresi le capacità di tracciamento e emulazione in tempo reale. Queste sono in genere soluzioni di fascia alta.
* Simulatori hardware-in-the-loop (HIL): Questi sono sistemi avanzati che simulano l'ambiente esterno del sistema incorporato, consentendo un test approfondito dell'interazione del sistema con il mondo reale senza la necessità di componenti fisici o situazioni potenzialmente pericolose.
* analizzatori di bus CAN/LIN/Ethernet: Questi strumenti acquisiscono e analizzano la comunicazione su autobus automobilistici e industriali, cruciali per testare sistemi incorporati che comunicano su questi protocolli.
* Analizzatori di oscilloscopio/logica: Per esame del segnale hardware diretto.
4. Strumenti di analisi della copertura del test: Questi misurano quanto accuratamente la suite di prova copra il codice.
* GCOV (GCC): Uno strumento integrato all'interno del compilatore GCC che fornisce informazioni sulla copertura del codice.
* Strumenti commerciali: Strumenti più sofisticati forniscono rapporti di copertura dettagliati, tra cui copertura della filiale, copertura delle condizioni e MC/DC (condizione modificata/copertura decisionale), che è spesso obbligatoria dagli standard di sicurezza (come ISO 26262).
5. Strumenti di gestione dei test: Questi aiutano a organizzare e gestire il processo di test.
* Jira, Azure Devops, TestRail: Questi sono strumenti comuni per la gestione dei casi di test, dei bug di monitoraggio e della segnalazione sui risultati dei test.
quali strumenti usano le aziende: La scelta dipende fortemente da fattori come:
* Budget: Strumenti open source come Google Test e Unity sono interessanti per motivi di costo. Gli strumenti commerciali offrono funzionalità più avanzate ma hanno un prezzo.
* Complessità del progetto: I progetti semplici possono richiedere solo un framework di test unitari, mentre i sistemi complessi richiederanno una suite più ampia di strumenti.
* Standard di sicurezza: Le applicazioni critiche sulla sicurezza (automobilistiche, aerospaziali, mediche) spesso richiedono l'uso di strumenti conformi a standard specifici e offrono analisi avanzate di copertura.
* Piattaforma hardware: Le interfacce di debug e hardware disponibili influenzeranno la scelta degli strumenti.
* Competenza del team: Le competenze del team di ingegneria determineranno la fattibilità dell'adozione e dell'utilizzo di strumenti particolari.
In sintesi, le aziende di sistema coinvolte nello sviluppo di sistemi incorporati utilizzano una vasta gamma di strumenti, spesso combinando opzioni open source e commerciali per creare un'infrastruttura di test su misura che soddisfi le loro esigenze specifiche e i requisiti del progetto. La tendenza è verso una maggiore automazione e integrazione con pipeline CI/CD.
software © www.354353.com