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

  1. Ana sayfa
  2. Blog
  3. Yazılım Testi

Yazılım Testi

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

Bunlardan biri, sisteminizin beklediğiniz trafiği yönettiğini kanıtlar. Diğeri ise nerede kırıldığını ve nasıl iyileştiğini öğrenir. Her birini ne zaman çalıştıracağınızı, hangi numaralara güveneceğinizi ve gerçek yanıtlar veren bir testi nasıl planlayacağınızı öğrenin.

9 dk okuma
Yük testi ve stres testi: farklar, ölçümler ve k6 örnekleri

Önemli noktalar

  • Yük testi, bir sistemin beklenen trafik altında hedeflerine ulaşıp ulaşmadığını kontrol eder.
  • Stres testi kırılma noktasını bulmak ve toparlanmayı incelemek için geçmiş kapasiteyi zorlar.
  • Araçlar genellikle aynıdır. Farklı olan, amaç ve trafik düzenidir.
  • Ortalamalar ciddi sorunları gizleyebileceğinden, sonuçları p95 ve p99 gibi yüzdelik dilimlerle değerlendirin.

Uygulamanız on kullanıcıyla mükemmel şekilde çalışır. On bin satış gününde ne olur? Yük testi ve stres testi bunu yanıtlamanın iki farklı yolunu açıklar ve bunların karıştırılması, yaptıklarını düşündüğünüz şeyi kanıtlamayan testlere yol açar.

Bu kılavuzda her birinin neyi gösterdiği, ilgili test türleri ve sonuçların nasıl okunacağı açıklanmaktadır. Aşağıdaki küçük yüzdelik hesaplamayı Python 3.13’te simüle edilmiş sayılarla gerçekleştirdik. K6 komut dosyaları bizim yürütmediğimiz açıklayıcı örneklerdir ve kullanıcı sayıları ve hedefleri icat edilmiştir, bu nedenle bunları kendinizinkiyle değiştirin. Yoğun trafik bir saldırı gibi görünebileceğinden ve gerçek kesintilere neden olabileceğinden, bu testleri yalnızca sahip olduğunuz veya test etme izniniz olan sistemlerde çalıştırın.

Kısa cevap

Yük testi şu soruyu sorar: Beklediğimiz trafiği idare edebilir ve bunu yaparken hedeflerimize ulaşabilir miyiz? Bir stres testi şu soruyu sorar: Başarısız olmadan önce ne kadar alabiliriz, nasıl başarısız oluruz ve ne kadar çabuk toparlanırız?

Bir köprü düşünün. Bir yük testi, beklenen sayıda kamyonu karşıya geçirir ve bunun iyi olduğunu doğrular. Stres testi, sınırını ve önce uyarı verip vermediğini öğrenmek için ağırlık eklemeye devam eder. Neyse ki yazılımı kırmak köprüden daha ucuzdur.

Yük testi ve stres testi yan yana

Görünüş Yük testi Stres testi
Ana soru Beklenen yükte hedefleri tutturabiliyor muyuz? Nerede ve nasıl kırılırız?
Trafik seviyesi Normal ila beklenen zirve Beklenen zirvenin ötesinde
Desen Hızlanın, sabit kalın Başarısızlığa kadar artmaya devam edin
Başarısızlık Başarısız bir test Beklenen sonuç
Temel ölçümler Tepki süresi, verim, hatalar Kırılma noktası, arıza modu, iyileşme süresi
Tipik zamanlama Her büyük yayın veya etkinlikten önce Sistem yük altında stabil hale geldikten sonra
Sonuç Hedeflere karşı geçme veya başarısız olma Kapasite sınırı ve zayıf noktaların listesi

Yük testi nedir?

Yük testi, beklediğiniz gerçekçi trafiği simüle eder ve sistemin nasıl davrandığını ölçer. Test edilecek bir hedefe ihtiyacı var, örneğin: “eşzamanlı 500 kullanıcıda, ödeme isteklerinin %95’i 800 ms içinde tamamlanıyor ve %1’den az hatayla.”

İşte bunun bir k6 betiği gibi görünebileceği. k6 testleri JavaScript’te yazılmıştır ve thresholds hedeflerinizi başarılı veya başarısız sonucuna dönüştürür:

import http from "k6/http";
import { sleep } from "k6";

export const options = {
  stages: [
    { duration: "5m", target: 500 },   // ramp up
    { duration: "20m", target: 500 },  // hold at expected peak
    { duration: "2m", target: 0 },     // ramp down
  ],
  thresholds: {
    http_req_duration: ["p(95)<800"],
    http_req_failed: ["rate<0.01"],
  },
};

export default function () {
  http.get("https://staging.example.com/products");
  sleep(1);   // think time, as real users pause
}

sleep önemlidir. Düşünme süresi olmadan, her sanal kullanıcı sürekli olarak sunucuya saldırır ve aynı sayıda gerçek insanın üretebileceğinden çok daha fazla trafik üretir.

Stres testi nedir?

Stres testi kasıtlı olarak beklenen seviyelerin üzerine çıkar. Geçmeye çalışmıyorsun. Aşağıdaki gibi soruların yanıtlarını istiyorsunuz:

  • Performans hangi seviyede düşmeye başlar?
  • İlk önce hangi bileşen arızalanır: veritabanı mı, uygulama sunucuları mı yoksa üçüncü taraf çağrısı mı?
  • Açık hatalarla zarif bir şekilde başarısız mı oluyor yoksa çöküp veri mi kaybediyor?
  • Trafik düştüğünde kendiliğinden düzeliyor mu?
export const options = {
  stages: [
    { duration: "5m", target: 500 },    // expected peak
    { duration: "5m", target: 1000 },   // beyond it
    { duration: "5m", target: 2000 },   // further
    { duration: "5m", target: 4000 },   // likely to break
    { duration: "10m", target: 0 },     // recovery: does it come back?
  ],
};

Bu son iyileşme aşaması sıklıkla unutulur ve belki de en değerli aşamadır. Arızayı iyi bir şekilde ele alan ancak manuel yeniden başlatma olmadan asla düzelmeyen bir sistem, yine de birisinin gece yarısı tamir etmesi gereken bir kesinti anlamına gelir. İdeal olarak, aşırı yük altında bir sistemin işi kontrollü bir şekilde kesmesi ve zaman aşımı yerine net 503 yanıt döndürmesi gerekir.

Başak, ıslatma ve diğer türler

Yük ve stres testleri daha geniş bir performans testi ailesine aittir:

Tür Desen Ne bulur?
Duman (performans) Kısaca birkaç kullanıcı Komut dosyasının ve sistemin çalışıp çalışmadığı
Yük Beklenen zirve tutuldu Hedeflere ulaşılıp ulaşılmadığı
Stres Geçmiş kapasitenin artması Limitler ve başarısızlık modları
Başak Ani bir sıçrama, ardından bir düşüş Otomatik ölçeklendirme ve kuyruk davranışı
Islatma (dayanıklılık) Saatlerce normal yük Bellek sızıntıları, biten bağlantılar
Kapasite Kademeli artış Hedefleriniz dahilindeki maksimum yük

Islatma testleri, kısa testlerin asla göremediği sorunları yakalar. Küçük bir bellek sızıntısı yirmi dakika boyunca zararsız görünebilir ve hizmeti yalnızca iki gün sonra çökertebilir. Spike testleri, trafiğin kademeli olarak artmadığı flaş satışlar gibi etkinliklere uygundur.

Önemli olan metrikler

Metrik Anlamı Dikkat et
Tepki süresi (yüzdelik dilimler) İsteklerin ne kadar sürdüğü p95 ve p99 yükseliyor
Verim Saniye başına işlenen istekler Kullanıcı sayısı arttıkça düzleşme
Hata oranı Başarısız isteklerin yüzdesi Herhangi bir ani yükseliş
CPU ve bellek Sunucu kaynağı kullanımı Doygunluk veya istikrarlı büyüme
Veritabanı Yavaş sorgular, bağlantı havuzu kullanımı Havuz yorgunluğu, kilit bekler
Kuyruk derinliği İşlenmeyi bekleyen iş Hiçbir zaman tükenmeyen büyüme

Ortalamalar neden yanıltıcıdır?

Ortalamalar, gerçek insanların şikayet ettiği yavaş istekleri gizler. Bunu göstermek için, 95’i hızlı (80 ila 200 ms) ve 5’i çok yavaş (2,5 ila 4 saniye) olmak üzere 100 simüle edilmiş yanıt süresi oluşturduk ve ardından ortak istatistikleri hesapladık:

import math, random, statistics

random.seed(3)
times = [random.randint(80, 200) for _ in range(95)] \
      + [random.randint(2500, 4000) for _ in range(5)]

def pct(values, p):
    values = sorted(values)
    return values[math.ceil(p / 100 * len(values)) - 1]

print("avg", round(statistics.mean(times)), "p50", pct(times, 50),
      "p95", pct(times, 95), "p99", pct(times, 99), "max", max(times))

# avg 302 p50 150 p95 199 p99 3740 max 3896

Şu rakamlara yakından bakın. Ortalama 302 ms hiç kimseyi tanımlamıyor. Tipik istekler yaklaşık 150 ms sürerken, yavaş istekler 3 saniyeden fazla sürdü. P95 bile 199 ms’de sağlıklı görünüyor ve yalnızca p99 sorunu ortaya koyuyor. P95 gibi bir rakam, isteklerin %95’inin bu kadar hızlı veya daha hızlı olduğu anlamına gelir.

Taleplerin yüzde biri de nadir görülen bir olay değil. Bir sayfa 50 istekte bulunursa, yavaş bir p99, sayfa görüntülemelerinin büyük bir kısmını etkiler. Sizin için önemli olan yüzdelik dilimlere yönelik hedefler belirleyin ve birkaçına birlikte bakın.

İpucu: Grafiklerinizde “diz”i arayın. Yük arttıkça tepki süreleri bir süre sabit kalır, ardından aniden yükselir ve verim artışı durur. Bu nokta sizin pratik kapasitenizdir ve çoğu zaman herhangi bir şey gerçekten çökmeden çok önce gelir.

Araçlar

Araç Komut dosyası oluşturma Bilinen
k6 JavaScript Geliştirici dostu, eşikler CI’ya uygundur
JMeter GUI ve XML Olgun, birçok protokolü destekler
mitralyöz Scala, Java, Kotlin ve diğerleri Kod tabanlı, verimli
Keçiboynuzu Python Basit, Python tabanlı kullanıcı davranışı

Bunlardan herhangi biri hem yük hem de stres testlerini çalıştırabilir. Bir özellik listesinin peşinde koşmak yerine, takımınızın becerilerine uygun olanı seçin. İşlem hattınızda bir tane kullanmak için CI/CD nedir konusuna bakın.

Bir test nasıl planlanır?

  1. Hedefler belirleyin. En yoğun trafiğinizi bulmak ve hedefleri tanımlamak için gerçek analizleri kullanın.
  2. Yolculukları seçin. Göz atma, arama ve ödeme yapma gibi gerçekçi kullanıcı davranışlarını gerçekçi oranlarda modelleyin. Yalnızca ana sayfaya tıklamak pek bir şey ifade etmez.
  3. Gerçekçi bir ortam kullanın. Küçük bir hazırlama sunucusu üretimi tahmin edemez. Farklılıkları not edin.
  4. Verileri hazırlayın. Gerçekçi hacimler kullanın, çünkü 100 satırda hızlı olan bir sorgu 10 milyon satırda taranabilir.
  5. İnsanları uyarın. Operasyon ekibinize ve üçüncü taraflara bildirin ve ödeme sağlayıcısına kazara yükleme testi yapmayın. Uygun olduğu yerde harici hizmetleri taklit edin.
  6. Küçük başlayın. Senaryonuzun çalıştığını doğrulamak için önce küçük bir duman testi yapın.
  7. Her şeyi izleyin. Sunucu metrikleri olmadan, yavaşladığını göreceksiniz, ancak nedenini göremezsiniz.
  8. Tekrarlayın. Her düzeltmeden sonra tekrar çalıştırın ve karşılaştırma yapmak için bir temel tutun.

Sonuçların okunması

Belirti Olası neden
Yavaş yanıtlar, ancak düşük CPU Veritabanı, kilit veya harici hizmet bekleniyor
Veritabanı CPU’su yüksek Eksik dizinler veya verimsiz sorgular
Ani bağlantı hataları Bağlantı havuzu veya dosya sınırına ulaşıldı
Bellek giderek artıyor Bir sızıntı veya sınırsız bir önbellek
Yük oluşturucu CPU’su yüksek Test aracı darboğazdır, sisteminiz değil

Veritabanları yaygın bir darboğazdır; dolayısıyla sorun sorgular ise SQL sorgu optimizasyonu kılavuzumuzu okuyun. Tablonun son satırı önemli bir tuzaktır: Yükü oluşturan makinenin sağlığını da her zaman kontrol edin.

Yaygın hatalar

  • İsteklerle kullanıcıların kafasını karıştırmak. Hedefin eş zamanlı kullanıcılar mı yoksa saniye başına istekler mi anlamına geldiğini açık bir şekilde belirtin.
  • Düşünme süresini dışarıda bırakmak. Bu, trafiği şişirir ve yanıltıcı sonuçlar verir.
  • Test çok geç. Lansmandan bir hafta önce, mimari sorunları düzeltmek için zaman kalmıyor.
  • Tek bir uç nokta kullanma. Gerçek trafik; okuma, yazma ve aramaları birleştirir.
  • Önbelleğe alma her şeyi gizler. Tekrarlanan aynı istekler yalnızca önbelleğinizi test edebilir, bu nedenle veriler değişiklik gösterebilir.
  • Bir kez test ediliyor. Performans her sürümde değiştiğinden testleri düzenli olarak gerçekleştirin.

Son sözler

Beklediğiniz trafiği idare edebildiğinizi doğrulamak için yük testleri yapın ve bunu başaramadığınızda ne olacağını öğrenmek için stres testleri yapın. Küçük başlayın: En önemli kullanıcı yolculuğunuzu seçin, net bir hedef belirleyin ve izleme açıkken aşamalandırmaya karşı kısa bir test yapın. Bu ilk çalıştırma genellikle size bir şeyler öğretir ve oradan inşa edebilirsiniz.

Sık sorulan sorular

Yük ve stres testi arasındaki temel fark nedir?

Yük testi, belirlenen hedeflere göre beklenen trafik altındaki davranışı kontrol eder. Stres testi, kırılma noktasını ve sistemin nasıl toparlandığını bulma kapasitesinin ötesine geçer.

Önce yük testi mi yoksa stres testi mi yapmalıyım?

Önce testi yükleyin. Sistem beklenen trafik altında hedeflerine ulaştığında sınırlarını keşfetmek için stres testleri yapın. Stres sonuçları kararsız bir sistemde çok az şey ifade eder.

Stres testi ile spike testi arasındaki fark nedir?

Bir stres testi tipik olarak arızaya kadar yükü adım adım yükseltir. Ani değişim testi, sistemin ani değişimle nasıl başa çıktığını görmek için aniden yüksek bir seviyeye atlar.

p95 tepki süresi nedir?

Bu, isteklerin %95’inin bu tarihte veya daha kısa sürede tamamlandığı anlamına gelir. Çoğu kullanıcının deneyimini ortalamadan daha iyi tanımlar.

Üretimde yük testleri yapabilir miyim?

Bunu yapabilirsiniz, ancak dikkatlice, izin alarak, izleyerek ve hızlı bir şekilde durmanın bir yolu ile. Çoğu ekip, gerçek kullanıcılara yönelik riski azaltmak için üretime benzer bir hazırlama ortamıyla başlar.

Öğ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 →