Artık insanlar ellerinin altında birçok teknolojiyi barındırıyor. Mobil uygulamalar, oyunlar, web siteleri ve çok daha fazlası herkesin her an ulaşabileceği kadar yakınında. Bununla birlikte kullanıcılar, bu araçların hatasız olmasına, kaliteden ödün vermemesine ve kendilerine hitap etmesine öncelik veriyor. Bu memnuniyetin sağlanması da büyük ölçüde, test süreçlerimizden birisi olan ve son kullanıcı katılımının şart olduğu ‘Kullanıcı Kabul Testi’ ile mümkün. Yani uygulamanın çıkış kararında önceliği test otomasyonundan ziyade manuel test alıyor.

Daha önce hiç görmediğiniz bir uygulama düşünün. Ne işe yaradığını bilmiyorsunuz ve bu uygulamaya bakmanız istenildi. İlk yapacağınız şey uygulamayı açıp “keşfetmek” olacaktır. Yani aslında, teknik olarak “exploratory testing” / “keşif testi” olarak adlandırılan bu süreçte, yine insan odaklı bir manuel teste başlamış olacaksınız.

Dijitalleşen ve her şeyin otomatikleştiği bu dünyada neden hala manuel test süreçleri devam etmekte? Kısaca maddeler halinde ilerleyelim:

  • Otomatize testler kodlanmamış hataları fark edemez: Otomasyonlar kodlanmamış hataları bulamaz. Siz testi otomatize ettiğinizde, test ettiğiniz uygulama doğru olarak çalışıyor mu veya çalışmıyor mu yani pass/fail sonuçları döner. Ama manuel testte herhangi bir hatayı açık bir şekilde adımlarıyla birlikte bulabilirsiniz.
  • Manuel test gerçek kullanıcı sorunlarını daha iyi bulur: Kendinizi bir uygulamayı kullanırken düşünün. Uygulamada bir kısım denediniz. Denediğiniz bu kısımda herhangi bir senaryoya göre çok daha fazla hata bulabilirsiniz.
  • Test uzmanından alınacak geri bildirimler çok önemlidir: Test uzmanı, test edilen uygulamada farklı şeyler bularak bunları hemen bildirebilir. Gerekirse iş açar, dönüş yapar. Bu sebeple test uzmanının test yaparken yorumlarını ve bilgisini almak çok önemlidir.
  • Kullanılabilirlik testi ancak manuel olarak yapılabilir: Örneğin bir web sitesi kullanımının ne kadar kolay ve kullanıcı deneyiminin hangi seviyede olduğunu değerlendirmek için kullanılabilirlik testi uygulanır. Gerçek kullanıcılar ile yapılan kullanılabilirlik testleri; web sitesinin ne kadar kullanılabilir veya sezgisel olduğunu, aynı zamanda kullanıcılar için hedeflerine ulaşmanın ne kadar kolay olduğunu ölçer.
  • Değişen senaryolar hızlı bir şekilde yürütülebilir: Bir projeyi geliştirirken yeri geldiğinde eklemeler, çıkartmalar yapılabilir. Bu senaryolar sürekli değişkenlik gösteriyorsa, manuel test hem daha kolay hem de maliyet açısından daha uygun olacaktır. Çünkü test otomasyon senaryolarını sürekli değiştirmek zaman kaybı getirir, bu da maliyeti etkiler.
  • Genelde birçok hata başka bir şeyi test ederken ortaya çıkar: Test edilmesi istenilen bir senaryoda, otomasyon testleri sadece tam olarak o senaryodaki adımları takip edecek ve uygulamanın diğer noktalarını çoğunlukla pas geçecektir. Manuel testlerde, sezgisel olarak aktif test edilen senaryo dışındaki fonksiyonlar da hızlıca test edilmekte, bu yeni senaryoda da daha önceden farkedilmeyen hatalar göze çarpabilmektedir.

Yukarıda belirtildiği gibi artık teknoloji insanların elinde, yani mobil cihazlarda. Bu yüzden mobil cihazlarda manuel testin önemi ile devam edelim:

  • Uygulamaları internet bağlantısına göre test edebiliriz: Uygulamanın performansına ve uygulamanın internet erişim hızına hem kablosuz internet hem de 3G/4G bağlantılarla bakılmalıdır. Çoğu kullanıcı için, internet bağlantısını daha az kullanan uygulamalar daha çok tercih edilmektedir.
  • Mobilite: İnsanlar telefonlarıyla her ortamda bulunabilir. Uygulamaları test ederken bu durumlar dikkate alınarak tüm koşullarda her durum test edilmelidir. Bu kaliteyi daha fazla artırmamıza yardımcı olur. Mobil / taşınabilir cihazların internet erişiminin kısıtlı olduğu yerlerde de test edilmesi ve buradaki davranışın analizlerinin yapılması, toplam kalite içindeki önemli adımlardandır.
  • Çözünürlük Farkları: 4K, 2K, HD gibi çözünürlükler dikkate alınarak uygulama test edilmelidir. Bazı uygulamaların çözünürlüğü, her cihaz için değişkenlik gösterecektir.
  • İşletim sistemi farklılıkları (IOS/Android vb.): Farklı işletim sistemleri için üretilmiş uygulamalar, ilgili işletim sisteminin farklı sürümleri ile test edilmelidir. Her sürümdeki gereksinimler gözetilmeli ve hata raporları bunlara uygun olarak üretilmelidir.
  • Cihaz versiyonları arası farklılıklar: Farklı donanım modellerinde, işletim sistemi sürümleri aynı bile olsa, kullanılan uygulama ve bu uygulamaların özellikleri değişkenlik gösterebilir.
  • Pil tüketimi: Uygulamanız çok fazla pil harcıyorsa kullanıcılar bundan memnun olmayabilirler. Bu sebepten dolayı test süreçlerine bu koşulu da dahil etmeliyiz.
  • Veri kullanımı: Mobilde kullanılan uygulama çok fazla veri alışverişi yapıyor mu ya da telefonda çok alan kaplıyor mu diye test edilmelidir.
  • Cihazın konumu: Uygulamayı telefon ekranı hem yatay hem de dikey olarak test etmek gerekir. Bu duruma göre test sonuçları farklılaşabilir.
  • GPS & Bluetooth & NFC.: GPS & Bluetooth & NFC özelliklerini mobil cihazda kapatıp açarak uygulamanın ne tür tepki verdiğine bakmak gerekir.
  • Cihazda bulunan sensörler: Işık sensörü, manyetikölçer, parmak okuyucu sensör gibi özellikler test edilmelidir.
  • Kaynak kullanımı (CPU, RAM): Uygulama işlemciyi ne kadar meşgul ediyor ve hafızada ne kadar yer kaplıyor gibi senaryolara bakılabilir.
  • Çağrı ve SMS: Uygulamayı kullanırken çağrı veya SMS geldiğinde uygulama ne tepki veriyor kontrol edilmelidir.
  • Pil durumu: Cihaz şarjdayken, pil tam doluyken veya enerji koruma modundayken uygulama ne gibi tepkiler veriyor bunlara bakılmalıdır.
  • Kurulum / Tekrar kurulum: Uygulamayı kurmak, silip tekrar kurmak, farklı versiyonlar üzerine uygulamayı kurmak veya uygulamanın farklı versiyonlarını kurarak test yapmak gerekir.
  • App kill / App Background: App kill veya “background” durumdayken uygulamada bildirim geliyor mu gibi senaryolara bakılmalıdır.
  • Monkey test: En önemli testlerden biridir. Bir web uygulamasında butona 2 kere art arda tıkladığınızda uygulama crash olmayabilir. Belki 2 kere sepete ürün atılmıştır. Yani sadece crash olmaz. Mobil uygulamada ise bir butona 2 defa art arda bastığınızda veya geri butonuna 2 defa art arda bastığınızda crash olma ihtimali yüksektir. Yani “Monkey Test” dediğimiz, boşluklara basma, bir tuşa art arda basma, rastgele basma gibi karışık senaryoları mutlaka manuel testte denemek gerekir.

Özetlemek gerekirse otomasyon ile test edemediğimiz ama kaliteyi önemli derecede etkileyen kısımlar manuel test yapılarak kontrol edilmelidir.  Aslında manuel test ve otomasyon testi ying&yang gibidir. Herhangi biri tek başına işe yaramaz. Küçük bir projeyi manuel olarak yürütebilirsiniz fakat büyük bir projeyi manuel olarak yürütmeniz çok zordur. Sadece otomasyon ile de tek başına yürütmek imkansıza yakındır. Çünkü çok fazla hata çıkabilir. O yüzden birçok projede mutlaka manuel testi ve otomasyonu beraber kullanmak gerekir.