SupremeTest

SupremeTest Nedir?

SupremeTest, büyük ölçekli sistemlerin karmaşık test otomasyonu ihtiyaçlarına çözüm olması için geliştirilmiş platformdur. Sürükle ve bırak yöntemiyle kolayca test senaryosu oluşturma imkanı sunar ve zengin test protokolü desteğiyle insan kaynaklı hataları minimize eder ve testlerin kalitesini artırır. 

Daha fazla bilgi için websitemizi ziyaret edin.

Yazılım Test Otomasyonu Nedir?

Yazılım test otomasyonu, yazılımda (arka yüz veya ön yüzde) gerçekleşmesi beklenen sonuçlarla gerçek sonuçların karşılaştırılması ve bu sonuçların karşılaştırılması için yazılmış olan testlerin otomatik isleme alinmasini sağlamak için bir yazılımın kullanılmasıdır.   Test otomasyonu, manuel olarak koşulması zor ve tekrar eden işemlerin testlerini otomatikleştirebilir ve manuel olarak gerçekleştirilmesi koşulması zor olacak testlerde büyük kolaylık sağlayabilir. Örneğin bir test senaryosunu 50-60 farklı tarayıcıda ve tarayıcı versiyonunda koşmak çok zaman alabilecek bir iştir. Fakat otomasyon ile bu işleme harcanacak süreler belirgin şekilde kısaltılabilir.  

Yazılımınız düzenli olarak gelişiyor olabilir. Bu gelişimler/değişimler sonucunda test ihtiyacınız doğuyorsa, aynı senaryoları tekrar tekrar test etmeniz gerekiyorsa, otomasyona ihtiyacınız olabilir. Otomasyon size daha verimli bir test süreci sağlayacaktır ve test kapsamınızı genişletecektir. Özellikle karmaşık test süreçlerinde ve kritik iş süreçlerinde otomasyon kullanmak yazılımda oluşabilecek önemli hataların sayısını azaltır.

Neden Gereklidir?

Yazılım testlerinde otomasyon kullanmanınsağlamanın en büyük faydası zamandan tasarruf ve otomasyon araçlarının yetenekleriyle birlikte test kapsamının ve kalitesinin arttırılmasıdır. Test otomasyonu sayesinde,Bu sayede şirketler yazılım ürünlerini piyasaya daha hızlı sürebilirler. Piyasaya daha az hatalı ürün çıkarmak şirket itibarı için de önemlidir.      Bir yazılımın geliştirilmesi yıllar alabilir ancak yazılımın yeteri kadar test edilmeden piyasaya sürülmesi müşterilere ve şirketlere büyük çaplı zararlar verebilir. Test otomasyon araçları, test senaryolarının hızlı, peş peşe ve tekrar tekrar koşulabilmesini sağlar. İnsan kaynaklı hataları minimuma indiririndirger, Hhataların erken teşhis edilmesini sağlar. Test otomasyon araçları, test ekibine analiz yapmalarını sağlayacak raporlar üretir. Huawei Türkiye Ar-Ge Merkezi Test Otomasyon Platformu, zaman ayarlı test özelliği sayesinde, kullanıcısiz bilgisayar başında değilken de yazılım testlerinin testlerinizin koşulmasını sağlar. Huawei Türkiye Ar-Ge Merkezi Test Otomasyon Platformu fonksiyonel, regresyon ve entegrasyon testlerine odaklanmaktadır.

Son zamanlarda yoğun temposuyla öne çıkan yazılım dünyasında, test otomasyon araçları güvenilir bir ürün oluşturmak ve aynı zamanda kaliteyi hızlı bir şekilde sağlamak için büyük önem taşımaktadır. Otomasyon test araçlarının odak noktası, test sürelerini kısaltmak ve bunun ile beraber daha iyi kapsama alanına ve test durumlarının etkin kullanımını hedeflemiştir. Test otomasyon araçları ihtiyaca ve test edilen ürüne göre seçilmelidir. Günümüzde oldukça popüler olan web tabanlı ürünler için Selenium ve mobil tabanlı ürünler için Appium tercih edilebilir.

 

Selenium

Selenium web tarayıcıları üzerinde test otomasyonu sağlayan bir araçtır.Selenium 3 bileşenden oluşmaktadır. Bunlar Selenium IDE, Selenium Web Driver ve Selenium Grid.

Appium

IOS mobil, Android mobil ve Windows masaüstü platformlarında test otomasyonları yapmaya yarayan açık kaynak kodlu bir test aracıdır. Appium’un desteklediği başlıca diller; Java, Objective-C, JavaScript, Node.js, PHP, Python, Ruby, C#, Clojure, Perl.

Bunun yanı sıra Supreme Test, Huawei Türkiye Ar-Ge Merkezi’nde Türk mühendisler tarafından Huawei’nin kendi operasyonel ihtiyaçları doğrultusunda geliştirilen bir test otomasyon platformudur.

Her platformun kendine özel yazılım test senaryosu yazma methodu vardır.

Huawei Türkiye Ar-Ge Merkezi Test Otomasyon Platformu üzerinde test senaryoları Lego mantığıyla yazılır.

  1. Test adımları test mühendisi tarafından, kodlama desteğiyle, şablonlar halinde yaratılır.
  2. Şablon olarak kaydedilen adımlar tekrar tekrar kullanılabilir.
  3. Şablonlar sürükle bırak metoduyla “kanvas” alanına taşınır. (Figure 3 Huawei Türkiye Ar-Ge Merkezi Test Otomasyon Platformu Arayüzü)
  4. Ardından, test adımlarının arasındaki doğrulama parametreleri ve akışın sağlanması için önceki/sonraki oklar aracılığıyla bağlantı sağlanır.

E-ticaret sitesinde alışveriş yapan bir kullanıcının deneyimini test etmek için yazılım test adımlarını test senaryosuna kolayca ekleyip başlayabiliriz.

Örnek olarak, web sitesinden bir ürünü sepete ekleme işleminin test edilebilmesi için: 

  1.  Giriş yapma adımı bir şablon olarak kaydedilir. Kullanıcı adı ve şifre girilerek sisteme giriş yapma adımı şablona tanımlanır.
  2. Şablon canvas bölgesine sürüklenip bırakılır.
  3. Ekrandan bir ürün seçilir. Bu işlem şablon olarak kaydedilir.
  4. Şablon canvas bölgesine sürüklenip bırakılır.
  5. Sepete ekleme butonuna tıklanılır. Bu işlem şablon olarak kaydedilir.
  6. Şablon canvas bölgesine sürüklenip bırakılır.
  7. Validasyon kritlerleri ve parametlerleri sisteme tanımlanır.
  8. Test senaryosu kaydedilir

 

Fonksionel yazılım test senaryosu, yazılım uygulamasının belirli bir özelliğini veya işlevselliğini doğrulamak için yürütülen bir dizi eylem olarak tanımlanır.

Test senaryosu, bir uygulamanın bir özelliğinin doğru çalışıp çalışmadığını belirlemek için girişi, eylemi ve beklenen yanıtı tanımlayan bileşenlere sahiptir.

Bir test senaryosu, belirli bir test hedefinin “nasıl” doğrulanacağına ilişkin bir dizi talimattır.

Yazılım Test Senaryosu Yazma İpuçları

  • Her test senaryosunun başlığı kendine özgü olmalıdır
  • Ön gereklilikler açık ve net olmalıdır
  • Test adımları sıralı ve doğru olmalıdır
  • Beklenen sonuçlar doğru olmalıdır
  • Test senaryoları belgelendikten sonra, test uzmanları senaryoları tekrardan incelemelidir

 

Yazılım test senaryolarında yazılımın kalitesi, otomasyon senaryolarının doğruluğu, back-end tarafında çalışan kodların ve entegrasyonların doğruluğu, arayüzdeki doğruluk, tarayıcı ve mobil cihazlara uyumluluk, sistemin çalışmasını engelleyen hatalar, yazılım performans verileri ölçülür. Bulgulara dair raporlar sunulur.

Temel bir test raporunda:

Test sonucu şu şekilde kontrol edilir;

  • Test senaryosunun koşumunda harcanan süreye bakılır,
  • Koşulan test senaryolarının kaç adet olduğu görüntülenir,
  • Koşulan testlerde her adımın sonuçları kontrol edilir,
  • Başarılı ve başarısız olan adımlara ve senaryolara dair raporlar sunulur,
  • Test tipi ve amacına dair bilgi sunulur.

Test Özeti: Başarılı, başarısız ve sistemin çalışmasını engelleyen test vakalarına dair özet sunulur.

Hatalar:  Öncelik ve statüye göre açıklanır

Test mühendislerine özel, kişi bazlı performans raporları da test takımı liderleri tarafından talep edilebilir. Test takım liderleri, ekiplerindeki bireylerin hangi testleri ne hızda tamamladığına, testlerin başarı oranlarına, kişi bazlı önemli hata bulgularına ihtiyaç duyabilir. Özellikle arayüz ve mobil testlerinde, bulunan hataların görsel ve videolu kaydına ihtiyaç duyulabilmektedir.

Detaylar için aşağıdaki link ziyaret edilebilir.

https://www.perfecto.io/blog/test-reporting

 

Test senaryosununun amacı test edilicek ürüne ait olan tüm fonksiyonelliği test etmektir.

Test metotları temel olarak ikiye ayrılır: Kara kuru ve beyaz kutu testleridir.

Kara kutu testleri kodun içeriği bilmeden yapılan son kullanıcı gibi testlerdir. Buna ornek olarak:

  • Kullanici sisteme giris yaparken dogru e postayi ve sifreyi girerse sisteme giris yapar.
  • Kullanici sisteme giris yaparken yanlis e postayi ve sifreyi girerse sisteme giris yapamaz.

Burada goruldugu uzere kara kutu testlerinde kodun icerigine bakilmadan sisteme bir girdi yapildiginda ciktinin ne oldugu kontrol edilir.

 

Beyaz kutu testleri kodun çalıştırılmasıyla yapılan testlerdir.

  • Örneğin birim testinde kod içerisindeki her fonksiyon test edilir.

Beyaz kutu ve siyah kutu testleriyle ile iliskili olan iki test turu vardir.  Fonksiyonel olan testler ve fonksiyonel olmayan testler olarak iki tür vardir.

Fonksiyonel test, uygulamanın fonksiyonlarinin çalışıp çalışmadığını test eder. Fonksiyonel olmayan testler ise uygulamanin islevsel olmayan özelliklerini kontrol etmek için yapılan testlerdir. Buradaki amaç sistemin performansını, hızını, kullanabilirliğini, güvenliğini ve sürdürülebilirliğini sınamaktır.

Fonksiyonel Testler:

Birim Test (Unit Testing): Yazilimin en kucuk birimini olusturan bilesenlerinin test edilmesidir.

Duman Testi (Smoke Testing): Yazilimindaki en temel ve en onemli fonksiyonlarin calisip calismadiginin test edilmesidir. Entegrasyon testlerinin en basit halidir.

Bütünleşme-Entegresyon Testi (Integration Testing): Entegrasyon testi yazilimdaki farkli urunleri birlikte nasil calistiginin test edilmesidir.

Arayüz Testi (Interface Testing): Kullanicinin yazilim ile etkilesim gectigi arayuzunun fonksiyonlarinin ve uyumlulugunu test edilmesidir.

Regresyon Testi (Regression Testing): Uygulamada saptanan hatalar, degisiklikler, guncellenen yeni ozellikleri ve  mevcut hatanin giderildigine emin olmak icin kontrol amacli yapilan testlerdir.

Kullanıcı Kabul Testi (UAT – User Acceptance Testing): Odak noktasi musteri olan ve proje turunun farkliligina gore degisen kullanicinin ihtiyaclari dogrultusunda ilerleyen kabul edilebilirliginin test edilmesidir.

 

Fonksiyonel Olmayan Test Metodları:

Performans Testi (Performance Testing): Yazilim uygulamalarinin ön görülen performans değerleri içerisinde çalışıp çalışmadığı test edilir.

Yük Testi (Load Testing): Sisteme olağan dışı yüklenmeler yapılarak gerçekleştirilen testlerdir. Uygulamaya yüklenen bu olağan dışı yük karşısında, kullanıcı deneyimde bozulmalar olup olmadığına bakılır ve gecikmeler kontrol edilir.

Stres Testi (Stress Testing): Sisteme en yüksek derecede yükleme yapılır. Maksimum yükle uygulamanın bilgisayarınızın, programınızın, cihazınızın, ağınzın veya uygulamanızın davranışını kontrol eder. Ek olarak, sistemin normal çalışma şartlarına geri dönerken düzelip düzelemeyeceğine de bakılır.

Güvenlik Testi (Security Testing): Sisteminizin kötü niyetli saldırılara ne kadar hazır olduğunu ölçmek için yapılan testlerdir. Sisteminizdeki güvenlik mekanizmalarındaki hataları ve eksiklikleri ortaya çıkarır.

Kullanılabilirlik Testi (Usability Testing): Yazılımın kullanıcı tarafından ne kadar kolay kullanılabildiğini ve öğrenilebildiğini doğrulamak üzere yapılan testlerdir.

Uygunluk Testi (Compatibility Testing): Yaziliminin butun cihazlarda tarayicilarda isletim sistemlerinin basarili bir sekilde calisip calismadigi kontrol edilir.

Huawei Türkiye Ar-Ge Merkezi Test Otomasyon Platformu Test Otomasyon Platformu yazılımcıların yeteneklerini ölçen bir program değildir. Test otomasyon programlarını yazılım geliştiren ekiplerden ziyade test mühendisleri ve test takımı liderleri kullanır. Test mühendisleri yazılım geliştirmez, geliştirilmekte olan veya geliştirilmiş olan yazılımı test ederler.

Huawei Türkiye Ar-Ge Merkezi Test Otomasyon Platformu’ın özellikleri:

  • API ve entegrasyon testleri
  • Mobil testleri
  • Arayüz testleri
  • Veritabanı testleri
  • Test senaryosu üretimi ve versiyonlama
  • Geniş kullanıcı yetkilendirme seçenekleri. (Kullanıcıların hangi senaryolara erişimi olacağını, hangi senaryoları görebilecekleri gibi seçenekler üzerinden kullanıcı yetkilendirmesi gerçekleştirilir.)
  • Web üzerinden erişim (Public Cloud Deployment)
  • Yerinde kurulum (Private Cloud Deployment)
  • Toplu test senaryosu koşumu (100.000’e kadar farklı veriyle aynı test senaryosu koşulabilir)
  • Test doğrulama işlemleri için Javascript desteği
  • İsteğe bağlı protokol ekleme
  • Şablon mantığıyla test adımları oluşturulur. Test mühendisleri adımları şablonlar halinde oluştururlar çünkü yeniden kullanılabilirlik Huawei Türkiye Ar-Ge Merkezi Test Otomasyon Platformu’ın tasarımında esas alınmıştır.
  • Sürükle-bırak metoduyla, önceden oluşturulmuş şablonlar Lego mantığıyla kolayca test senaryosu oluşturmaya yarar. Test mühendislerinin test senaryosu oluşturma hızını arttırır.
  • Zamanlanmış test senaryosu koşumu
  • Jenkins entegrasyonu

Yazılım süreçlerinde mimariyi oluşturma ve sonrasında da geliştirme aşaması çok önemlidir. Fakat bunun yanı sıra test aşaması da en az oluşturma ve geliştirme kadar önem arz etmektedir. Yazılımın kusursuz ya da eksiksiz hazırlanması ve geliştirilmesi çok önemlidir ama kendisinden beklenen özellikleri karşılayıp karşılamadığı da test edilmelidir. Ürünün verimliliği, hata olup olmaması, herhangi bir adımda sorunla karşılaşılıp karşılaşılmadığı gibi konular ürünün geleceğini belirlemektedir. Yazılım durumu testleri yazılım geliştirme ve uygulama yaşam döngüsünün önemli parçalarındandır. Yazılım testleri ile gereksinimlerin karşılanıp karşılanmadığı ve doğru çıktıyı verip vermediği test edilmektedir. Bu testler çok sayıda test durumu ve test stratejisi hazırlanarak belirli hedefler doğrultusunda yazılımın çıktılarını kontrol etmek için uğraşır.

  1. XL TestView: Yazılım test sonuçlarının yönetimi ve analizi için kullanılan bir platformdur. Kullanıcılarına farklı test araçlarından aldığı verileri analiz edip sunar ve farklı araçlarda yer alan sonuçları birleştirir.
  2. Selenium: Selenium web tarayıcıları üzerinde test otomasyonu sağlayan acik kaynakli ve ucretsiz bir test araçtır.
  3. Cucumber: Yazilimda sade bir halde yazilmis senaryolarin, kodlama bilgi gereksinimini ortadan kaldirip, otomatik olarak teste donusturen bir test aracidir.
  4. Appium: IOS mobil, Android mobil ve Windows masaüstü platformlarında test otomasyonları yapmaya yarayan açık kaynak kodlu bir test aracıdır.
  5. Jmeter: Uygulaması açık kaynaklıdır ve %100 java yazılımıdır. Yazılımlardaki fonksiyonel davranışları ve performansı ölçen yük testlerini gerçekleştirir. Temel olarak web uygulamalarının testleri için kullanılır.
  6. Junit: Java programlama dili için tasarlanmış bir test konseptidir (framework). JUnit regresyon testlerinde kullanılır ve açık kaynaklıdır. Otomasyon sağlanmış testleri yazmak ve tekrar tekrar koşmak üzere kullanılır.
  7. FitNesse: Açık kaynaklı bir test aracıdır. Testlerin otomasyonu için de kullanılabilir. Kabul testleri için kullanılabilmektedir.
  8. Gatling: Açık kaynaklı bir yük ve performans testi aracıdır.

Fonksiyonel test, kodun dahili olarak nasıl çalıştığını önceden anlamadan, uygulamayı baştan sona kontrol ederek yazılımınızın kullanıcının bakış açısından tasarlandığı şekilde çalışmasını sağlar.Bu, bir şeyler geliştirmek için yapılan sıkı çalışmanın, “bu gerçekten işe yarıyor mu”, “kullanıcı beklediğimizi yapabiliyor mu” veya “bunun işe yaraması gereken yollar var mı” gibi zor soruları sormaya dönüştüğü noktadır. Urün halka sunulmadan önce uygulamanın her işlevinin gerektiği gibi çalıştığını kontrol etmenizle eşdeğerdir. Ürün geniş bir alana yayılmadan önce test sırasında hataları ortaya çıkarmak icin tercih edilir.

Fonksiyonel Test Örneği:

  1. Bu test senaryosunda ilk adım olarak bir web adresine gidilmektedir,
  2. İkinci adımda bir ürün aratılır,
  3. Üçüncü adımda ürün sepete eklenir,
  4. Dördüncü adımda ürün kategorilerine gidilir,
  5. Beşinci adımda yeni bir ürün sepete eklenir.

Bu test Huawei Türkiye Ar-Ge Merkezi Test Otomasyon Platformu üzerinde Selenium eklentisi kullanılarak yazılmıştır. Selenium arayüz testlerini gerçekleştirmeyi sağlayan, açık-kaynak bir yazılımdır. Huawei Türkiye Ar-Ge Merkezi Test Otomasyon Platformu’a bütünleşmiş halde çalışabilmektedir. Bu bir fonksiyonel test olduğu için, beklenen aksiyonlar gerçekleştiğinde web sitesi istendiği şekilde davranıyor mu kontrol edilir. Windows işletim sistemi üzerinde, Google Chrome kullanılacak şekilde yazılmıştır. Çeşitli test otomasyon araçları farklı işletim sistemlerini ve tarayıcıları destekler. Huawei Türkiye Ar-Ge Merkezi Test Otomasyon Platformu için mobil ve web testlerinde çoklu tarayıcı ve mobil cihaz desteği, yeni geliştirilecek özellikler arasındadır.