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.
- 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:
- Ölçülebilir bir sorun var mı? Kesintili testler veya yavaş hata ayıklama iyi nedenlerdir. “Daha yeni” değil.
- Süit ne kadar büyük? Yüz test taşınabilir. On bin büyük bir proje.
- Sayfa nesneleriniz temiz mi? İyi soyutlamalar, taşınmayı çok daha ucuz hale getirir.
- 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
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.
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 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 →DevOpsAçı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ştirmeAPI 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 otomasyonuPython'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 testiKod 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 SQLSQL'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 SQLAçı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ştirmeTypeScript 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ştirmePython *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ştirmePython 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 →DevOpsDocker 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 otomasyonuTDD 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 testiKullanı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 SQLAçı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 SQLSQL 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ştirmeJWT 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ştirmeJavaScript 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ştirmePython 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 →DevOpsMavi-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 otomasyonuKesintili 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 testiYü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 testiTest 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 SQLSQL 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 SQLSQL 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ştirmeJavaScript 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ştirmePython 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ştirmePython 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 →DevOpsYeni 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 otomasyonuSelenyum 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 testiEş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 testiYazı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 SQLSQL 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 SQLSQL İş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ştirmeGit 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ştirmePython 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 SQLSQL 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 →