10 Adımda SDET Yazılım Test Uzmanı
Yazılım teknolojilerinin hızla geliştiği günümüz dünyasında, uygulama geliştiren her ekip, işitsel bir koruyucu kalkan gibi çalışan kalite güvence ve test uzmanlarına ihtiyaç duyar. Bu yazılım test uzmanları sadece kodları kontrol etmekle kalmaz, aynı zamanda yeni özelliklerin doğru çalışmasını ve mevcut programların güncel kalmasını sağlarlar. Böyle bir uzman olmak isteyenler için yol haritası oldukça önemlidir. İşte size, SDET yazılım test uzmanı olmak için atmanız gereken 10 önemli adım ve SDET, QA Tester ve Test Mühendisi arasındaki farklar:
İçindekiler:
1.SDET, Test Mühendisi ve QA Tester arasındaki farklar?
2. Yazılım Test Uzmanı Nasıl Olunur?
3. Software Engineer in Test Ne Demek?
4. Test Otomasyon Araçlarına Hakim Olma
5. Kalite Güvencesi ve Test Stratejilerini Anlama
6. ISTQB Foundation Level Sertifikası Yeterli Mi?
7. SDET olmak için ne gerekir?
8. SDET Uzmanının Sahip Olması Gereken En Etkili Soft Skiller
9. Yurt Dışında Yazılım Test Uzmanı Olmanın Avantajları Nedir?
10. Yazılım Test Uzmanı Nerelerde Çalışabilir?
1.SDET, Test Mühendisi ve QA Tester arasındaki farklar?
SDET, bir QA mühendisi(QA Tester), bir manuel test uzmanı ve bir test mühendisi arasındaki farkı tanımlamak istersek şöyle tanılayabiliriz:
SDET’ler, otomatik test çerçeveleri tasarlar, test senaryoları geliştirir ve yazılımın test edilebilirliğini artırmak için kod yazar. SDET çoğu zaman hem white-box hem de black-box testlerinde yer alır; düşük seviyeli birim testlerinin oluşturulmasına yardımcı olmaktan test planlama, test senaryoları oluşturma ve manuel yazılım testi gibi üst düzey faaliyetlere kadar.
SDET’ler ayrıca test otomasyon çerçeveleri ve araçları oluşturmak için onları mükemmel kaynaklar haline getiren becerilere sahiptir. Çoğu zaman geliştirme ekibinin bir parçasıdırlar. Ayrıca ekipleri için en iyi test otomasyon araçlarının seçilmesine yardımcı olan kişilerdir.
Kalite Güvence (QA) Test Uzmanı olarak görev yapan bir kişi, bir yazılım ürününün belirlenen kalite standartlarını, işlevsellik, kullanılabilirlik ve performans dahil olmak üzere sağlamaktan sorumludur. QA Test Uzmanları, test senaryolarını uygulayarak, hataları raporlayarak ve ürünün piyasaya sürülmeden önce sorunların çözüldüğünü doğrulayarak test sürecine katılırlar.
“QA Tester” teriminin Google’da aranma sayısına ilişkin artışı grafikte görebilirsiniz:
Agile, Continuous Testing, DevOps’un büyümesiyle birlikte, Yazılım Test Uzmanının (SDET) rolü artıyor. (Kaynak: google trends)
Otomatik test araçlarını kullanmalarına rağmen, genellikle hataları tespit etmek ve kullanıcı deneyimini sorunsuz hale getirmek için manuel testler gerçekleştirirler. QA Tester, yazılım geliştirme sürecinde sorunları tanımlamak ve ele almak için genellikle geliştirme ekibi, test mühendisleri ve diğer paydaşlarla yakın işbirliği içinde çalışırlar.
Bir test mühendisi, yazılım ürünlerinin işlevselliğini, performansını, güvenliğini ve diğer özelliklerini değerlendirmeye odaklanan önemli bir role sahiptir. Bu rol, test planlarını, senaryolarını ve komut dosyalarını manuel olarak veya otomatik araçlarla oluşturarak ve uygulayarak şekillendirilir.
Manuel test uzmanı, yazılımın kullanıcı açısından doğru çalışıp çalışmadığını kontrol etmek için çeşitli senaryolar altında manuel olarak testler gerçekleştirir. Bu süreçte, potansiyel hataları, sorunları ve yazılımdaki eksiklikleri tespit eder ve iyileştirmeler için raporlar hazırlar. Manuel test uzmanı, aynı zamanda test senaryoları ve test planları oluşturma, uygulama ve sonuçları analiz etme gibi görevleri de yerine getirir.
Rol | Birincil Görevi | Temel Sorumluluklar | Otomasyon/Manuel |
SDET | Yazılım Geliştirme ve Test | – Otomatik test çerçeveleri geliştirmek – Test senaryoları tasarlamak ve uygulamak – Yazılımın test edilebilirliğini artırmak | Otomasyon |
Test Engineer | Yazılım ürününün çeşitli yönlerinin test edilmesi | – Test planları, senaryoları ve betikleri tasarlama ve yürütme – Yazılım hatalarını belirleme ve raporlama – Test alanlarında uzmanlaşma | Her İkisi |
QA Tester | Yazılım ürününün kalite standartlarını karşılamasını sağlamak | – Test senaryolarını yürütme – Hataları raporlama – Sorunların çözüldüğünü doğrulama – Geliştirme ekibiyle işbirliği yapma | Manuel |
2. Yazılım Test Uzmanı Nasıl Olunur?
SDET olmak için öncelikle yazılım mühendisliği alanında yeterli eğitim almak gerekmektedir. Bununla birlikte test süreçlerini, test senaryolarını ve otomasyon tekniklerini öğrenmek oldukça faydalı olacaktır. İşte Yazılım Test Uzmanlarının eğitim bilgileri ve çalıştıkları alanlar hakkında istatistikler (Kaynak: kariyer.net) için aşağıdaki tablolar incelenebilir:
Mezun Oldukları İlk 5 Üniversite
Anadolu Üniversitesi |
İstanbul Üniversitesi (İÜ) |
Sakarya Üniversitesi |
Marmara Üniversitesi |
Kocaeli Üniversitesi |
Mezun Oldukları İlk 5 Bölüm
Bilgisayar Mühendisliği | 11.37 % |
İşletme | 9.20 % |
Yönetim Bilişim Sistemleri | 8.23 % |
Bilgisayar Programcılığı | 7.85 % |
Bilgisayar Teknolojisi ve Programlama | 5.61 % |
Çalıştıkları İlk 5 Sektör
Bilişim | 22.28 % |
Yazılım | 18.31 % |
Bankacılık | 8.64 % |
Telekomünikasyon | 7.94 % |
.Elektrik & Elektronik | 2.59 % |
Çalıştıkları İlk 5 Departman
AR-GE | 25.30 % |
Bilgi İşlem | 17.17 % |
Mühendislik | 8.13 % |
İş Geliştirme | 5.42 % |
Finans | 5.12 % |
Eğitim Durumu
Üniversite Mezunu | %60 |
Meslek Yüksekokulu Mezunu | %10 |
Yüksek Lisans Mezunu | %20 |
Doktora Mezunu | %5 |
Diğer | %5 |
3. Software Engineer in Test Ne Demek?
Software Engineer in Test (SET) ya da Test Mühendisi, yazılım kalitesi için geliştirmelerde bulunan ve aynı zamanda test otomasyonu konusunda deneyime sahip bir pozisyondur. Geliştirme ve test süreçleri arasında köprü görevi görürler.
4. Test Otomasyon Araçlarına Hakim Olma
SDET’lerin temel yeteneklerinden biri, test otomasyonu araçlarını kullanarak test senaryolarını geliştirebilmektir. Bu bağlamda Selenium, Appium, JUnit, NUnit, TestNG gibi popüler araçları iyi bir şekilde öğrenmeli ve kullanmayı alışkanlık haline getirmelisiniz.
- 1. Selenium WebDriver:
- Web uygulamalarının test otomasyonu için en yaygın kullanılan araçlardan biridir.
- Çeşitli programlama dilleriyle (Java, Python, C#, vb.) uyumlu olmasıyla bilinir.
- Geniş bir topluluğa ve dökümantasyona sahiptir.
- 2. Appium:
- Mobil uygulamaların test otomasyonu için popüler bir açık kaynak aracıdır.
- Android ve iOS platformları için destek sunar.
- Selenium WebDriver protokolünü kullanarak testlerin yazılmasını sağlar.
- 3.Cypress:
- Modern web uygulamaları için test otomasyonu yapmak için kullanılan bir araçtır.
- End-to-end (E2E) testler, entegrasyon testleri ve birim testleri yazmayı kolaylaştırır.
- İçinde barındırdığı özelliklerle, hızlı ve güvenilir testler sağlar.
- 4. Jenkins:
- Sürekli entegrasyon ve sürekli dağıtım süreçlerini otomatize etmek için kullanılan bir araçtır.
- Birçok test otomasyon aracıyla entegrasyon sağlar.
- Büyük bir topluluğa ve geniş bir eklenti desteğine sahiptir.
- 5. Robot Framework:
- Genel amaçlı bir test otomasyon aracıdır.
- Kolay okunabilirlik ve yazılabilirlik sunar.
- Çeşitli kütüphaneler ve eklentilerle genişletilebilir.
- 6. TestNG:
- Java tabanlı bir test çerçevesidir.
- Özellikle Java tabanlı test projeleri için yaygın olarak kullanılır.
- Test raporlama, paralel test çalıştırma ve gruplama gibi özellikler sunar.
5. Kalite Güvencesi ve Test Stratejilerini Anlama
Kalite güvencesi ve test stratejileri, yazılım geliştirme sürecinin ayrılmaz bir parçasıdır. Bu stratejiler, yazılımın talep edilen standartlara ve kullanıcı beklentilerine uygun olarak teslim edilmesini sağlar. İşte kalite güvencesi ve test stratejilerini anlama konusunda bazı kritik noktalar:
● Kalite Güvencesi (KG) Nedir?
Kalite Güvencesi, yazılımın kalite standartlarına uygunluğunu sağlamak için uygulanan bir dizi prosedür ve yöntemdir. KG, yazılımın tasarım, geliştirme ve teslimat aşamalarında kalitenin korunmasını hedefler.
● Test Stratejileri Ne Anlama Gelir?
Test stratejileri, yazılım test süreçlerini planlama ve yönetme yaklaşımını ifade eder. Bu stratejiler, hangi testlerin ne zaman ve nasıl yapılacağını belirler. Test senaryolarının önceliklendirilmesi, test kapsamının tanımlanması ve test süreçlerinin nasıl yürütüleceği bu stratejilere dahildir.
● Test Türleri
Otomasyon testi, yük testi, performans testi ve stres testi gibi çeşitli test türleri, çok kullanıcı gerektiren durumlar ve tekrarlı test senaryoları için önemlidir. Fonksiyonel olmayan testler ise kullanılabilirlik, güvenlik ve güvenilirlik gibi yazılımın fonksiyonel olmayan yönlerini değerlendirir.
● Test Planlaması ve Yönetimi
Test planlaması, test kapsamını, hedeflerini, kaynakları ve zamanlamayı içerir. Etkili bir test yönetimi, projenin başarısında kritik bir role sahiptir ve yazılımın gereksinimlere uygunluğunu garantiler.
● Kalite Güvence Yöntemleri ve Teknikleri
Kalite Güvence ve Gözden Geçirme Teknikleri, Hata Önleme ve Kaldırma, Test Stratejileri, Konvansiyonel ve Nesneye Yönelik Uygulama Tekniklerini Test Etme gibi yöntemler, yazılımın kalitesini artırmada kullanılır.
6. ISTQB Foundation Level Sertifikası Yeterli Mi?
International Software Testing Qualifications Board (ISTQB) tarafından sunulan Foundation Level sertifikası, test uzmanları için işe alım sürecinde önemli bir kanıttır. Ancak gerçek anlamda bir SDET uzmanı olabilmek için ISTQB sertifikası tek başına yeterli değildir, temel bilgilerinizin çok ötesine geçmiş olmanız gerekmektedir.
Türkiye’de ve yurtdışında Kalite Güvencesi (QA) pozisyonları için ISTQB sertifikası şartı her şirkete göre değişmektedir. Özellikle Avrupa’da software testing alanında iş arıyorsanız, bu sertifikayı almanızda fayda var.
Yurtdışında ise durum biraz daha esneklik göstermektedir; çeşitli şirketler ve organizasyonlar, QA rolü için ISTQB sertifikasını bir avantaj olarak görebilmektedir. ABD’de ise çoğunlukla bu şart aranmamaktadır. LinkedIn’de paylaşılan bir makalede, sertifikanın gerekli olup olmadığı şirketten şirkete değişiklik gösterebileceği, ancak birçok şirketin test uzmanının sertifikalı olmasını zorunlu tutmadığı belirtilmiştir (“Nailing ISTQB exam with 85% score“, LinkedIn).
7. SDET olmak için ne gerekir?
Software Development Engineer in Test (SDET) olmak isteyenlerin sahip olması gereken bir dizi beceri ve nitelik bulunmaktadır. Bu rol, yazılım geliştirme ve test süreçleri arasında köprü görevi görür ve bu nedenle adayların hem teknik hem de bazı temel olmayan becerilere sahip olmaları beklenir. İşte SDET olmak için gerekli bazı temel gereksinimler ve beceriler:
Eğitim
- Bilgisayar Bilimi veya İlgili Alanlarda Lisans Derecesi: SDET pozisyonu için genellikle bilgisayar bilimi, bilgisayar mühendisliği veya benzeri alanlarda bir lisans derecesi gereklidir. Bu eğitim, adaylara yazılım geliştirme ve test etme konularında geniş bir bilgi ve anlayış sağlar.
Teknik Beceriler
- Programlama Dillerinde Uzmanlık: SDETs’in, Java, C#, .NET gibi yaygın programlama dillerinde güçlü bir bilgiye ve tecrübeye sahip olmaları beklenir.
- Otomasyon Araçları ve Çerçeveleri: Yazılım test otomasyonu, SDET pozisyonunun önemli bir parçasıdır. Selenium, Appium, TestNG gibi popüler otomasyon araçları ve çerçeveleri hakkında bilgi sahibi olmak önemlidir.
- Yazılım Geliştirme Yaşam Döngüsü (SDLC) ve Yazılım Test Yaşam Döngüsü (STLC): SDETs, SDLC ve STLC’nin her aşamasını derinlemesine anlamalı ve bu süreçlerde etkili olmalıdır.
- DevOps ve Agile Metodolojileri: Agile ve DevOps uygulamaları ile deneyim, SDET’ler için giderek daha önemli hale gelmektedir. Bu metodolojiler, yazılım geliştirme ve test süreçlerinin daha verimli ve etkili yönetilmesini sağlar.
Temel Olmayan Beceriler
- İletişim: SDETs, geliştiriciler, kalite güvence ekipleri ve diğer ilgili paydaşlarla etkili bir şekilde iletişim kurabilmelidir. Teknik bilgileri anlaşılır bir şekilde aktarma yeteneği önemlidir.
- Problem Çözme: Yazılım geliştirme ve test süreçlerinde ortaya çıkan problemleri tanımlama ve çözme yeteneği, SDET’ler için kritik öneme sahiptir.
- Takım Çalışması: SDETs genellikle çapraz fonksiyonel ekiplerin bir parçası olarak çalışır. Bu nedenle, etkili takım çalışması becerilerine sahip olmak bu rol için önemlidir.
SDET pozisyonu, yazılım kalitesini artırmada kritik bir role sahiptir ve bu alanda başarılı olmak için yukarıda belirtilen beceri ve niteliklere sahip olmak gerekir.
Peki yazılım uzmanı olmak için üniversite şart mı?
Yazılım uzmanı olmak için üniversite eğitimi şart değildir; önemli olan, yazılım becerilerini ve bilgisini geliştirmektir. Ancak, bazı pozisyonlar ve şirketler için üniversite diploması tercih sebebi olabilir. (ne yazık ki, bu uzmanlık yüksek öğretim kurumlarında öğretilmiyor).
Üniversite okumadan SDET olmak için IT kursları veren uluslarlarası şirketlerde çevrimiçi eğitim kursu alabilir ve/veya çeşitli şirketlere staj için başvuru yapabilirsiniz. İngilizce ana diliniz değilse, İngilizce dil becerilerinizi artırın: BT şirketleri işe alırken İngilizce bilen adayları tercih eder.
Udemy, Coursera, edX gibi çevrim içi öğrenme platformlarında eğitim alarak kendinizi geliştirebilirsiniz. Wise Quarter gibi yoğun eğitim kampları da bu uzmanlık alanında hizmet vermektedir. Bu kamplarda(bootcamp) 7 ay süren kapsamlı ve uygulamalı bir eğitim alırsınız. En güzel yanı ise gerçek projelerde çalışıp kendinize güvenebileceğiniz bir tecrübe kazanmanızdır. Eğitim boyunca yardımcı mentorler sizlerle birebir ilgilenip, piyasada iş bulmanıza yardımcı olacak bağlantılar sağlarlar. Eğitim sonunda en az 2 yıllık iş tecrübesine sahip olursunuz, böylece rakipleriniz arasında öne geçeceksiniz.
Wise Quarter 4×4’lük Full Stack Software Developer in Test kursu ile alabileceğiniz Modüller şunlardır:
– Manuel Testing
– UI Test Otomasyonu
– Backend Test Otomasyonu
– Mobile Test Otomasyonu
8. SDET Uzmanının Sahip Olması Gereken En Etkili Soft Skiller
Teknik bilgilerinizin yanı sıra, iletişim becerileriniz ve problem çözme yeteneğiniz de oldukça önemlidir. Ekip içinde sorumluluk alabilme, liderlik kabiliyetleri ve sürekli öğrenme isteği, sizi fark yaratan bir test uzmanı yapacaktır. Bir QA Uzmanının sahip olması gereken en etkili soft skiller şunlardır :
- İletişim Becerileri
- Takım Çalışması
- Problem Çözme
- Detaylara Dikkat
- Zaman Yönetimi
- Yeni Teknolojileri ve Yaklaşımları Öğrenme
- Sabır ve Dayanıklılık
9. Yurt Dışında Yazılım Test Uzmanı Olmanın Avantajları Nedir?
- Yüksek Maaş ve Yaşam Standartları
- Uluslararası Ağ Kurma
- Kariyer Fırsatlarının Genişlemesi
- Dil Becerilerinin Geliştirilmesi
- Yeni Kültürleri Keşfetme
10. Yazılım Test Uzmanı Nerelerde Çalışabilir?
- Teknoloji Şirketleri (BT / IT Şirketleri)
- Finans Sektörü
- Sağlık Sektörü
- Eğitim Sektörü
- Oyun Endüstrisi
- Hükümet ve Kamu Hizmetleri
- Telekomünikasyon
- Perakende ve E-Ticaret
- Otomotiv Sektörü
- Savunma ve Güvenlik