Come dirigente del settore dispositivi embedded, hai guadagnato la tua posizione soddisfacendo sempre gli impegni di consegna del prodotto. Ti sei sempre destreggiato tra risorse, specifiche, qualità e costi per portare sul mercato il miglior prodotto possibile nei tempi e nel budget previsti. Tuttavia ti rendi conto che nel tuo mondo non esiste la perfezione. Esistono solo compromessi. Specialmente in fatto di qualità. Sai che nel software saranno sempre presenti dei bug. Nonostante ciò, prima della consegna devi sempre assicurarti di eliminare tutti i difetti critici dai tuoi prodotti. In passato, questa parte del tuo lavoro era gestibile; ora le cose sono cambiate,e ogni giorno diventa sempre peggio.
Cambiamenti scomodi
Come molti dirigenti nel settore dei sistemi embedded, sei sempre più in difficoltà a raggiungere gli obiettivi nel tempo assegnato. Anche se non hai ancora avuto grossi problemi, questa eventualità ti preoccupa. Il tuo sesto senso ha visto giusto la tua ansia non è ingiustificata.
Un insieme di trend presenti nel settore rende sempre più difficile valutare correttamente se i prodotti sono pronti per la consegna. Il problema principale è la difficoltà a stabilire la qualità del software, essenziale in tanti dei tuoi prodotti . Ecco una panoramica sulle principali tendenze che non consentono di scoprire difetti critici nel codice del tuo prodotto fino a uno stadio molto avanzato del ciclo di sviluppo o addirittura dopo la consegna.
• Aumento esponenziale dei contenuti software: un crescente numero di dispositivi che si affidano a più software rispetto al passato. Le stime indicano che il contenuto software dei dispositivi raddoppia ogni due anni. Molti prodotti includono piattaforme che consentono aggiornamenti software durante tutta la vita del prodotto.
• Crescente complessità delle architetture: per molti prodotti, i processori a 16 bit non sono più sufficienti. Il nuovo standard è rappresentato dalle architetture a 32 e 64 bit che sfruttano i multiprocessori e, fra breve, le tecnologie multicore.
• Minor tempo disponibile per il lancio sul mercato: il settore dei dispositivi embedded è diventato ipercompetitivo. Nonostante l'enorme incremento dei contenuti e della complessità, i team di sviluppo e test devono spesso fornire prodotti di alta qualità in minor tempo.
L'aumento esponenziale dei contenuti software e della complessità dei dispositivi stanno superando le capacità dei sistemi di test esistenti. La forte concorrenza comprime i tempi di sviluppo e peggiora il problema. Di conseguenza, sempre più team di sviluppo trovano brutte sorprese al termine del ciclo di sviluppo che causano ritardi nella consegna o difetti nel prodotto. Il problema viene evidenziato dai recenti avvenimenti legati agli effetti disastrosi di problemi software nei prodotti. Attualmente uno dei principali costruttori di automobili è sotto tiro. Ma nessun settore è immune; il problema risiede nello sviluppo e nel test del prodotto, in tutto il settore dei dispositivi embedded.
È necessario cambiare le regole del gioco
Quindi, cosa succede? Il problema di fondo è che si è raggiunto il punto di rottura causato dall'aumento esponenziale della complessità dei dispositivi. Molte organizzazioni hanno cercato di gestire la sfida della complessità adottando metodi di sviluppo iterativi o attivi, con l'intento di raccogliere, durante il ciclo di sviluppo, un miglior feedback sul tracciamento dei propri obiettivi funzionali e di qualità, in minor tempo e con maggiore coerenza. Il test dei dispositivi in questo ambiente di rapido cambiamento diventa una vera e propria barriera verso il successo. Di solito è impossibile testare ogni permutazione e ogni percorso di esecuzione nel tempo assegnato. Le informazioni reali di cui i team hanno bisogno sono spesso inaccessibili, intrappolate nel dispositivo testato. E i manager non riescono a raccogliere i vantaggi sperati dal processo iterativo. Il risultato? I metodi e gli strumenti tradizionali di test non sono più adeguati alla complessità dei dispositivi odierni. Sai che l'unità di sviluppo è importante, ma il vero lavoro di convalida viene eseguito quando si integrano il dispositivo hardware e il software e si esegue un test del sistema pienamente funzionale. I difetti di progettazione, di codice o di sistema verranno alla luce in questo momento. Sfortunatamente, la “black box” rappresentata dalla fase di test di integrazione consente una scarsa visibilità all'interno del dispositivo. Pertanto, oggi, in questo momento critico, per ottenere una valutazione del livello di qualità del proprio prodotto è necessario indovinare:
- - Quando è davvero completa la mia suite di test? So dove si nascondono i difetti?
- - Quanta parte del mio software è stato davvero testato?
- - Cosa c'è di nuovo nella build di questa settimana?
- - Quale parte del codice è cambiata?
- - Ho convalidato le condizioni e gli errori difficili da testare?
- - Ho trovato i colli di bottiglia nelle prestazioni?
- - Quanto ci vorrà per isolare questo nuovo difetto?
- - Le tendenze delle metriche principali relative alla qualità è positiva?
- - Come posso automatizzare maggiormente il mio processo?
I manager sanno che i team non possono semplicemente lavorare più duro, ma devono trovare il modo per lavorare in maniera più intelligente. È necessario trovare una modalità efficace per misurare in modo continuo la qualità del software utilizzando le informazioni fornite dal dispositivo stesso. Serve un modo per utilizzare queste informazioni allo scopo di ottimizzare e focalizzare i test e, quindi, testare più a fondo nel tempo a disposizione, per prendere decisioni aziendali migliori e più consapevoli durante il lancio sul mercato nuovi prodotti critici. Ora parliamo della brutta sensazione che provi pensando al lavoro da fare e agli strumenti e ai processi che hai a disposizione oggi. Sai che esiste un gap che lascia scoperta la tua azienda. È proprio tempo di cambiare.
Lavora in modo più intelligente
con le nuove appliance per test
Ti serve un nuovo approccio per ricavare informazioni aziendali dai dispositivi embedded in prova. Devi passare dalla modalità di test “black box” alla modalità di test “white box” che ti consente di raccogliere informazioni precise e utilizzabili sullo stato della qualità dei tuoi prodotti ed eseguire test più affidabili e in minor tempo.
Oggi è disponibile una nuova classe di sistemi di ottimizzazione per le fasi di convalida che ti consente di concentrarti sulle reali esigenze di testing. Questi sistemi sfruttano una strumentazione unica che consente ai tuoi sviluppatori e tester di sondare direttamente il dispositivo durante il funzionamento runtime (anche i sistemi multicore) per raccogliere le informazioni critiche relative a qualità e funzionamento. Puoi identificare errori, isolare difetti e rispondere al cambiamento. Con queste informazioni a disposizione, puoi rapidamente ottimizzare i tuoi processi e le tue risorse per garantire puntualità nella consegna e qualità ai tuoi clienti.
Progettati per rispondere alle esigenze dei moderni processi di sviluppo iterativi, le nuove appliance di test del software consentono una collaborazione più produttiva tra team distribuiti di sviluppo e test. L'utilizzo di ambienti aperti per l'esecuzione dei test consente al team di eseguire da qualsiasi sorgente solamente i test manuali o automatici necessari e di gestire facilmente le apparecchiature di laboratorio. I sistemi dispongono di database relativi alle informazioni sull'intero ciclo di vita, report e bacheche completi e personalizzati, che forniscono le informazioni consolidate necessarie per ottimizzare i processi e le risorse e ottenere migliori risultati aziendali. È possibile identificare i punti deboli degli attuali ambienti di test e verificare se è necessario effettuare un'analisi più approfondita sulla qualità del software. Fai il primo passo verso la capacità di creare le informazioni qualitative necessarie con precisione per prendere le corrette decisioni aziendali sulla prontezza del prodotto. Osserva come un piccolo investimento in soluzioni di gestione dei test di prossima generazione risolverà questo problema prima che lo stesso incida sulla tua organizzazione.
Le soluzioni di gestione dei test di prossima generazione possano risolvere le variabili sconosciute relative alla qualità del software. Non essere il prossimo dirigente che cade all'ultimo metro a causa di problemi di qualità del software.