Reactis® for C, tool per la generazione automatica di test, può essere utilizzato per trovare bug nel codice C.
Consiste in tre componenti principali: Tester, Simulator e Validator.
Tester | Simulator | Validator |
---|---|---|
Genera automaticamente test case che stressano un applicativo, spesso rilevando errori di runtime. I test generati mirano a massimizzare la copertura rispetto al numero di metriche utilizzate, tra cui Statement, Decision, Condition e Modified Condition/ Decision Coverage (MC/DC).. | E’ un ambiente di simulazione che supporta l’esecuzione interattiva e il debugging dei programmi in C e mostra graficamente I risultati del test coverage. | Consente di formalizzare i requisiti dell’applicazione (assertion o obiettivi del coverage) ed eseguire un controllo automatico delle violazioni degli stessi. Validator effettua questi controlli simulando accuratamente l’applicativo con l’obiettivo di violare le assertion e gli obiettivi di coverage. Quando si verifica un errore di runtime o un’assertion failure, Validator genera un test che riproduce concretamente la sequenza di eventi che ha portato all’errore, facilitando la diagnosi e la riparazione dei bug del software. |
Il tool Reactis for C migliora la qualità del codice C e riduce i costi di sviluppo in diversi modi. Per esempio:
- Rilevando e correggendo gli errori di runtime. Reactis for C arresta immediatamente l’esecuzione quando si verifica un errore di runtime, facilitando la correzione dello stesso.
Ogni volta che Reactis for C simula il codice C nel Simulator o generando test con il Tester, esegue allo stesso tempo molteplici controlli per gli errori di runtime. Il risultato è un tool potente per la rilevazione, la diagnosi e la correzione di una varietà di errori di runtime nel codice C. Gli errori rilevati da Reactis for C comprendono:- Overflow Calcoli che producono un numero troppo grande da rappresentare
- Divide by Zero Errore generato dalla divisione di un valore numerico per zero
- Invalid Shift Lo spostamento di un valore intero di una quantità che produce un risultato indefinito, secondo lo standard C
- Uninitialized Data Access Quando si accede alla memoria prima che questa si sia avviata, producendo un risultato di accesso indefinito
- Regression Testing. La generazione e l’esecuzione automatica di test offerta da Reactis for C consente agli ingegneri di verificare facilmente se un programma è conforme al comportamento di una versione precedente. Un aspetto cruciale dei test generati da Reactis Tester è che includono sia tutti gli output che gli input. Perciò questi test contengono tutte le informazioni richieste per assicurare che una versione rivista del programma sia conforme alla precedente..
- Sinergia con Reactis for Simulink. La combinazione tra Reactis for C e Reactis for Simulink in un processo di sviluppo model-based produce vantaggi sinergici.
Gli ingegneri che lavorano con il model-based design utilizzando Simulink®/ Stateflow® come tool di progettazione e C come linguaggio per l’implementazione possono trarre vantaggi significativi impiegando Reactis for C in combinazione con il suo prodotto fratello, Reactis for Simulink.
Si hanno questi benefici quando le suite di test sono condivise in entrambe le versioni di Reactis.