Innovation Lab

Siamo un’azienda fortemente orientata all’R&D, circa i 2/3 del personale è impegnato nello sviluppare software per rispondere alle esigenze dettate dai cambiamenti della società ed essere sempre al passo con i tempi e le nuove necessità aziendali.

Progetti:

 

VDK (VoIP Development Kit)

image15

Le tecnologie VoIP (Voice over IP) e MoIP (Multimedia over IP) sono di fatto pervasive nel mondo delle telecomunicazioni. Tuttavia implementare del software che sfrutti appieno le potenzialità di tali tecnologie può risultare molto complesso. Il VDK nasce proprio dall’esigenza di avere un SDK (Software Development Kit) che semplifichi radicalmente gli sforzi degli sviluppatori alle prese con tali tecnologie.

Il VDK espone una interfaccia di programmazione semplice ma estremamente potente che permette ai programmatori di concentrarsi sulle funzionalità innovative e sugli aspetti di usabilità del loro software, lasciando che il VDK si prenda cura di tutti gli aspetti di basso livello legati alle tecnologie VoIP/MoIP.

Sviluppato in C++ con una tecnologia multi-piattaforma, il VDK è in grado di essere eseguito sui principali sistemi operativi desktop, mentre sono ormai in fase di completamento i porting su iOS ed Android.

 


ThEIA (Testing Environment for Internet Applications)

image16Theia è una piattaforma per la misura percettiva della Quality of Experience dei servizi di telecomunicazione e delle reti IP, che punta a misurare oggettivamente qualsiasi metrica (KPI - Key Performance Indicator) relativa alla User Experience (UX), di qualsiasi applicazione o servizio, usando qualsiasi device attraverso qualsiasi rete di accesso.

Tale piattaforma nasce dalla volontà di NetResults di creare un prodotto che concretizzasse le proprie competenze nell’ambito del network performance testing e dei sistemi di telecomunicazioni.

La nostra soluzione è basata su un sistema technology-independent di monitoraggio della Quality of Experience, che fa uso di un approccio attivo in cui, cioè, viene iniettato del traffico sintetico nella rete sotto test a fini di misura, emulando l’esperienza dell’utente che usufruisce del servizio IT e permette di ottenere delle metriche oggettive; i test realizzabili sono i più disparati, dai semplici ping icmp a veri e propri test di disponibilità di servizio tramite algoritmi di computer vision. Il sistema è basato su un insieme di bot (detti Agent) e di un bot manager che li coordina e raccoglie/correla le misure. L’Agent è di fatto un bot, ovvero un SW che può essere installato su diversi tipi di device, ed è capace di usare i servizi Internet e IT emulando un utente umano. L’integrazione di un layer python permette la scrittura di moduli di test (plugin) personalizzati che possono quindi essere distribuiti tramite la piattaforma agli agent che eseguiranno il plugin. Ogni singolo modulo di ThEIA rappresenta per NetResults una nuova sfida in cui coniugare competenze tecniche ed idee innovative nel campo del testing delle reti.

theia image17

 


Computer Vision & Machine Learning

Testare la QoE di un servizio web based richiede di interagire con pagine web in continua evoluzione. Questo implica un costante sforzo di maintenance per riadattare il comportamento dei sistemi di test ai mutamenti dei servizi web under test.

Ma un essere umano, in genere, è in grado di navigare una pagina web anche se il suo aspetto grafico è cambiato. Grazie alle nuove tecnologie, adesso, anche i computer se opportunamente istruiti con algoritmi di machine learning (ML), sono capaci di riconoscere i cambiamenti di una pagina web. Curiosi di vedere fin dove potesse arrivare l’apprendimento di un computer abbiamo voluto sperimentare con le ultime tecnologie di ML ed applicarle ai sistemi di computer vision (CV) che usiamo per il testing dei portali web.

Nasce così un PoC (Proof of Concept) in cui abbiamo sviluppato un sistema in grado riconoscere un form di login ed effettuare in automatico l’autenticazione.

Per questo progetto ci siamo divertiti ad integrare Tensor Flow con Sikuli ed un sistema di OCR in moda da ottenere un automa che riconoscesse davvero un form di login, così come farebbe una persona vera, anche se la grafica o l’aspetto del form sono mutati nel tempo.

 


Robottino

A volte cercare la risposta a domande “provocatorie” porta a trovare soluzioni interessanti e tecnologicamente stimolanti.

Una domanda che ci siamo posti in NetResults è stata:
“Come potremmo spingere il concetto di testing della QoE per un device mobile al limite?” Come possiamo “misurare” davvero quello che un utente sente quando fa una chiamata telefonica o tramite Whatsapp?

La risposta e stata: registriamo la telefonata fatta dal cellulare senza alcun software di supporto a bordo del cellulare, e valutiamo se si è sentito bene o male, esattamente come farebbe una “persona vera”.

In tempi in cui Appium non aveva il livello di maturità desiderato e volendo prescindere dal sistema operativo del cellulare, abbiamo deciso di costruire un robot che telefonasse... o giocasse ad Angry Birds :)

  • Usando una stampante 3D abbiamo stampato un delta-robot;

  • Per il controllo dei motori passo-passo dei braccetti abbiamo scritto il fw di controllo per Arduino;

  • Infine abbiamo chiuso il feedback loop dello schermo del cellulare tramite un sistema di Computer Vision (CV) che “guardava” lo schermo del cellulare e pilotava Arduino per indicare dove muovere “il dito” artificiale.

Il risultato è stato una coppia di robot che si chiamano reciprocamente tramite cellulare, ogni chiamata viene registrata e la qualità dell’audio misurata tramite un algoritmo standard ITU-T denominato POLQA.