Testing software
per la Produttività e la Qualità

Negli ultimi anni, la dimensione delle applicazioni, sia nel mondo enterprise sia in quello embedded, è cresciuta notevolmente. Con l’aumento del numero di linee di codice sono aumentate le criticità: codici complessi limitano la comprensione del listato, aumentando i costi di manutenzione; di contro, le applicazioni con una complessità ragionevole aiutano a risparmiare tempo nelle operazioni di testing e denaro.

Le aziende oggi sono consapevoli della correlazione della complessità del codice con il tasso di difettosità e la robustezza dell’applicazione. Un codice complesso è difficile da testare con metodologie classiche, pertanto vi è un alto rischio di avere errori nell’applicazione finale; possono essere presenti ridondanze o linee di codice morto che comportano sprechi in termini di potenza computazionale e maggiori difficoltà nella manutenzione; i casi di test potrebbero non coprire tutto il codice, aumentando il rischio di rilascio di software con errori.

Per questi motivi, diversi standard (come ISO 26262) richiedono l’esecuzione “a bassa complessità” del codice.

Le nostre soluzioni per il testing del software

DOFWARE propone due strumenti di Verifysoft Technology per la copertura del codice e per l’analisi della complessità del software.

Testwell CTC++

È il prodotto leader fra gli analizzatori di copertura del codice, in particolare per lo sviluppo di software embedded e di software safety-critical, tipici dei settori aeronautico, automobilistico e sanitario.

Testwell CTC++ può essere utilizzato con tutti i target embedded e tutti i compilatori per i linguaggi C, C++, Java e C#.

Testwell CMT++/CMTJava

Testwell CMT++ e Testwell CMTJava sono strumenti per l’analisi della complessità del codice C, C++, C# e Java. Entrambi i tool analizzano il codice sorgente e restituiscono con immediatezza il livello di qualità del prodotto.

Scopri i problemi e i difetti dei tuoi software prima che lo facciano i tuoi clienti

Testwell CTC++

Code Coverage conforme ai più elevati standard di sicurezza.

On-Target Code Coverage

Testwell CTC++ fornisce una panoramica della copertura del codice a fronte di una attività di esecuzione e testing (code coverage) effettuata supportando tutti i livelli di copertura. E’ l’ideale per progetti in ambito safety-critical. Il tool riporta i risultati dei test effettuati identificando quali aree di un’applicazione sono state coperte. In generale, possono essere analizzate solo porzioni limitate del codice o il codice nella sua interezza, a seconda delle esigenze dell’utente. Con Testwell CTC++ si evita che le applicazioni vengano rilasciate con codice non testato.

Centinaia di aziende in tutto il mondo utilizzano Testwell CTC++ con grande successo. Testwell CTC++ è la prima scelta per le aziende che devono raggiungere e dimostrare un’elevata copertura del codice in diversi settori industriali (aerospaziale, automobilistico, trasporti, sanità, ecc.) garantendo la conformità agli standard di sicurezza.

Testwell CTC++ effettua efficientemente test su codice C, C++, Java e C#, evidenziando le criticità e limitando i rischi prima del rilascio del software.

Testwell CTC++ si integra facilmente con l’infrastruttura di build & test esistente attraverso un’interfaccia a riga di comando completa.

Man mano che il test procede, Testwell CTC++ monitora semplicemente l’esecuzione dell’applicazione e registra la copertura del codice raggiunta. Queste informazioni vengono mostrate run-time o al termine dell’esecuzione del test.

Copertura del codice per tutti i livelli, tutti i compilatori, tutti i target embedded

Il tool permette analisi per tutti i livelli di copertura del codice come oggi viene richiesto nei progetti “critici” e contribuisce a garantirne la massima qualità. Testwell CTC++ può essere utilizzato con tutti i compilatori e cross-compilatori, il tutto con una sola licenza standard.

Testwell CTC++ per tutti i livelli di copertura:
  • Statement Coverage
  • Function Coverage
  • Decision Coverage / Branch Coverage
  • Condition Coverage
  • Modified Condition/Decision Coverage (MC/DC)
  • Multicondition Coverage (MCC)

Perché CTC++?

Testwell CTC++ permette di:

• Disporre di una valutazione quantitativa del livello di copertura dei test, informando su quante e quali linee di codice sono state testate per dimostrare la copertura del codice ai vostri clienti o richiedere la prova della copertura del codice ai vostri fornitori;

Soddisfare i requisiti delle normative;

• Individuare aree di codice “scoperte”, che necessitano ulteriori test, e “colli di bottiglia”, esaminando il comportamento runtime;

• Individuare test ridondanti e codice morto, da eliminare per non appesantire l’onere computazionale e per limitare la complessità del listato, contenendo i costi di manutenzione dovuti ad una difficile comprensione del codice;

• Scrivere test case migliori.

Facile da usare

• Integrazione in build generici

• Performance eccellenti

• Integrazione nelle IDE

• Architettura modulare per la massima integrabilità

Più linguaggi supportati

• Linguaggi nativi: C e C++

• Add-On per Java e C#

Reportistica chiara e intuitiva

• Report HTML completo

• Disponibilità di molteplici formati di scambio, come XML

Semplificate tutti i processi di certificazione dei vostri progetti usando i Kit di Qualifica per Testwell CTC++

Il kit di qualifica per gli standard di sicurezza permette di verificare e certificare il corretto processo di applicazione di Testwell CTC++ in azienda. Viene applicato con successo da aziende leader nei settori industriali (IEC 61508), automotive (ISO 26262), transportation (EN 50128), aerospace (DO-178C), healthcare (IEC/EN 62304).

Il Kit fornisce la documentazione, i casi di test e le procedure utili alla qualifica dei progetti / prodotti sensibili agli standard di sicurezza, facilitando la certificazione dei sistemi embedded, e può essere customizzato secondo esigenze specifiche.

Il Security Standards Qualification Kit di Testwell CTC++ è conforme a:

  • DO-178C all levels (DAL A, DAL B, DAL C, …)
  • ISO 26262 all levels (ASIL A, ASIL B, ASIL C, ASIL D)
  • IEC 61508 all levels (SIL 1, SIL 2, SIL 3, SIL 4)
  • EN 50657 resp. EN 50128 all levels (Basic integrity/SIL 0, SIL 1, SIL 2, SIL 3, SIL 4)
  • IEC 60880
  • IEC/EN 62304

Il Qualification Kit è composto da:

• Manuale utente;

• Supporto alla qualifica che guida l’utente attraverso tutti gli step necessari e genera i seguenti documenti:

  – Strumento di classificazione report;

  – Strumento di Qualificazione Plan / Report;

  – Manuale di sicurezza;

  – Test Plan;

• Unità di automazione test;

• Suite di casi test.

Testwell CMT++/CMTJava

Analisi della complessità del software per i linguaggi C, C++, C# e Java.

Perché l’analisi della complessità del codice?

La complessità del codice è correlata al tasso di difetti e alla robustezza dell’applicazione. Un codice complesso è più difficile da testare e manutenere, e può contenere più errori di un codice a bassa complessità.

Testwell CMT++ e Testwell CMTJava sono strumenti per analizzare la complessità del codice nei linguaggi C, C++, C# e Java. Entrambi gli strumenti analizzano il codice sorgente e restituiscono informazioni qualitative, rendendo più semplici le attività di testing e di manutenzione. CMT++/CMTJava possono aiutare il team di progetto a localizzare i moduli critici nei quali c’è la probabilità più alta di incorrere in problematiche. CMT++ e CMTJava forniscono una stima approssimativa di quanto la complessità del codice analizzato incida sul numero di errori che si possono verificare e di quanto tempo si necessiti per la comprensione codice.

Testwell CMT++ e Testwell CMTJava analizzano le applicazioni adottando le seguenti metriche:
  • Lines-of-code (LOC)
  • LOCbl numero di linee vuote
  • LOCcom numero di linee con commenti
  • LOCphy numero totale delle linee del progetto
  • LOCpro numero effettivo di linee di solo codice
  • Metriche di Halstead
  • B – stima del numero di errori del programma
  • D – livello di difficoltà / propensione all’errore del programma
  • E – sforzo di implementazione
  • L – program level (livello di astrazione del programma)
  • N – lunghezza del programma
  • N1 – Numero di operatori
  • N2 – Numero di operandi
  • n – dimensione del vocabolario (operatori unici + operandi unici)
  • n1 – numero di operatori unici
  • n2 – numero di operandi unici
  • T – Tempo di esecuzione / tempo di comprensione del codice
  • V – Volume: misura rappresentativa della difficoltà dell’implementazione di un algoritmo
  • Numero ciclomatico di McCabe v(G): complessità del flusso di controllo di un programma.
  • Indice di manutenibilità: è funzione del numero di linee di codice e delle misure McCabe e Halstead. Aiuta a ridurre o invertire la tendenza all’entropia o al degradamento dell’integrità del codice. Il risultato è l’indicazione di quando diventa più economico e meno rischioso riscrivere il codice invece di modificarlo.

Le soglie di allarme di Testwell CMT++ e CMTJava possono essere personalizzate

Le soglie di allarme di default sono solo dei suggerimenti ottenuti su base statistica a partire da misurazioni effettuate su codici che hanno ottenuto un “buon successo”. Le metriche utilizzate da CMT++ e CMTJava sono quelle definite dagli standard industriali. Poiché non è possibile dare limiti assoluti, Testwell CMT++ e CMTJava permettono di personalizzare le definizioni dei limiti degli allarmi correlandole alle specifiche esigenze.

Testwell CMT++/CMTJava Highlights

  • misura dei file originali non pre-processati
  • estremamente veloce: analizza intere applicazioni in pochi minuti
  • capacità di gestire files di medie e grandi dimensioni
  • report in formato HTML o txt
  • integrazione della GUI in Visual Studio
  • disponibile su molte piattaforme (Windows, Linux, HP, Solaris)
  • soglie di allarme personalizzabili

Verybench: add-on grafico per differenti visualizzazioni

Verybench è la GUI di Testwell CMT++. Attraverso essa è possibile eseguire misurazioni della complessità del codice tramite lo stesso Testwell CMT++, e presentare i risultati in forma aggregata in un ambiente interattivo e intuitivo. Verybench offre molte viste e sotto-viste integrate che mostrano le relazioni chiave del codice sorgente analizzato.

Consente a manager, sviluppatori e tester di collaborare e di contribuire più facilmente alla qualità del codice. Accelera il modo in cui le metriche vengono comprese da un intero team di sviluppo e non solo da singoli individui coinvolti nel miglioramento della qualità.

Verybench viene fornito con due tipi di viste principali: dashboard e metriche.

Con Verybench puoi:

  • Pianificare velocemente ed eseguire il refactoring del codice, semplicemente osservando i valori delle metriche grafiche, i limiti di allarme e/o le distribuzioni dei valori.
  • Valutare velocemente e con maggiore accuratezza lo stato di manutenibilità del codice sorgente tramite il sistema di snapshot integrato.
  • Verificare lo stato di qualità del codice mediante il sistema integrato di valutazione della qualità.
  • Ottenere report dettagliati sulla qualità del codice.

Migliora, consolida e ottimizza i tuoi software con i tool di DOFWARE e Verifysoft Technology