YAZILIM TESTİ KARİYER REHBERİ

Bu rehberde size yazılım testinin tüm ayrıntıları anlatılacaktır. Eğer yazılım testi üzerine kariyer yapmayı planlıyorsanız, bu rehberi kesinlikle okumalısınız.

YAZILIM TESTİ NEDİR?

Yazılım testi, bir bilgisayar sistemi veya programının, belirlenmiş gereksinimleri yerine getirip getirmediğine ve arzu edilen sonucun üretilip üretilmediğine karar vermek için uygulanan doğrulama sürecidir. Sonuç olarak, yazılım ürünü veya projesindeki hataları saptamaktır.

Yazılım testi, sorunsuz/hatasız ve kaliteli bir ürün geliştirmek için vazgeçilmez bir süreçtir.

YAZILIM TEST UZMANI OLMAK İÇİN GEREKLİ BECERİLER

Aşağıda, iyi bir Yazılım Test Uzmanı olabilmek için gerekli Teknik ve Teknik-Olmayan becerilerden bahsedeceğiz.

Teknik-Olmayan Beceriler

Yazılım test etmenin gerçekten size uygun bir iş olup olmadığını belirlemek için aşağıdaki beceri setiyle kendi sahip olduğunuz becerileri kıyaslayabilirsiniz.
  • Analitik Beceri: Daha iyi bir anlayış kazanmak ve test sernaryolarını oluşturmak için karmaşık bir yazılım sistemini daha küçük birimlere ayırmaya yardımcı olur. İyi analitik becerilere sahip olduğunuzdan emin değilseniz, bu bağlantıdan (Link yakında aktif olacak.) kendinizi ölçebilirsiniz. Eğer en az BİR problemi çözerseniz, harika analitik becerilere sahipsiniz demektir.
  • İletişim Becerileri: İyi bir Yazılım Test Uzmanı iyi derecede sözlü ve yazılı iletişim yeteneklerine sahip olmalıdır. Oluşturduğu test dökümanlarının (test senaryoları/planları, test stratejileri, hata raporları gibi) kolay okunabilir ve kolay algılanabilir olmalıdır. Geliştiricilerle birlikte iş yapılacağından dolayı, süreç bir takım tedbiri ve diplomasiyi gerektirir.
  • Zaman Yönetimi & Organizasyon becerileri: Özellikle kodun sürümü sırasında, test işi zorlu olabilir. Yazılım Test Uzmanı iş yükünü verimli bir şekilde yönetmeli, yüksek üretkenliğe sahip olmalı, en optimize bir şekilde zaman yönetimi ve organizasyon becerilerini göstermelidir.
  • Yaklaşım: Yaklaşımınızın, bozmaya yönelik test anlayışı ve detay yönelimli, öğrenmeye ve süreç iyileştirmeye hevesli olması gereklidir. Yazılım dünyasında teknolojiler çok büyük bir hızla geliyor ve iyi bir yazılım test uzmanı teknik becerilerini değişen teknolojilere uyumlu bir şekilde yükseltmelidir. Tutumunuz, belirli bir bağımsızlığı da yansıtmalıdır. Bu bağımsızlık, size ayrılan görevi sahiplenmenizi ve pek de doğrudan bir denetim/gözetim/yardım olmaksızın onu tamamlamanızı kapsar.
  • Hırs/Tutku: Herhangi bir işte ya da meslekte üstün olabilmek için, önemli derecede hırs ve tutkuya ihtiyacınız vardır. İyi bir Yazılım Test Uzmanı kendi alanı için de bu tutkuya sahip olmalıdır. Fakat önce şu soruyu sormalıyız: Daha önce hiç yazılım testi yapmamış biri, nasıl bu iş için tutkusu olup olmadığını anlayabilir? Cevap basit: DENEyerek! Eğer denediğin zaman bu iş seni heyecanlandırmıyorsa, en kısa zamanda ilgini çekecek başka bir alana yönelmende fayda var demektir.


Teknik Beceriler

  • Temel Veritabanı/SQL Bilgisi: Yazılım sistemleri arka planda büyük miktarda veriye sahiptir. Bu veri Backend’de Oracle/MySQL gibi farklı veritabanı türlerinde depolanır. Dolayısıyla, bu verilerin doğrulanması gereken durumlar olacaktır. Basit/karmaşık SQL sorguları, backend veritabanında uygun verinin depolanıp depolanmadığını kontrol etmek için kullanılabilir.
  • Temel Linux Komutları Bilgisi: Web hizmetleri, Veritabanları, Uygulama Sunucuları gibi çoğu yazılım uygulamaları Linux makinelerinde uygulanır. Bu yüzden Linux komutlarıyla ilgili bilgi sahibi olmak önemlidir.
  • Bir Test Yönetimi Aracının Bilgisi ve Pratik Deneyimi: Test Yönetimi yazılım testinin önemli bir parçasıdır. Doğru test yönetim teknikleri olmadan, yazılım test süreci başarısız olacaktır. Test yönetimi, adından da anlaşılacağı üzere test ile ilgili yapılan işleri yönetmektir. Örneğin, Testlink gibi bir araç, ekibiniz tarafından yazılan tüm test senaryolarını takip etmek için kullanılabilir. Piyasada Test Yönetimi için kullanılabilecek başka araçlar da mevcuttur. Bu nedenle, çoğu şirkette kullanıldığından dolayı, bu tür araçlar hakkında bilgi ve deneyim sahibi olmak önemlidir.
  • Bir Hata Takip Aracının Bilgisi ve Pratik Deneyimi: Hata Takibi ve Hata yaşam döngüsü yazılım testinin önemli unsurlarındandır. Hataları düzgün bir şekilde yönetmek ve onları sistematik bir şekilde takip etmek son derece kritiktir. Yöneticiler, geliştiriciler ve test uzmanları dahil olmak üzere tüm ekip, hata hakkında bilgi sahibi olması gerektiğinden, hata takibi gereklidir. Hataları çözüme kavuşturmak için QC, Bugzilla, Jira gibi çeşitli araçlar kullanılır.
  • Bir Otomasyon Aracının Bilgisi ve Pratik Deneyimi: Manuel test uzmanı olarak birkaç yıl çalıştıktan sonra kendinizi “Otomasyon Test Uzmanı” olarak görmek isterseniz, ki süreç o yöne doğru sizi götürecektir, o zaman otomasyon araçları hakkında ayrıntılı bilgi edinmeniz ve bir otomasyon aracı üzerine uzmanlaşmanız gerekir.
Not: Bir otomasyon aracı üzerine edindiğiniz teorik bilgi, mülakatı geçmek için yeterli değildir, iyi bir pratik deneyime sahip olmak zorundasınız. Bu nedenle, seçtiğiniz ve uzmanlık kazanmak istediğiniz araç üzerine bol bol pratik yapmanız gerekir. Eğer otomasyon üzerine bir iş arıyorsanız; VBScript, JavaScript, C#, Shell/Perl gibi herhangi bir kod dili bilgisine sahip olmanız gerekir.

Performans testi araçları için de bir çok faaliyet alanı vardır. Çünkü uygulamaların fonksiyonel olmayan bir test tipi olan performans için de test edilmeye ihtiyacı vardır.

Yukarıda listelenen TÜM teknik becerilere ihtiyacınız olmadığını lütfen unutmayın. Gerekli teknik beceriler İş Rolü’ne ve şirket süreçlerine göre değişebilir.

Akademik Altyapı

Bir yazılım test uzmanının akademik altyapısı bilgisayar bilimi üzerine veya içerisinde bilgisayar bilimi eğitimi içeren bir mühendislik veya bilim dalı olmalıdır.

Eğer bunlardan birine sahip değilseniz, yazılım geliştirme/test yaşam döngüsü ve diğer test yöntemlerini öğrenmenize yardımcı olan ISTQB ve CSTE gibi bir yazılım sertifikasyonunu tamamlamanız faydanıza olacaktır.

Tipik İş Günü

Yazılım Test Uzmanı'nın tipik bir çalışma gününde, gereksinim dökümanlarını anlamak, test senaryolarını oluşturmak, test senaryolarını çalıştırmak, raporlamak, hataları tekrar test etmek, gözden geçirme toplantılarına ve diğer ekip faaliyetlerine katılmakla meşgul olacaksınız.

Kariyer Yolu

CMMI seviyesi 5 olan bir şirkette bir yazılım test uzmanı olarak (QA Analisti) kariyer ilerlemeniz aşağıdaki gibi görünecek, ancak şirketten şirkete farklılık gösterecektir.

QA Analisti (Yeni) => Sr QA Analisti (2-3 yıllık deneyim) => QA Takım Koordinatörü (5-6 yıllık deneyim> => Test Yöneticisi (8-11 yıllık deneyim) => Kıdemli Test Yöneticisi ( 14+ deneyim)

Bir Yazılım Test Uzmanı Olarak Alternatif Kariyer Yolları

Manuel testte uzmanlaştıktan sonra, aşağıdaki uzmanlık alanlarını takip edebilirsiniz:
  • Otomasyon Testi: Bir Otomasyon Test Uzmanı olarak, aksi takdirde çok zaman alan manuel test senaryolarının otomasyonundan sorumlu olursunuz.
  • Performans Testi: Bir performans testi uzmanı olarak, uygulamanın tepki verme durumunu kontrol etmekten sorumlu olursunuz. Kullanılan araçlar: WEBLoad, Loadrunner vb.
  • İş Analisti: Test uzmanlarının geliştiricilere göre en önemli avantajı, test uzmanlarının uçtan uca iş bilgisine sahip olmalarıdır. Test uzmanları için en belirgin kariyer yolu, İş Analisti olmaktır. Bir iş analisti olarak, şirketinizin iş modelini ve iş akışlarını analiz etmek ve değerlendirmekle, ayrıca bu modelleri ve iş akışlarını teknoloji ile bütünleştirmekten sorumlu olursunuz. 

Yaygın Mitler

Geliştiricilere, yazılım test uzmanlarına göre çok daha saygılı davranıyorlar.
Popüler inancın aksine, Yazılım Test Uzmanları (daha çok QA profesyonelleri olarak bilinir.) tüm “gelecek vadeden” şirketlerde Yazılım Geliştiricileriyle eşit olarak değerlendirilir ve eşit ücretlere sahiptir. Yazılım testi üzerine bir kariyer asla “ikinci derece” olarak değerlendirilmemelidir.
Yazılım test etmek sıkıcıdır.
Yazılım test etmek aslında sinirlerinizi test edebilir. Çünkü İş Gereksinimlerini anlamanız ve buna göre test senaryo taslağının hazırlanması gerekir. Yazılım test etmek sıkıcı değildir. Sıkıcı olan aynı şeyi tekrar tekrar yapmaktır. Anahtar ise yeni şeyler denemektir.

Tamam, ilgileniyorum, nereden başlamalıyım?

Yeni başlayanlar için Yazılım Testi öğrenimi ile ilgili önerilen yaklaşım aşağıda belirtilmiştir:


Öncelikle Yazılım Testinin Temel İlkelerini öğrenmeye başlayabilirsiniz. Bir kere bittiğinde serbest işlere (freelance jobs) başvuruda bulunabilirsiniz. Bu, pratik bilgi edinmenize yardımcı olacak ve öğrendiğiniz test kavramlarını güçlendirecektir.

Sonra Selenyum - Otomasyon aracı, daha sonra Jmeter - Performans Test aracı ve son olarak TestLink - Test Yönetim Aracı'na geçersiniz. Öğrenirken, serbest işlere başvurmanızı öneririz (Diğer avantajlardan ayrı olarak biraz para da kazanacaksınız). Teorik ile pratik birbirini besleyen unsurlardır.

Sertifika Sınavları

ISTQB Temel seviyesi, Test alanında temel sertifikadır.

Zorunlu değildir, ancak işe başlama şansınızı artıracaktır.

ISTQB'ye sahip bir Yazılım Test Uzmanı, diğerlerine kıyasla daha fazla öneme sahip olacaktır.

Büyük şirketlere iş için başvuruda bulunduğunuzda, sunabileceğiniz bir çok beceriniz olacaktır. 
Çünkü serbest iş (freelance) deneyiminizi sunabileceksiniz ve bu da seçilme şansınızı artıracaktır.

Ayrıca tabi ki, seçtiğiniz bir test aracı için de sertifika arayabilirsiniz.

~~~~~~~~~~O~~~~~~~~~~

Referanslar
Turkish Testing Board
Guru99

Yorumlar

Bu blogdaki popüler yayınlar

Yazılım Geliştirme ve Testi Yaşam Döngüleri

Testin 7 Temel İlkesi