☕ Java — QA Mühendisi Rehberi

Java, test otomasyonu dünyasında en yaygın kullanılan programlama dilidir — Selenium, REST Assured, Cucumber ve TestNG gibi kurumsal ölçekteki framework'lerin büyük çoğunluğu Java üzerine kuruludur. Statik tip denetimi hataları derleme anında yakalar, JVM ekosistemi Maven/Gradle ile bağımlılık yönetimini standartlaştırır. QA mühendisi için en yaygın kullanım alanı, büyük kurumsal projelerde Page Object Model tabanlı otomasyon framework'ü kurmaktır.

Selenium, Playwright, API testi ve QA mülakatları için Java'yı sıfırdan öğren: uygulamalı örnekler ve tarayıcıda çalışan alıştırmalarla.

Java'yı QA perspektifinden öğren: temel sözdiziminden production-grade altyapıya, Cucumber BDD'den Selenium ve Playwright adım adım kullanımına, 50 mülakat sorusuyla hazır ol.

Bu sayfada neler öğreneceksin

  • ☕ Java Nedir? Neden QA'da Kullanılır? — Java'nın JVM katmanı, kaynak kodu doğrudan işletim sistemine değil, platformdan bağımsız bir ara dile (bytecode) çevirir; her makinedeki JVM ise bu tek bytecode'u kendi işletim sistemine özgü komutlara tercüme eder — tıpkı bir konferansta konuşmacının tek bir
  • ⚙️ Java Kurulumu ve İlk Proje — JDK'yı elektrik şebekesine bağlanmaya, `javac` ile tek dosya derlemeyi bir prizin çalışıp çalışmadığını el feneriyle test etmeye, Maven'ı ise tüm evin kablolamasını yöneten sigorta panosuna benzet: önce akımın geldiğini tek prizle doğrularsın, sonra ölçek büyü
  • 📝 Temel Sözdizimi — Variables, Data Types, Operators — Java'da bir değişken tanımlarken tipini de yazarsın (`int sayi = 5;`), çünkü Java statik tipli bir dildir — tıpkı bir yemek tarifinde "2 su bardağı un" derken hem miktarı hem birimi sabitlemen gibi: birimi baştan belirlersin, sonradan yanlış malzeme
  • 🔤 Strings & Math — Metin ve Matematik — Java'da String immutable'dır: bir kez oluşturulan metin bellekte asla değişmez, her "değişiklik" aslında yeni bir String nesnesi doğurur — tıpkı taşa kazınmış bir yazı gibi: yazıyı düzeltmek istersen taşı silmezsin, yeni bir taş yontarsın, eski taş o
  • 🔀 Akış Kontrolü — If/Else, Switch, Döngüler — Akış kontrolü (if/else, switch, döngüler), programın hangi kodun ne zaman ve kaç kez çalışacağına bir koşula bakarak karar verdiği mekanizmadır — tıpkı bir demiryolu makasçısının gelen trene bakıp rayı bir yöne çevirmesi gibi: aynı ray sistemi, koşula göre tre
  • 📦 Arrays — Diziler — Java'da array, bellekte yan yana ayrılmış sabit boyutlu, numaralı hücreler bloğudur ve indeks 0'dan başlar — tıpkı baştan kaç yerli olacağı betonla dökülmüş numaralı bir otopark gibi: her yer (index) tek araba (değer) alır, [0]'dan [4]'e kadar gider, ama beton
  • 🔧 Methods — Metodlar & Scanner (User Input) — Bir method, girdi alan (parametre), bir iş yapan ve çıktı döndüren (return) yeniden kullanılabilir bir kod paketidir — tıpkı bir kahve makinesinin tuşuna basmak gibi: içine su ve çekirdek verirsin (parametre), makine hep aynı işlemi yapar, sana kahve döndürür;
  • 🏗️ OOP & Collections — OOP'de bir class, veriyi (fields) ve o veriyle ne yapılabileceğini (methods) tek bir kapsülde birleştirir — tıpkı bir LEGO parçasının hem şeklini (veri) hem de nereye takılabileceğini belirleyen çıkıntılarını (davranış) tek parçada taşıması gibi: parçayı bir k

Sık Sorulan Sorular

QA mühendisleri neden Java öğrenir?

Çünkü Selenium, REST Assured, Cucumber ve TestNG gibi kurumsal ölçekteki test framework'lerinin büyük çoğunluğu Java üzerine kuruludur. Java bilmek, bu araçların iç mimarisini ve hata mesajlarını gerçekten anlamayı sağlar.

Java ile Python arasındaki fark nedir?

Java statik tipli olduğu için hataları derleme anında yakalar ve büyük kurumsal projelerde daha katı bir yapı sunar; Python dinamik tipli ve daha az kod satırıyla aynı işi yaptırır. QA tarafında Java daha büyük framework mimarisi, Python daha hızlı script yazımı için tercih edilir.

Java öğrenmek ne kadar sürer?

Temel söz dizimini ve OOP kavramlarını 1-2 haftada öğrenebilirsin. Collections, exception yönetimi ve Selenium/REST Assured entegrasyonu dahil mülakat seviyesine gelmek genelde 6-8 hafta düzenli pratik gerektirir.

Java ücretsiz mi?

Evet, OpenJDK dahil Java'nın çoğu dağıtımı ücretsiz ve açık kaynaklıdır. Maven, JUnit5, TestNG gibi Java QA ekosistemindeki araçların tamamı da ücretsizdir.

Java bytecode'a nasıl dönüştürülür?

`javac` derleyicisi `.java` dosyasını `.class` uzantılı bytecode'a çevirir; bu bytecode, JVM (Java Virtual Machine) tarafından çalıştırılır. Bu katman, Java'nın "bir kere yaz, her yerde çalıştır" prensibinin temelidir.

En sık karşılaşılan Java hatası nedir?

`NullPointerException` — bir referans değişkeni `null` iken üzerinde metod çağırmaya çalışıldığında oluşur. Selenium testlerinde genellikle bir elementin bulunamayıp `null` dönmesi ve doğrudan kullanılmaya çalışılmasından kaynaklanır.

Java mülakatında en çok hangi soru sorulur?

`==` ile `.equals()` arasındaki fark (referans karşılaştırması mı, değer karşılaştırması mı) ve `List` ile `Set` arasında hangi Collection'ın ne zaman seçileceği. Ardından checked/unchecked exception farkı ve bir Page Object sınıfında neden `private` alan + `public` metod kalıbının tercih edildiği sık sorulan takip sorularıdır.