Dezvoltarea sistemelor bazate pe tehnologii IoT aduce multe rezolvări la anumite probleme și provocări ale zilelor noastre, dar în același timp ideile trebuie să vină cu o bază de practici moderne și inovative. Printre provocări se enumeră cele legate de acces, numărul dispozitivelor posibile în rețea, lipsa unor date pentru simularea unor situații reale și alte probleme legate de conectivitatea dispozitivelor.
Să presupunem, de exemplu, că ideea este de a crea un sistem inteligent de irigare pentru a ajuta fermierii să conserve apa. Pentru a scala acest sistem IoT, va trebui testat prin colectarea unor mostre mici de date dintr-un mediu prototip. Sistemul prototip poate include senzori de umiditate a solului, senzori de umiditate și un sistem de aspersoare de-a lungul unui teren pe câmpul unui fermier. Senzorii au o conexiune fără fir care alimentează datele în aplicația din cloud. Aplicația are acces la modelele meteorologice curente din regiune și poate analiza datele pentru a determina dacă este nevoie de apă suplimentară. Dacă este nevoie de apă suplimentară, aplicația activează fără fir sistemul de aspersoare până când senzorii indică faptul că umiditatea solului se situează la niveluri optime. Acest prototip permite colectarea de date preliminare care pot fi utilizate pentru dezvoltarea și testarea aplicațiilor. Această metodă funcționează bine în general, dar implică instalarea de senzori fizici la fermă, care adaugă complexitate și poate fi deseori dificilă pentru dezvoltarea de software.
Configurarea câtorva senzori pentru a colecta lucrări de date în timpul prototipurilor este o misiune ușoară, dar ce se întâmplă când trebuie lansat produsul fizic vine cu adevărata provocare. Aplicația ar putea funcționa perfect în scenariul anterior, cu un teren definit. Cu toate acestea, terenurile agricultorilor pot fi mai mici sau chiar mult mai mari decât situația simulată.
Scalarea ar necesita crearea mai multor dispozitive IoT, ceea ce este foarte costisitor și consumator de timp. Iar agravând situația, dezvoltarea și testarea devin infinit mai complicate atunci când sunt instalate mai multe dispozitive. Datele pot fi influențate de evenimente care apar în intervalul de timp testat. Mai mult, exemplul de prototip poate fi realizat doar într-o anumită perioadă de timp din punct de vedere meteo, fără a putea simula toate situațiile. Aceste limitări vor diminua eficacitatea testelor și pot cauza ca aplicația să nu fie eficientă în producție. Aceasta este o realitate frustrantă pe care mulți dezvoltatori ai IoT sunt forțați să trăiască.
Dar, o inovație promițătoare a noilor tehnologii IoT care face valuri este testarea bazată pe virtualizare. Dezvoltatorii pot crea dispozitive virtuale prin monitorizarea datelor între dispozitivele reale. Aceștia pot combina aceste date cu machine learning și pot face ca datele de probă să imite datele fizice ale dispozitivelor fizice din lumea reală. Ele pot apoi să creeze mai multe instanțe ale acestor dispozitive virtuale și să simuleze soluția IoT la scară cu date realiste. Pentru cel mai bun rezultat, dezvoltatorul trebuie să înțeleagă cum și când să capteze datele dispozitivului fizic, deci este cu siguranță un element de expertiză necesar. Cu toate acestea, o cantitate semnificativă de timp și efort este salvată prin eliminarea dependenței de dispozitivele fizice.