2010-05-23 18 views
6

Ho scritto un piccolo sistema operativo per il progetto incorporato in esecuzione su un target di dimensioni medio-piccole.Come testare l'affidabilità del mio (piccolo) sistema operativo incorporato?

Ho aggiunto alcuni test di unità automatizzate con una copertura del codice di test elevata (> 95%), ma l'ambito è solo la parte statica.
Ho ottenuto alcune metriche del codice come complessità e leggibilità.
Sto testando il mio codice con un controllore di regole con il supporto MiSRA e, naturalmente, ho risolto tutti gli avvertimenti.
Sto testando il codice con un analizzatore statico e riparato di nuovo tutti gli avvisi.

Cosa posso fare ora per il test - e migliorare - l'affidabilità del mio sistema operativo? E la parte dinamica?

+0

Lasciare che le persone lo usino effettivamente non è un'opzione a questo punto? –

+0

@ Tim Post: Sì, 2 progetti sono in esecuzione ... ma devo fornire alcune informazioni sull'affidabilità! Ho testato solo la parte statica. – TridenT

+0

Si tratta di un sistema operativo basato sul testo? –

risposta

1

Provare a scrivere alcuni test di unità per la parte dinamica. Quindi eseguire i test sull'hardware di destinazione. Eseguire i test sull'hardware con più core Eseguire i test sull'hardware con un solo core

Variare la velocità di clock del sistema di destinazione ed eseguire i test dinamici.

dovrebbe risolvere la maggior parte dei problemi di temporizzazione.

+0

Forse è l'unica soluzione! Ma scrivi test di unità/integrazione con valutazione temporale, sul target, con core multipli ... Scriverò test di unità per 10 anni?!? – TridenT

+0

Esegui i test dinamici sul bersaglio. (1) esperimento eseguire i test dinamici su hardware di sviluppo con esperimenti più o meno core (2). Corri sul bersaglio con un esperimento di velocità clock (1) differente. Un totale di 5 esperimenti. –

1

Controlla il software-testing entry on wikipedia. È una descrizione piuttosto esauriente dei diversi rami del test. Potresti trovare una nuova idea o due lì.

+0

È un inizio interessante, ma non so come gestire il comportamento dinamico del mio sistema operativo. Seguirò il link per le indagini! – TridenT

2

cose mancanti nella vostra lista:

  • Se non si sta già facendo poi anche eseguire i test di unità sul hardware di destinazione, per verificare la presenza di problemi di compilazione e hardware.

  • Le revisioni del codice, controllare in particolare per le condizioni di gara

Si potrebbe anche rivedere il codice assembly generato, se non è troppo grande.

+0

Le recensioni dei codici sono buone, ma è "una cosa sola".La revisione per codice assembly è stata parzialmente eseguita, ma quali risultati dovrei mostrare? – TridenT

1
+0

La tecnica di simulazione è piuttosto difficile in C (il sistema operativo è scritto in C + ASM) e pesante rispetto a C++. Ma potrebbe essere l'unica soluzione! – TridenT

+0

Credo che utilizzino molto anche la generazione del codice. – Gutzofter

1

Sembra che tu abbia fatto molto per testare il tuo sistema. Penso che il prossimo passo porterebbe altri progetti o persone a usarlo. Altri utenti mostrerebbero rapidamente che i problemi di robustezza sono.

+0

sì, e già chiedono una migliore documentazione per l'utente :) – TridenT

Problemi correlati