• Buradasın

    Yazılım Test Süreci ve Test Türleri Eğitim Sunumu

    youtube.com/watch?v=nZew3xfZwGI

    Yapay zekadan makale özeti

    • Bu video, Microsoft'ta yaklaşık 3,5 yıldır çalışan saha mühendisi Duygu Silivri'nin sunduğu bir eğitim sunumudur. Sunum, yazılım test süreci ve farklı test türleri hakkında kapsamlı bilgiler içermektedir.
    • Video, yazılım geliştirme sürecinde testin önemi ile başlayıp, testin kim tarafından yapılacağı, ne zaman yapılacağı ve hangi aşamada yapılacağı konularını ele almaktadır. Ardından beş farklı test tipi detaylı olarak incelenmektedir: unit testing, UI testing, code UI testing, web performans test ve load test. Her bir test türünün ne zaman ve nasıl kullanılacağı, testlerin otomatikleştirilmesi ve performans değerlerinin nasıl değerlendirileceği konuları Visual Studio üzerinden gösterilmektedir.
    • Sunumda ayrıca TFS ve Visual Studio ürünlerinin test sürecindeki rolü, test planlarının nasıl oluşturulacağı, test senaryolarının nasıl yazılacağı ve testlerin ideal bir akış içinde nasıl uygulanması gerektiği (develog, build, deploy, test) konuları da ele alınmaktadır. Video, soru-cevap bölümüyle sonlanmaktadır.
    00:13Testin Önemi
    • Duygu Silivri, saha mühendisi olarak çalışmakta ve yaklaşık 3,5 yıldır Microsoft'ta görev yapmaktadır.
    • Testing, yazılım süreçlerinin üvey evladıdır ve yazılımcılar genellikle "yazdım çalışıyor, denedim de alalım" mantığıyla yaklaşırlar.
    • Murphy kuralları devreye girer ve kodlar test ortamına veya production'a atıldığında genellikle hatalar çıkar.
    01:43Yazılım Projesi Süreci
    • Normal bir yazılım projesinde talep gelir, tasarım yapılır, yazım yapılır ve kodlar test ortamına veya production'a diplo edilir.
    • Tasarım aşamasında veya istek okurken bulunan sorunlar daha kolay çözülebilir, ancak production'da fark edilen sorunlar büyük sıkıntılara yol açabilir.
    • Banka örneğinde, kullanıcıların production'da para kaybı gibi sorunları fark etmesi büyük bir sorun oluşturabilir.
    03:56Test Yapmanın Önemi
    • Test yapmanın amacı, production'da ortaya çıkabilecek sorunları önlemektir.
    • Testi kimin yapacağı, ne zaman yapacağı ve hangi aşamada yapılacağı, çalışılan organizasyon yapısına ve proje yönetim metodolojisine göre değişir.
    • Test tipleri arasında yazılımcıların yapması gereken testler, kullanıcıların yapması gereken testler ve otomasyon olarak çalışması gereken testler bulunmaktadır.
    05:32UI Testing
    • UI testing (black box testing), son kullanıcının kodun teknik detaylarını bilmeden sadece arayüzü kullanarak yaptığı testtir.
    • Kurumsal hayatta düzgün işleyen bir süreçte, yazılımcı requirement'ları aldıktan sonra kodunu yazıp test ortamına diplo eder.
    • Testler başarılı olduğunda production'a diplo edilir.
    06:53Microsoft'un Test Ürünleri
    • Microsoft'un test için kullandığı ürünler TFS (source repository, proje yönetim, test, build otomasyonu ve deployment otomasyonu) ve Visual Studio'dur.
    • TFS, yazılım sürecinin ihtiyaç duyduğu tüm fonksiyonaliteleri karşılar.
    • Testlerin planlanması önemlidir, aksi takdirde her seferinde tekrar yapılması gerekir ve başka birine devrettiğinde ne yapacağını bilmeyebilir.
    09:05Test Planlaması ve Uygulama
    • Test planlaması, belirli sprintler içinde test rolündeki insanların hangi testleri yapacaklarını planladıkları bir süreçtir.
    • Test planında test case'ler (test senaryoları) oluşturulur ve test adımları, beklenen sonuçlar belirtilir.
    • Manuel testlerde, test rolündeki kişi adımları adım adım uygular, başarılıysa işaretlenir, hata alıyorsa yazılımcıya bug açılır.
    13:40Test Araçları ve Türleri
    • Testler için web arayüzü kullanılmış, ancak Microsoft'un Visual Studio ile gelen Microsoft Test Manager (MTM) da testlerin planlanması, koşulması ve raporlanması için kullanılan bir araçtır.
    • Unit testing, yazılımcının kendi kodunu test edebilmek için yazdığı kod parçasıdır ve kullanıcı veya arayüz olmadan yazılımcının kendi ortamında yapılan bir test tipidir.
    • UI testing ise kullanıcıların kodun detayını bilmeden blackbox şekilde user interface'i kullandıkları test tipidir.
    15:27Unit Testing'in Önemi
    • Unit testing, sorunları development aşamasında erken bulmayı sağlar ve bu sayede hiç kimsenin karşısına çıkmadan sorunları tespit edebilirsiniz.
    • Otomatik hale getirilen unit testler, kod değişikliklerinin mevcut akışı bozup bozmadığını daha erken safhada tespit edebilir.
    • UI testing sadece ön yüzden yapılabildiği kadar var ve tekrarlanamayacağı için arka taraftaki yanlışlıklar kullanıcılar tarafından fark edilmeyebilir.
    18:50Unit Testing'in Yapısı
    • Unit testing üç aşamadan oluşur: arrange (hazırlıklar), act (test edilen fonksiyonaliteyi çalıştırma) ve assert (test sonuçlarının kontrolü).
    • Microsoft'un MS Test dışında piyasada birçok benzer syntax'a sahip unit testing framework'ü bulunmaktadır.
    • Klasik unit test akışında önce kod yazılır sonra test yazılır, ancak TDD (Test Driven Development) yaklaşımında önce test yazılır, sonra kod yazılır.
    21:25TDD Yaklaşımı
    • TDD yaklaşımında test senaryolarını düşünerek daha detaylı requirement'lar elde edilir ve daha doğru çalışan kodlar yazılır.
    • TDD'de red-write-refactor cycle adı verilen bir döngü vardır: önce test yazılır, sonra testleri karşılayacak kod yazılır, sonra kod düzenlenir ve bu döngü sürekli devam eder.
    • Visual Studio'da web projesi oluştururken "Add Unit Test" seçeneği ile aynı solution altında kod projesi ve unit test projesi oluşturulabilir.
    24:05Unit Test Yapısı
    • Web uygulaması kodları tek bir çözüm altında, altında unit test projesi bulunuyor.
    • Controller altında hesaplar sayfası, anasayfa ve yönetim sayfası (admin sayfası) gibi üç class bulunuyor.
    • Unit testlerin altında HomeController için test projesi ve test class'ı oluşturulmuş, her fonksiyon için ayrı unit test oluşturulmuş.
    24:47Unit Test Çalıştırma
    • Her unit test'te arrange, act, assort olmak üzere üç aşama bulunuyor.
    • Test Explorer'da Visual Studio'nun içerisinde üç test çalıştırılıyor ve hepsi başarılı bir şekilde çalışıyor.
    • Unit test, UI testin yerine geçmez, tamamen UI testing ile birlikte yapılması gereken bir test tipi.
    26:54Code UI Testing
    • Uygulamada yapılan küçük değişiklikler bile tüm testleri bozabilir, bu nedenle testlerin sürekli koşulması gerekir.
    • Microsoft'un teknolojisi olan Code UI Testing, user interface üzerinden yapılan hareketleri kaydetmeyi sağlar.
    • MTM kullanarak yapılan hareketler kaydedilir ve bu action recording'i açarak Code UI projesi oluşturulabilir.
    27:41Code UI Testlerin Avantajları
    • Code UI projesi, user interface üzerinde yapılan hareketlerin .NET koduna dökülmesini sağlar.
    • Bu .NET kodu uygulamanın üzerinde hareketler yapabilir ve textbox'a girilebilir.
    • Code UI testler insan kaynağına gerek kalmadan her gece veya istenilen sıklıkla çalıştırılabilir.
    28:41Test Türleri ve Performans Testleri
    • Unit testler yazılım aşamasında, UI testler test aşamasında, Code UI testler ise ikisinin arasında iki taraftan da beslenen bir test tipi.
    • Performans testing, uygulamanın doğru çalışıp çalışmadığını değil, performanslı çalışıp çalışmadığını test eder.
    • Her kurumun veya uygulama geliştiricisinin kendi uygulamasıyla ilgili bir base line'ı olması gerekir.
    30:42Performans Testi Oluşturma
    • Visual Studio'dan test altından web performans testi seçilerek performans testi oluşturulabilir.
    • Bu test, internet explorer üzerinde çağrılan sayfaların, yapılan requestlerin ve gelen response'ların kaydını tutar.
    • Test sırasında yapılan istekler ve response'lar kaydedildikten sonra, dinamik olarak oluşan parametrelerin listesi çıkartılır ve bir proje oluşturulur.
    32:33Web Performans Testi
    • Web performans testinde gönderilen request'lerin detayları ve response'ları görüntülenebilir.
    • Testler otomatik olarak çalıştırılarak web uygulamasının performansı ve düzgün çalışıp çalışmadığı raporlanabilir.
    33:23Load Test Nedir?
    • Load test, gerçek ortamda sistem üzerine gelecek olan yükü önceden simüle etmeyi sağlar.
    • Bir uygulama tek başına iyi performans gösterse de, aynı anda çok sayıda kullanıcı yüklendiğinde performansı düşebilir.
    • Galatasaray-Fenerbahçe maç bilet satışları veya konser bilet satışları gibi durumlarda, iyi planlama yapılmazsa sistem çökebilir.
    34:39Load Test Nasıl Yapılır?
    • Load test, Visual Studio kullanılarak web test senaryoları kullanılarak ve yük miktarı seçilerek yapılır.
    • Tek bir makineden çok sayıda kullanıcı simülasyonu yapılamaz, bu nedenle şirket içindeki yüzlerce server veya Azure'daki Visual Studio Team Services kullanılabilir.
    • Load test sırasında düşünme süreleri, aynı anda yük bindirilecek kişi sayısı ve çalıştırılacak senaryo sayısı gibi parametreler ayarlanabilir.
    38:13Test Akışı
    • Beş farklı test tipi (unit testing, UI testing, code UI testing, performans test ve load test) için ideal bir test akışı vardır.
    • İdeal senaryoda develog, build, deploy ve test adımları otomatik olarak gerçekleşir.
    • Gece çalışan testler sayesinde sabah gelen yazılımcılar, dün yazdıkları kodun hata alıp almadığını, compile olup olmadığını ve testlerin başarılı olup olmadığını görebilirler.

    Yanıtı değerlendir

  • Yazeka sinir ağı makaleleri veya videoları özetliyor