Kaan Arda Uzun

Yazılım Test Uzmanlığı / QA

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Bölüm 1 - Yazılım Testinin Temelleri

Yazılım Geliştirme Yaşam Döngüsü(SDLC)

Yazılım projesinin geliştirilmesi sadece kodlamaktan oluşmaz, yazılım projesindeki tüm evreleri içeren bir süreçtir. Basit bir şekilde proje geliştirirken proje, planlama, analiz, geliştirme, test ve bakım evrelerini içermelidir. Bu model, projenin nasıl kodlanıp, geliştirileceğini açıklar.

Yazılım Test Uzmanının Sorumlulukları

Yazılım geliştirme yaşam döngüsünün her aşamasında yazılım test uzmanı etkin bir rol alır ve uygulamanın kaliteli bir şekilde son kullanıcıya ulaştırmasını sağlar.

        

Planlama

Tanımlama

Test Koşumu

                

Testin tamamlanması

Yazılım Hata Raporlaması ve Hata Yaşam Döngüsü

Hata Raporlaması

Hata (Bug) Türleri

3 tür hata (bug) türü vardır bunlar:

Görsel Hatalar 

Fonksiyonel

Performans (Performans veya otomasyon test uzmanları tarafından koşulur)

Nasıl Rapor Yazılır?

Basit Bir Hata Rapor Yazımı Örneği

        Description

        Mobil banka uygulamasında hesaplar arası para transferi gerçekleştirilemiyor.

        Hata Adımları

  1. Banka uygulamasına aktif kullanıcı hesabı ile giriş yap.
  2. Ana menüden hesaplarım sekmesini seç.
  3. Para transferini seçip, hesaplarım arasında tuşuna bas.
  4. 2 hesap arasında para transferi gerçekleştir

        Gerçekleşen Sonuç

        Hesaplar arasında para transferi yapılırken uygulama hata verdi.

        Beklenen Sonuç

        Uygulama sorunsuz bir şekilde hata vermeden hesaplar arasında para transferi gerçekleştirebilir.

Hata Yaşam Döngüsü (Bug Life Cycle)

Bir hatanın açılışından kapanışına kadar geçirdiği evrelerdir. Projede oluşan hatalara sistematik bir şekilde yaklaşılmalıdır ve bu durumu rahatlıkla kontrol altına alınabilmesi için hata yaşam döngüsü oluşturulmalıdır.

                           

                

  1. New: Hatanın ilk kez girişi yapılması.
  2. Assigned: Test uzmanının hatanın var olduğunu onayladıktan ve bildirdikten sonra yazılımcılara atanması
  3. Open: Yazılımcıların analiz yaptığı ve hatayı düzeltmeye çalıştığı evre.
  4. Fixed: Yazılımcının hatayı düzeltme amacıyla yaptığı kod değişiklikleri sonrası bug durumunu “Fixed” olarak değiştirip, tekrardan test uzmanlarına yolladığı evre.
  5. Pending Retest: Değiştirilmiş kod parçasının, test uzmanına gönderilmesi
  6. Retest: Test uzmanının değiştirilmiş kod üzerinde, hatanın düzeldiğini kontrol ettiği evre.
  7. Verified: Testler sonucunda eğer hata yazılım üzerinde bir sorun yaratmazsa, hatanın statüsünü onaylandı(verified) olarak değiştirir.
  8. Reopen: Eğer testler sonucu hata hala varsa, test uzmanı hatanın statüsünü “reopened” olarak değiştirir ve hata tekrardan “Bug Life Cycle” döngüsünü tekrardan yaşar.
  9. Closed: Bug düzeltilmesi sonucu, eğer yazılımda daha fazla sorun yaratmıyorsa statü durumu “closed” olarak değiştirilir ve bunun sonucunda bug düzeltilmiş, test edilmiş ve onaylanmış olur

https://tryqa.com/what-is-a-defect-life-cycle/

        

Yazılım Gereksinim Analizi

İstenilen ürünlerin, beklentilerinin açıkça ifade edilmesidir.

Örnek yazılım gereksinimi

  1. Kullanıcı hesapları arasında para transferi gerçekleştirebilir.
  2. Kullanıcı farklı hesaplara para transferi gerçekleştirebilir.
  3. Kullanıcı hesabına farklı kullanıcılar tarafından para transferi gerçekleştirebilir.
  4. Kullanıcı önceki transferler içerisinde arama yapabilir

Hata Çözme Maliyeti Artma sırası

Test Senaryosu (Test Case) ve Test Kontrol Listesi (Checklist):

Test Senaryosu

Test Senaryosu Örneği:

        

Test Kontrol Listesi Örneği:

Statü durumu, başarılı, başarısız, test edilmedi ve atlandı olarak seçenekleri vardır.

        

Bölüm 2 - Yazılım Test Metodları

Yazılım Test Seviyeleri

Birim Testleri

Entegrasyon Testleri

Otomatize kullanıcı arayüz testleri

Sistem ve Kabul testleri

Kara Kutu (Black Box) ve Beyaz Kutu (White Box) Testleri

Kara Kutu Testi        

                

                

Beyaz kutu Testi

                

Kara Kutu (Black Box) Test Teknikleri:

         *Fazladan gereksiz test oluşturmak yerine, bu yöntem test uzmanlarına zaman kazandırır.

                ***Test senaryosu sayısı, koşul ile doğru orantılıdır, kaç senaryo olduğunu;

                        2 = 2^n, Örn: 3 koşul var ise, test adım sayısı=> (2^3) = 8.

  1. Ücretsiz Plandaki kullanıcı %0 indirim alır ve Jira Entegrasyonuna erişimi olmaz.
  2. Kullanıcı Ücretli Plandadır ve 5'ten az üyesi vardır: %0 indirim alır ve Jira Entegrasyonuna erişebilir.
  3. Kullanıcı Ücretli Plandadır ve 5 ila 10 üyesi vardır: %10 indirim alır ve Jira Entegrasyonuna erişebilir.
  4. Ücretli Planda olan ve 10'dan fazla üyesi olan kullanıcı %15 indirim alacak ve Jira Entegrasyonuna erişilebilecektir.

                State Transition Diagram:

  1. Kullanıcı ilk kez doğru ödeme bilgilerini girer ve ardından Ücretli Plana başarıyla geçebilir.
  2. Kullanıcı ilk seferde geçersiz ödeme bilgilerini girer ve ikinci seferde geçerli ödeme bilgileriyle dener. Kullanıcı daha sonra planı yükseltebilir.
  3. Kullanıcı her iki denemede de geçersiz ödeme bilgilerini girer. Kullanıcı daha sonra Destekle İletişime Geçin sayfasına yönlendirilir.

        

  1. Kullanım durumu açıklaması: Bir kullanıcı çevrimiçi yemek sipariş edebilir.

  1. Sistem: Online Yemek Teslimatı Uygulaması.

  1. Ön koşul: Kullanıcının geçerli kimlik bilgileriyle sisteme çevrimiçi olarak erişmesi gerekir.

  1. Birincil aktör: Online yemek siparişi veren ve ödeme yapan müşteri.

  1. Temel akış veya ana senaryo: Müşteri mevcut restoran seçeneklerini keşfedebilir ve uygunluk ve yemek tercihlerine göre sipariş verebilir. Olası kullanım durumu, yemek teslimatı uygulamasını kullanarak etkileşime giren bir müşteri ve restoran çalışanı olabilir.

  1. Beklenen akış: Her iterasyonun beklenen sonuçları da izlenebilir. Bu, geliştirme ekiplerinin kodlama gereksinimlerini çok daha iyi bir şekilde yürütebilmeleri için genel sistem işlevlerini anlamalarına yardımcı olur.

  1. Koşul sonrası: Sistem, yapılan ödemelerle birlikte sipariş detaylarının bildirimini gönderir.

Bölüm 3 - İleri Seviye Yazılım Test Teknikleri

Negatif Testler (Negative Testing):

                

           

  1. Alana Herhangi bir harf girilir ve tuşa basılır.
  2. Alana negatif bir sayı girilir ve tuşa basılır.

    ||Yazılım testlerinde  *Pozitif* ve *Negatif* olmak üzere 2 ana strateji vardır.||

    Pozitif Testler:

   

    Negatif testler:

       

Genel negatif senaryosu örn:

Duman ve Mantıklılık Testleri (Smoke and Sanity Testing)

   

Smoke (Duman) Testing:

Sanity (Mantıklılık) Testing:

Regresyon Testleri (Regression Testing)

Regresyon test adımı seçimi sırasında dikkat edilmesi gerekenler:

  1. Kullanıcıların yoğun olarak kullanıldığı alanlar.
  2. Hata çıkan uygulama alanları.
  3. Ana fonksiyonlar.
  4. Yüksek karmaşık fonksiyonlar.
  5. Son değişikliğin yapıldığı alanlar.
  6. Önemli entegrasyonlar.    

Risk Bazlı Testler

Ürün Risk Örnekleri:

Proje Risk Örnekleri:

Yazılım testinde risk:

 ||      Öncelik sırası     ||

       

Statik Testler

Test Planlaması ve Tahminlemesi

   

Giriş ve çıkış kriterleri:

Test Eforu Tahminlemesi:

Yazılım ve Test Ortamları

   

Bölüm 4 - API (Uygulama Programlama Arayüzü) Testi

API Dokümantasyonu Okuma:

API - Postman Örnekleri:

  1. https://restful-booker.herokuapp.com/apidoc/index.html

   

        

        

Web Uygulama Testleri

Bölüm 5 - SQL İle Veritabanı (Database) Testi

Veri tabanı temelleri ve test

  1. Veritabanları
  2. Tablolar oluşturmak
  3. Sorgular yürütmek
  4. Veritabanına, verileri:

PgAdmin ve PostGreSql

Bölüm 6 - Mind Map ve Test Senaryosu