IoT (Internet Of Things), nesnelerin farklı türden verilerini internet yardımıyla toplamak için kullanılan konsepte verilen isimdir. Günlük hayatımızda kullandığımız; akıllı telefonlar, akıllı saatler, ampuller, televizyonlar, klimalar, kablolu/kablosuz olarak bağlı cihazları IoT’ye örnek olarak verebiliriz. Akıllı saatler; sağlık, nabız izleme, uyku aktivitesi gibi bilgileri alarak verilerin mobil cihazlarda gösterilmesini sağlar.
IoT de en çok kullanılan teknolojilerden bazıları şunlardır :
NFC (Near Field Communication): Elektronik cihazlar arasında temas etmeden iki yönlü etkileşimi sağlamak için kullanılır. Kurulan kablosuz bağlantı ile yapılmak istenen işlem gerçekleşir. Örnek olarak, akıllı telefonlarda temassız ödeme işlemlerini gerçekleştirmek için kullanılır.
Bluetooth: Kısa mesafeler arasındaki verilerin kablosuz ağ üzerinden hızlı bir şekilde aktarılmasını sağlar. Günlük hayatta kullandığımız; bluetooth kulaklık, bluetooth klavye, bluetooth mouse, bluetooth saat ve adım sayar bluetooth’un kullanıldığı cihazlara örnek olarak verilebilir.
Z-Wave: Küçük miktarda veriyi kısa ve orta mesafelere taşımak için tasarlanmış düşük güç tüketimine sahip kablosuz bir teknolojidir. Ev ve ofis otomasyonlarında kullanılır.
WiFi: IoT için en yaygın kullanılan seçimdir. Bir LAN üzerindeyken, dosyaların, verilerin ve mesajların sorunsuz bir şekilde aktarılmasına yardımcı olur.
Akıllı cihazların günlük yaşamda yaygınlaşması ve IoT cihazlarının artması, IoT yazılım testi olarak ayrı bir test alanı oluşmasına neden oldu. Bu yazımda sizlere IoT testinin nasıl olduğunu ve önemli noktalarını aktaracağım.
IoT test uzmanları, hataları bulmaya değil, hataların oluşmasını engellemeye yönelik çalışmalıdır. Test tekniklerinden statik test tekniği ile Proje Yönetim Planı, Kalite Güvence Planı, Konfigürasyon Yönetim Planı, Yazılım Gereksinim veya Sistem Gereksinim Dokümanı, Yazılım Tasarım veya Sistem Tasarım Dokümanı, Yazılım Test Planı, Ürün Destek Dokümanları (Kullanım, Kurulum Kılavuzları) gibi proje dökümanları hazırlanarak ve okunarak hataların oluşması engellenebilir.
Diğer yazılım türlerinde olduğu gibi IoT testi, IoT yazılımının kabul edilen kalite standardını ve kullanıcıların beklentilerini karşılayıp karşılamadığını belirlemek amacı ile yapılır. IoT’de, uyumlu bir şekilde bir araya gelen birbirine bağlı küçük cihazlardan oluşan bir ağ/ekosistem vardır. Bu nedenle, bu uygulamalarda tek bir hata olsa bile sorunun nereden kaynaklandığını bulmak zordur. Test uzmanları, hatanın kök nedenine inerek sorunu tespit etmelidir.
IoT testinde kullanılan bazı test türleri :
Performans Testi:
Farklı performans metriklerinin yardımıyla IoT cihaz uygulamasının performansını değerlendirmek çok önemlidir. Bu performans metrikleri arasında veritabanı performansı, yük toleransı, IoT cihazı uygulama yükleme hızı, aktarım hızı, verimlilik, çalışma süresi ve veri aktarım hızı bulunur. Performans testinin yardımıyla, bir IoT cihaz uygulamasının uzun bir süre boyunca düzenli kullanımı (yük testi) ne kadar iyi gerçekleştirdiğini ve yoğun zamanlarda kullanıcılardan gelen ek yüklere karşı nasıl tepki verdiğini görülebilir. Örneğin, fabrika için bir sistemden bahsettiğimizde, sistemin tüm fabrika için yeterli olduğundan emin olmamız gerekir. Test yapılırken tek seferde 2-3 ürün okutulur ve 10 istasyona bilgiler gönderilir. Tüm fabrika bağlandığında ve 180-200 ürün istasyonlara geldiğinde yayılan veriler, test edilen verilerden çok daha büyüktür. İstasyonlardan gelen veriler alınarak, işlenebiliyor olsa bile sistemin aynı performansı gösterdiğinden emin olmamız gerekir.
Güvenlik Testi
İnsanlar, kişisel bilgileri paylaşmak, satın almak ve satmaktan ve çok daha fazlasına kadar çeşitli nedenlerle IoT cihaz uygulamalarını kullanabilir. Bu nedenle bir IoT cihaz uygulaması, harici kişilerin erişimini kısıtlayan önlemlere, dahili kullanıcılar için de erişim kontrollerine sahip olmalıdır. Bir cihazdan diğerine aktarılırken verilerin korunup korunmadığının/şifrelenip şifrelenmediğinin kontrol edilmesi gerekir. Kullanıcı arayüzünün olduğu her yerde şifre koruması olduğundan emin olmamız gerekir.
Veritabanı Testi
Veritabanları, IoT cihaz uygulamalarının çalışmasını sağlar ve operasyonları için kritik öneme sahiptir. IoT test uzmanlarının tüm sorguların yanıt süresinin optimal olup olmadığını ve uygulama tarafından görüntülenen verilerin IoT uygulaması tarafından doğru bir şekilde gösterilip gösterilmediğini kontrol etmesi gerekir.
Fonksiyonel Test
Her IoT cihaz uygulamasının çeşitli farklı işlevleri yerine getirmesi gerekir. Ancak, dağıtımdan sonra herhangi bir aksaklığı önlemek için bu IoT cihaz uygulamalarının temel işlevlerini ayrı ayrı test etmek önemlidir. Bu temel işlevler, IoT cihaz uygulaması için zorunludur ve onlarsız çalışamazlar.
Uyumluluk Testi
Uyumluluk testi, IoT cihaz uygulamasının farklı cihazlara, uygulamalara ve işletim sistemlerine karşı uyumluluğunu kontrol etmek içindir. IoT cihaz uygulamasının farklı platformlarda ve tarayıcılarda sorunsuz çalıştığı değerlendirilmelidir.
Kullanılabilirlik Testi
Kullanılan istasyon takip cihazı, fabrikanın farklı bölümlerine taşınabilecek kadar taşınabilir olmalıdır. Ekipman, yalnızca bildirimleri değil, aynı zamanda hata mesajlarını, uyarıları iletecek kadar akıllı olmalıdır.Sistem, son kullanıcılara netlik sağlamak için tüm olayları kaydetme seçeneği sunmalı veya depolamak için bir veritabanına göndermelidir.Verilerin görüntülenmesi, verilerin işlenmesi açısından kullanılabilirliği kapsamlı bir şekilde test edilmelidir.
Pilot Test
IoT testlerinde Pilot testler bir zorunluluktur. Gerçek zamanlı koşullarda, senaryolarda çalıştırıldığında beklenen performansı sağlamayabilir. Pilot testler sırasında sistem, gerçek alanda sınırlı sayıda kullanıcıya maruz bırakılır. Uygulama kullanılır ve sistem hakkında geri bildirimde bulunurlar. Bu yorumlar, uygulamayı üretim dağıtımını güvenilir hale getirmek için kullanışlıdır.
Son olarak, IoT test yaklaşımı ilgili sistem ve mimariye göre farklı olabilir. Test uzmanları kullanıcı odaklı test yapma yaklaşımı ile test yapmalıdırlar.