Selenyum ve Oyun Yazarı: Temel Farklılıklar, Karşılaştırılan Kod ve Hangisinin Seçileceği

  1. Ana sayfa
  2. Blog
  3. Test Otomasyonu

Test Otomasyonu

Selenyum ve Oyun Yazarı: Temel Farklılıklar, Karşılaştırılan Kod ve Hangisinin Seçileceği

Selenyumun yirmi yıllık bir geçmişi ve devasa bir ekosistemi var. Oyun yazarı daha yeni ve kutunun dışında daha fazlasını içeriyor. Bunları günlük olarak önemli olan şeylerle karşılaştırın, her ikisinde de bir test okuyun ve güvenle karar verin.

9 dk okuma
Selenyum ve Oyun Yazarı: temel farklar, karşılaştırıldığında kod ve hangisinin seçileceği

Önemli noktalar

  • Selenium, W3C WebDriver standardına dayalı, olgun bir tarayıcı otomasyon kitaplığıdır.
  • Oyun Yazarı, otomatik bekleme, izleme ve test çalıştırıcı içeren daha yeni bir çerçevedir.
  • Yeni bir web projesi için Oyun Yazarı genellikle daha hızlı üretken olur.
  • Selenium, mevcut büyük paketler, daha geniş dil ihtiyaçları ve gerçek satıcı tarayıcılarında yapılan testler için sağlam bir seçim olmaya devam ediyor.

Bir test otomasyonu projesi başlatıyorsanız, Selenyum Oyun Yazarına Karşı sorusu hızla karşınıza çıkacaktır. Arama sonuçları bu konuyu çözüme kavuşturulmuş gibi gösterebilir ancak doğru yanıt ekibinize, mevcut testlerinize ve desteklemeniz gereken tarayıcılara bağlıdır.

Bu kılavuz bunları günlük işlerinizde gerçekte hissedeceğiniz şeylerle karşılaştırmaktadır. Kod örnekleri her aracın tipik stilini gösterir ve bunları bu makale için çalıştırmadık. Ayrıca hız yüzdelerini belirtmekten de kaçınıyoruz çünkü yayınlanan kıyaslamalar büyük ölçüde farklılık gösteriyor ve çoğunlukla satıcılardan geliyor. Hızın konuya karar verip vermeyeceğini kendi uygulamanızda ölçün.

Kısa cevap

Özellikle ekibiniz JavaScript, TypeScript, Python, Java veya .NET’te çalışabiliyorsa, çoğu yeni web testi projesi için Oyun Yazarı‘nı seçin. Kutudan çıktığı haliyle daha fazla özellik elde edersiniz ve altyapıya ve kesintili beklemelere daha az zaman harcarsınız.

Zaten geniş bir çalışma paketiniz varsa, Ruby gibi Oyun Yazarının resmi olarak desteklemediği bir dile ihtiyacınız varsa veya bir Selenium ızgarası veya cihaz bulutu aracılığıyla kullanılabilen gerçek tarayıcı yapıları ve platformları üzerinde test yapmanız gerekiyorsa Selenium‘u seçin.

Selenyum ve Oyun Yazarı yan yana

Görünüş Selenyum Oyun yazarı
İlk yayınlandı 2004 2020, Microsoft tarafından
Bu ne Tarayıcı otomasyon kütüphanesi Node.js’de bir çalıştırıcıyla çerçeve
Diller Java, Python, C#, Yakut, JavaScript TypeScript, JavaScript, Python, Java, .NET
Tarayıcılar Chrome, Firefox, Edge, Safari Krom, Firefox, WebKit
Bekliyor Açık yazmanızı bekliyor Otomatik bekleme yerleşik
Test koşucusu Pytest veya JUnit gibi kendinizinkini getirin Node.js, Python için pytest eklentisi dahildir
Paralel koşular Selenyum Izgarası veya test çerçevesi Koşucunun içine yerleştirilmiş
Hata ayıklama Çerçeve günlükleri, eklediğiniz ekran görüntüleri İz görüntüleyici, kullanıcı arayüzü modu, codegen
Ağ alaycılığı Sınırlı, çoğunlukla ekstra takımlar Dahili
Topluluk Çok büyük ve köklü Büyük ve hızla büyüyor

Mimari: Her birinin tarayıcıyla nasıl konuştuğu

Selenium komutları resmi bir standart olan W3C WebDriver protokolünü kullanarak gönderir. Kodunuz, tarayıcıyı kontrol eden ChromeDriver gibi bir sürücüyle konuşur ve her komut genellikle ayrı bir HTTP isteğidir. Tarayıcı satıcıları bu standardı desteklediğinden geniş bir uyumluluğa sahiptir. Daha yeni bir protokol olan WebDriver BiDi, standarda iki yönlü iletişim ve olay akışını ekliyor.

Oyun Yazarı tarayıcıyla kalıcı bir bağlantı kurar ve kendi yamalı Chromium, Firefox ve WebKit yapılarını kullanır. Bağlantı doğrudan ve iki yönlü olduğundan tarayıcı olaylarına tepki verebilir ve her test kendi hafif tarayıcı bağlamında çalıştırılabilir. Çoğu karşılaştırmanın Oyun Yazarı’nı daha hızlı olarak değerlendirmesinin nedeni budur, ancak gerçek fark uygulamanıza ve testlerinize bağlıdır.

Her iki araçta da tek test

İşte halka açık bir uygulama sitesine karşı Python’da yazılmış aynı giriş testi.

Selenyum

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

def test_login(driver):
    driver.get("https://the-internet.herokuapp.com/login")
    driver.find_element(By.ID, "username").send_keys("tomsmith")
    driver.find_element(By.ID, "password").send_keys("SuperSecretPassword!")
    driver.find_element(By.CSS_SELECTOR, "button[type=submit]").click()

    message = WebDriverWait(driver, 10).until(
        EC.visibility_of_element_located((By.ID, "flash"))
    )
    assert "You logged into a secure area" in message.text

Ayrıca, Selenium Python eğitimimizde gösterdiğimiz gibi, sürücüyü oluşturup kapatmak için bir fikstüre de ihtiyacınız vardır.

Oyun yazarı

from playwright.sync_api import Page, expect

def test_login(page: Page):
    page.goto("https://the-internet.herokuapp.com/login")
    page.get_by_label("Username").fill("tomsmith")
    page.get_by_label("Password").fill("SuperSecretPassword!")
    page.get_by_role("button", name="Login").click()

    expect(page.locator("#flash")).to_contain_text("You logged into a secure area")

Bu, page fikstürünü sağlayan pytest-playwright eklentisine dayanır. Daha kısadır, çünkü bekleme expect‘te yerleşiktir ve get_by_role gibi konum belirleyiciler sayfayı kullanıcının gördüğü şekilde tanımlar. Selenium ile, yardımcılar ve her iki araçta da önerdiğimiz Sayfa Nesne Modeli ile bu genel durumu önemli ölçüde azaltabilirsiniz.

Bekleme ve kesintili testler

Zamanlama, hatalı tarayıcı testlerinin en önemli nedenidir ve iki aracın günlük kullanımda en çok farklılık gösterdiği nokta budur.

Selenium‘da senkronizasyondan siz sorumlusunuz. Açık beklemeler işe yarar, ancak birilerinin bunları her yerde hatırlaması gerekir ve unutan ekipler sıklıkla time.sleep yöntemine başvurur. Selenyum bekler ile ilgili rehberimiz bunun nasıl doğru bir şekilde yapılacağını açıklıyor.

Oyun Yazarı‘nda eylemler, harekete geçmeden önce bir öğenin görünür, sabit, etkin ve etkinlik alabildiğini otomatik olarak kontrol eder. Web öncelikli iddialar zaman aşımına uğrayana kadar yeniden denemeye devam eder. Yine de hatalı testler yazabilirsiniz, örneğin zayıf test verileriyle, ancak sorunların büyük bir kaynağı varsayılan olarak ele alınır.

Tarayıcılar ve diller

Selenyumun gerçek bir avantaja sahip olduğu yer burasıdır. Oyun Yazarının WebKit yapısı Safari’nin motoruna yakındır ancak Mac veya iPhone’daki Safari ile aynı şey değildir. Gerçek Safari davranışı kritikse, SafariDriver’lı Selenium veya gerçek bir cihaz bulutu sizi kullanıcılarınızın gerçekte çalıştırdığı şeye yaklaştırır.

Benzer şekilde Playwright, paketlenmiş tarayıcı sürümlerini test ediyor, ancak aynı zamanda yüklü Chrome ve Edge kanallarını da yönlendirebiliyor. Selenium, yüklediğiniz tarayıcıları yönlendirir; bu, belirli sürümleri desteklemeniz gerekiyorsa yardımcı olur. Yerel mobil uygulamalar için de tam cevap yoktur: WebDriver konseptleri üzerine inşa edilen Appium olağan araçtır.

Diller konusunda Selenium resmi olarak Ruby’yi desteklemektedir ve Java ekiplerinde çok uzun bir geçmişe sahiptir. Playwright’ın Node.js sürümü ayrıca tam test çalıştırıcısı orada olduğundan en eksiksiz araçlara sahiptir. Diğer diller çekirdek kütüphaneyi alır ve kendi test çerçeveleriyle bütünleşir.

Hata ayıklama

Oyun yazarının burada açık bir ipucu var. İz görüntüleyicisi her eylemi DOM anlık görüntüleri, ağ çağrıları ve konsol günlükleriyle birlikte kaydeder; böylece başarısız bir CI çalıştırması tamamlandıktan sonra adım adım ilerleyebilirsiniz. Kullanıcı arayüzü modu ve kod oluşturucusu aynı zamanda testleri daha hızlı yazmanıza da yardımcı olur. Bunların nasıl kullanılacağını öğrenmek için Yeni başlayanlar için Oyun Yazarlığı eğitimimize bakın.

Selenium ile bunu arıza ekran görüntülerinden, tarayıcı günlüklerinden, ızgara sağlayıcınızdan gelen videolardan ve test çerçevenizdeki raporlardan kendiniz bir araya getirirsiniz. İyi çalışıyor ve birçok takımın mükemmel kurulumları var, ancak bunu oluşturmak çaba gerektiriyor.

Ağ ve API özellikleri

Oyun yazarı, birkaç satır kodla ağ isteklerini yakalayabilir ve taklit edebilir; bu, hata durumlarını test etmek için faydalıdır:

page.route("**/api/orders", lambda route: route.fulfill(status=500))

Ayrıca bir API istek istemcisi içerir, böylece tarayıcıyı kullanmadan önce bir API aracılığıyla test verileri oluşturabilirsiniz. Selenium 4, Chrome DevTools Protokolü ve BiDi aracılığıyla bazı ağ özellikleri eklemiştir ancak destek ve kolaylık, tarayıcıya ve dile göre değişiklik gösterir. Birçok Selenium kullanıcısı, API testi araçlarında olduğu gibi bir proxy veya ayrı bir HTTP kitaplığı ekler.

İpucu: Hangi aracı seçerseniz seçin, tarayıcı testlerini kritik yolculuklara odaklayın ve ayrıntıları daha alt seviyelere itin. Daha küçük bir paket, daha hızlı bir araçtan daha önemlidir. Uçtan uca test için en iyi uygulamalarımıza bakın.

Paralel çalıştırmalar ve ölçeklendirme

Oyun Yazarının Koşucusu, paralel çalışanları ve CI makinelerinde parçalamayı basit seçeneklerle yönetir. Tarayıcı bağlamları ucuz olduğundan izolasyon her test için tamamen yeni bir tarayıcı gerektirmez.

Selenium, testleri makineler ve tarayıcı sürümleri arasında dağıtmak için Selenium Grid‘i kullanır ve test çerçeveleri paralelliği yönetir. Grid’in çalıştırılması daha kolaydır ancak çok büyük ölçekte kanıtlanmıştır ve birçok ticari cihaz bulutu bunu doğrudan destekler.

Selenium’dan Oyun Yazarlığına geçmeli misiniz?

Otomatik olarak değil. Bir çalışma paketi değerlidir ve yeniden yazma, ürünün test edilmesinden zaman alır. Önce şu soruları sorun:

  1. Ölçülebilir bir sorun var mı? Kesintili testler veya yavaş hata ayıklama iyi nedenlerdir. “Daha yeni” değil.
  2. Süit ne kadar büyük? Yüz test taşınabilir. On bin büyük bir proje.
  3. Sayfa nesneleriniz temiz mi? İyi soyutlamalar, taşınmayı çok daha ucuz hale getirir.
  4. Selenium’a özgü özelliklere güveniyor musunuz? Öncelikle şebeke ve cihaz ihtiyaçlarınızı kontrol edin.

Hareket ederseniz yavaş yavaş ilerleyin. Playwright’ta yeni testler yazın, önce en sorunlu eski testleri taşıyın ve eski paket kullanımdan kaldırılacak kadar küçük olana kadar her ikisini de yan yana çalıştırın. Uykuları ve eski konum belirleyicileri taşıyacağı için testleri satır satır çevirmeyin. Test otomasyonu hatalarında ele alınan hatalardan da kaçının.

Nasıl seçilir

Durumunuz Makul seçim
Yeni web uygulaması, modern ekip Oyun yazarı
Büyük ahır Selenium süiti Selenium ile kalın ve onu geliştirin
Takım Ruby’yi yazıyor Selenyum
Gerçek Safari kapsamı kritik öneme sahiptir Selenyum veya bir cihaz bulutu
Kesintili testler ve zorlu CI hata ayıklaması Oyun Yazarı’nı pilotta deneyin
Yerel mobil uygulamalar Appium

Hepsinden iyisi, kısa bir pilot çalıştırın. Her araçtaki en garip üç yolculuğunuzu kendi uygulamanızla, kendi CI’nızla otomatikleştirin ve kodu, hızı ve bir arızada ne kadar kolay hata ayıklayabileceğinizi karşılaştırın. Bir haftalık kanıt, bu makale de dahil olmak üzere herhangi bir karşılaştırma makalesinden daha üstündür. Cypress de kısa listenizdeyse, Oyun Yazarı Cypress’e Karşı‘ı okuyun.

Son sözler

Oyun yazarlığı genellikle başlamak için daha kolay bir yerdir ve Selenyum geniş bir erişime sahip güvenilir bir standart olmaya devam etmektedir. İkisi de kötü tasarlanmış bir test paketini kurtaramaz. Gerçek kısıtlamalarınıza göre seçim yapın, istikrarlı konum belirleyicilere ve iyi test verilerine yatırım yapın ve paketinizin kullanıcılarınız için en önemli olana odaklanmasını sağlayın.

Sık sorulan sorular

Oyun Yazarı Selenium’dan daha mı iyi?

Birçok yeni web projesi için evet, otomatik bekleme ve yerleşik araçlar sayesinde. Selenium, mevcut paketler, daha geniş dil ihtiyaçları veya belirli gerçek tarayıcılar için daha uygun olabilir.

Oyun Yazarı Selenium’dan daha mı hızlı?

Kalıcı tarayıcı bağlantısı ve hafif bağlamları nedeniyle genellikle daha hızlı olduğu bildirilir. Gerçek fark uygulamanıza bağlıdır; bu nedenle bunu kendi testlerinizle ölçün.

Selenyumun modası geçmiş mi?

Hayır. Selenyumun bakımı aktif olarak yapılmaktadır ve W3C standardı temel alınarak oluşturulmuştur ve hala yaygın olarak kullanılmaktadır. Selenium 4 ve WebDriver BiDi onu modernleştirmeye devam ediyor.

Oyun Yazarı gerçek Safari’yi test edebilir mi?

Oyun yazarı, Safari motoruna yakın ancak aynı olmayan kendi WebKit yapısıyla testler yapıyor. Gerçek Safari veya iOS davranışı için gerçek cihazları veya SafariDriver’ı kullanın.

Yeni başlayan biri Selenium’u mu yoksa Oyun Yazarı’nı mı öğrenmeli?

Yeni başlayanların çoğu Oyun Yazarına başlamanın daha kolay olduğunu düşünüyor. Selenyum hala birçok iş ilanında yer alıyor, bu nedenle yerel pazarınızı kontrol edin. Temel kavramlar aralarında taşınır.

Öğrenmeye devam et

Stack Quora ile çalışın

Test, WordPress veya SEO konusunda yardıma mı ihtiyacınız var?

Ekiplerin daha iyi yazılımlar sunmasına ve sitelerini büyütmesine yardımcı oluyoruz. Bize ne üzerinde çalıştığınızı söyleyin, biz de bir sonraki adım için net bir öneride bulunalım.

Okumaya devam et

Daha fazla kılavuz test, yapay zeka ve modern geliştirme

Bu makaleyi beğendiniz mi? Bir konu seçin ve doğrudan en yeni eğitimlerimize geçin.

Yapay zekâ

Yapay Zeka Halüsinasyonları Açıklandı: Dil Modelleri Neden İşleri Düzeltiyor ve Nasıl Azaltılabilir?

Yapay zeka halüsinasyonları açıkladı: ne olduklarını, dil modellerinin bunları neden ürettiğini, yaygın türlerini, temellendirme ve yönlendirmelerle…

Makaleyi okuyun →
DevOps

Açıklanan Ortam Değişkenleri: .env Dosyaları, Sırlar ve Yapılandırma Doğru Yapıldı

Çalıştırdığımız Python örnekleriyle açıklanan ortam değişkenleri: bunları okumak ve ayarlamak, neden her değerin bir dize olduğu, .env dosyaları, sü…

Makaleyi okuyun →
Yazılım geliştirme

API Hız Sınırlamasının Açıklaması: Algoritmalar, Başlıklar ve 429 Hatalarının Ele Alınması

API hızı sınırlaması, çalıştırdığımız bir simülasyonla açıklanmıştır: belirteç kümesi, sabit pencere, kayan pencere, 429 yanıt, hız sınırı başlıklar…

Makaleyi okuyun →
Test otomasyonu

Python'da alay etme: Unittest.mock, patch ve Testleri Yalan Yapan Hatalar

Unittest.mock ile Python'da alay etme, test edildi: Sahte ve dönüş_değeri, yan_etki, bir adın kullanıldığı yerde yama uygulama, spesifikasyon ve oto…

Makaleyi okuyun →
Yazılım testi

Kod Kapsamının Açıklaması: Hat ve Şube Kapsamı ve %100'ün Gerçek Anlamı

Kod kapsamı gerçek bir kapsama.py çalışmasıyla açıklanmıştır: hat, şube ve durum kapsamı, bir raporun okunması, %100 kapsamın neden hâlâ hataları ka…

Makaleyi okuyun →
Veritabanları ve SQL

SQL'de DELETE vs TRUNCATE vs DROP: Farklılıklar, Geri Alma ve Her Biri Ne Zaman Kullanılmalı

DELETE vs TRUNCATE vs DROP test edilmiş SQL ile açıklandı: her birinin neyi kaldırdığı, geri aldığı, tetiklediği, kimlik sıfırlaması, hızı ve Postgr…

Makaleyi okuyun →
Veritabanları ve SQL

Açıklanan SQL Görünümleri: Örneklerle Tuzakları Oluşturun, Kullanın ve Önleyin

Çalıştırdığımız sorgularla açıklanan SQL görünümleri: görünüm oluşturma, canlı sonuçlar, sütunları gizleme, performans, güncellenebilir ve gerçekleş…

Makaleyi okuyun →
Yazılım geliştirme

TypeScript Arayüzü ve Tür: Gerçek Farklılıklar, Derleyiciyle Test Edildi

TypeScript arayüzü ve türü, gerçek derleyiciyle kontrol edildi: her ikisinin de yapabileceği, yalnızca birinin yapabileceği, bildirim birleştirme, g…

Makaleyi okuyun →
Yazılım geliştirme

Python *args ve **kwargs'ın Açıklaması: Açık Örneklerle Esnek Fonksiyonlar

Python *args ve **kwargs çalıştırdığımız kodla açıklanmıştır: paketleme ve paketten çıkarma, parametre sırası, yalnızca anahtar kelime ve yalnızca k…

Makaleyi okuyun →
Yazılım geliştirme

Python Lambda İşlevleri: Söz Dizimi, Gerçek Kullanımlar ve Ne Zaman Kullanılmaması Gerektiği

Çalıştırdığımız kodla açıklanan Python lambda işlevleri: sözdizimi, anahtarla sıralama, harita ve filtre, kapatmalar, geç bağlama tuzağı ve normal b…

Makaleyi okuyun →
Yapay zekâ

Yapay Zeka Ajanları Nelerdir? Çalıştırabileceğiniz Basit Bir Aracı Döngüsüyle Nasıl Çalışırlar?

Yapay zeka ajanları nedir? Aracı döngüsüne, araçlara, belleğe ve korkuluklara ilişkin basit bir kılavuz, çalıştırdığımız küçük bir Python döngüsü, g…

Makaleyi okuyun →
DevOps

İzleme ve Gözlemlenebilirlik: Günlükler, Metrikler ve İzlerle Gerçek Fark

İzleme ve gözlemlenebilirliğin açıklanması: bilinen ve bilinmeyen arızalar, günlükler, ölçümler ve izler, ödeme olayının gözden geçirilmesi, altın s…

Makaleyi okuyun →
DevOps

Docker Birimleri ve Bağlama Bağlantıları: Konteyner Verilerini Doğru Şekilde Kalıcılaştırın

Docker birimleri ile bağlama bağlamaları arasındaki karşılaştırma açıklandı: kapsayıcı verilerinin neden kaybolduğu, adlandırılmış birimler, bağlama…

Makaleyi okuyun →
Test otomasyonu

TDD ve BDD: Temel Farklılıklar, Her İki Şekilde Geliştirilmiş Bir Özellik ve Her Birinin Ne Zaman Kullanılacağı

TDD ve BDD, her iki yönde de oluşturulmuş bir indirim özelliğiyle açıklandı: çalıştırdığımız kodla kırmızı-yeşil-refactor, Verilen-Ne Zaman-O Zaman …

Makaleyi okuyun →
Yazılım testi

Kullanıcı Kabul Testi (UAT): Süreç, Kontrol Listesi ve Gerçek Örnekler

Kullanıcı kabul testi açıklandı: bunu kimin yürüttüğü, QA'dan farkı, yedi adımlı bir süreç, bir UAT test senaryosu şablonu, bir kontrol listesi, otu…

Makaleyi okuyun →
Veritabanları ve SQL

Açıklanan SQL NULL Değerleri: IS NULL, COALESCE, NULLIF ve Kaçınılması Gereken Tuzaklar

SQL NULL değerleri, çalıştırdığımız sorgularla açıklandı: üç değerli mantık, IS NULL, COALESCE, NULLIF, toplamaların, birleştirmelerin ve sıralamanı…

Makaleyi okuyun →
Veritabanları ve SQL

SQL CASE WHEN İfadesi: Sözdizimi, Gerçek Örnekler ve Yaygın Hatalar

SQL CASE WHEN çalıştırdığımız sorgularla açıkladı: basit ve aranmış formlar, koşul sırası, SUM'lu pivotlar, COUNT hileleri, özel sıralama, güncellem…

Makaleyi okuyun →
Yazılım geliştirme

JWT Nedir? JSON Web Belirteçleri Bir Çalışma Örneğiyle Açıklanıyor

JWT nedir? JSON Web Tokens açıkladı: üç bölüm, çalıştırdığımız kodda oluşturulan ve üzerinde değişiklik yapılan bir token, JWT ile oturumlar, depola…

Makaleyi okuyun →
Yazılım geliştirme

JavaScript Olay Döngüsü Açıklaması: Örneklerle Çağrı Yığını, Mikro Görevler ve Zamanlayıcılar

JavaScript olay döngüsü çalıştırdığımız kodla açıklandı: çağrı yığını, görev ve mikro görev kuyrukları, setTimeout 0'ın neden anında olmadığı, engel…

Makaleyi okuyun →
Yazılım geliştirme

Python Jeneratörleri ve Verim Açıklaması: Gerçek Örneklerle Bellekten Tasarruf Edin

Python üreteçleri ve verim, çalıştırdığımız kodla açıklandı: nasıl duraklatılır ve devam ettirilir, ölçülen bellek tasarrufları, işlem hatları, sons…

Makaleyi okuyun →
Yapay zekâ

Gömmeler Nelerdir? Vektörler ve Kosinüs Benzerliği Basitçe Açıklandı

Gömmeler nedir? Vektörler, kosinüs benzerliği ve anlamsal aramaya ilişkin sade dilli bir kılavuz; çalıştırdığımız küçük bir örnek, yaygın kullanımla…

Makaleyi okuyun →
DevOps

Mavi-Yeşil ve Kanarya Konuşlandırılması: Farklılıklar, Takaslar ve Nasıl Seçilir

Mavi-yeşil ve kanarya konuşlandırması açıklandı: her birinin nasıl çalıştığı, maliyet, risk ve geri alma, test ettiğimiz istikrarlı kullanıcı grubu,…

Makaleyi okuyun →
Test otomasyonu

Kesintili Testler: Bunların Sebepleri ve Nasıl Düzeltileceği

Yaptığımız demolarla açıklanan hatalı testler: ana nedenler, birinin nasıl doğrulanacağı ve teşhis edileceği, zamanlama için uygun düzeltmeler, payl…

Makaleyi okuyun →
Yazılım testi

Yük Testi ve Stres Testi: Farklılıklar, Metrikler ve k6 Örnekleri

Yük testi ve stres testinin açıklaması: her birinin neyi kanıtladığı, ani yükselme ve soğuma testleri, önemli ölçümler, ortalamaların neden yanıltıc…

Makaleyi okuyun →
Yazılım testi

Test Senaryosu ve Test Senaryosu: Temel Farklılıklar, Örnekler ve Her Biri Ne Zaman Kullanılmalı?

Test senaryosu ve test senaryosunun açıklaması: net tanımlar, yan yana tablo, senaryolardan vakalara, şablonlara ve her birinin ne zaman kullanılaca…

Makaleyi okuyun →
Veritabanları ve SQL

SQL Sorgu Optimizasyonu: Zamanlamalarla Yürütme Planlarını Okuyun ve Yavaş Sorguları Düzeltin

SQL sorgu optimizasyonu bir milyon satırda test edilmiştir: yürütme planlarını okuyun, doğru dizinleri ekleyin, değiştirilemeyen filtreleri düzeltin…

Makaleyi okuyun →
Veritabanları ve SQL

SQL UNION ve UNION ALL: Farklılıklar, Örnekler ve Test Edilmiş Performans

SQL UNION ve UNION ALL, yürüttüğümüz sorgularla açıklandı: kopyalar, her ikisinin de takip ettiği kurallar, gerçek bir veri hatası, ölçülen performa…

Makaleyi okuyun →
Yazılım geliştirme

JavaScript Fetch API Eğitimi: GET, POST, Hata İşleme ve Zaman Aşımları

Yerel bir sunucuya karşı test edilen bir JavaScript Fetch API öğreticisi: GET ve POST, 404'ün neden atmadığı, yeniden kullanılabilir bir yardımcı, s…

Makaleyi okuyun →
Yazılım geliştirme

Python Dosya İşleme: Örneklerle Okuma, Yazma, CSV, JSON ve pathlib

Python dosya işleme, çalıştırdığımız kodla açıklanmıştır: açık modlar, büyük dosyaları okuma, CSV, JSON, pathlib, ikili dosyalar, güvenli yazma, hat…

Makaleyi okuyun →
Yazılım geliştirme

Python Sınıfları ve Nesneleri: Gerçek Örneklerle OOP Eğitimi

Çalıştırdığımız kodla açıklanan Python sınıfları ve nesneleri: __init__, yöntemler, sınıf ve örnek nitelikleri, kalıtım, özellikler, dunder yöntemle…

Makaleyi okuyun →
Yapay zekâ

Büyük Dil Modeli Nedir? Yüksek Lisans'ların Nasıl Çalıştığı, Abartmadan Açıklanıyor

Büyük dil modeli nedir? LLM'ler sade bir dille açıklandı: belirteçler, yerleştirmeler, dikkat, eğitim, sıcaklık ve bağlam pencereleri, küçük bir son…

Makaleyi okuyun →
DevOps

Yeni Başlayanlar İçin Linux Komutları: Örneklerle Temel Terminal Kılavuzu

Yeni başlayanlar için göreve göre gruplandırılmış Linux komutları: pratik bir günlük analizi örneğiyle gezinme, dosyalar, günlükleri görüntüleme, gr…

Makaleyi okuyun →
Test otomasyonu

Selenyum ve Oyun Yazarı: Temel Farklılıklar, Karşılaştırılan Kod ve Hangisinin Seçileceği

Selenium ve Playwright karşılaştırması: mimari, bekleme, tarayıcı ve dil desteği, hata ayıklama, her iki araçta da aynı test, geçiş tavsiyesi ve nas…

Makaleyi okuyun →
Yazılım testi

Eşdeğerlik Bölümleme: Test Tasarımı Tekniğinin Çalışılmış Örneklerle Açıklanması

Eşdeğerlik bölümlemenin açıklaması: geçerli ve geçersiz bölümlerin nasıl bulunacağı, yaşlara yönelik çalışılmış örnekler, şifreler ve kuponlar, yürü…

Makaleyi okuyun →
Yazılım testi

Yazılım Testinde Şiddet ve Öncelik: Farklılıklar, Matris ve Gerçek Örnekler

Yazılım testinde önem ve önceliğin açıklanması: net tanımlar, örnekler içeren dört yönlü bir matris, seviye ölçekleri, her birini kimin belirlediği …

Makaleyi okuyun →
Veritabanları ve SQL

SQL Alt Sorguları Eğitimi: Türler, İlişkili Alt Sorgular ve Örneklerle EXISTS

Çalıştırdığımız sorguları içeren bir SQL alt sorgu eğitimi: skaler, IN, FROM ve SELECT alt sorguları, ilişkili alt sorgular, EXISTS, NOT IN NULL tuz…

Makaleyi okuyun →
Veritabanları ve SQL

SQL İşlemleri ve ACID Açıklaması: COMMIT, ROLLBACK ve İzolasyon Seviyeleri

SQL işlemleri ve ACID, yürüttüğümüz bir banka transferiyle açıklandı: COMMIT, ROLLBACK, kayıt noktaları, kilitler, izolasyon seviyeleri, kirli okuma…

Makaleyi okuyun →
Yazılım geliştirme

Git merge vs rebase: farklar, örnekler ve hangisi ne zaman kullanılır

Git merge vs rebase; gerçek log çıktısı, karşılaştırma tablosu, rebase'in altın kuralı ve güvenli bir ekip iş akışıyla anlatılıyor.

Makaleyi okuyun →
Yazılım geliştirme

Python Liste Üreteci (List Comprehension): Sözdizimi, Örnekler ve Kaçınılacak Durumlar

Python list comprehension anlatımı: sözdizimi, filtreleme, if-else, iç içe döngüler, ölçülmüş süreler ve düz for döngüsünün daha iyi olduğu durumlar.

Makaleyi okuyun →
Veritabanları ve SQL

SQL JOIN Örneklerle Açıklama (Inner, Left, Right, Full)

SQL JOIN'leri örnek tablolar ve sorgularla adım adım öğrenin: INNER, LEFT, RIGHT, FULL, CROSS ve SELF; yaygın hatalar ve performans ipuçları.

Makaleyi okuyun →