[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"me":3,"catalog:tr:qa-test-automation\u002Fpf-metrics-percentiles-analysis":4,"config":211},null,{"field_key":5,"field_name":6,"seniority":7,"topic_key":8,"topic_name":9,"spec_key":7,"spec_name":7,"locale":10,"cell_total":11,"field_total":12,"seniorities":13,"topics":17,"specs":112,"samples":126},"qa-test-automation","QA \u002F Test Otomasyonu","","pf-metrics-percentiles-analysis","Pf Metrics Percentiles Analysis","tr",75,2400,[14,15,16],"junior","mid","senior",[18,21,24,27,30,33,36,39,42,45,48,49,52,55,58,61,64,67,70,73,76,79,82,85,88,91,94,97,100,103,106,109],{"key":19,"name":20,"count":11},"mq-appium-driver-architecture","Mq Appium Driver Architecture",{"key":22,"name":23,"count":11},"mq-device-lab-emulator-parallelization","Mq Device Lab Emulator Parallelization",{"key":25,"name":26,"count":11},"mq-mobile-locators-sync-flakiness","Mq Mobile Locators Sync Flakiness",{"key":28,"name":29,"count":11},"mq-native-frameworks-espresso-xcuitest","Mq Native Frameworks Espresso Xcuitest",{"key":31,"name":32,"count":11},"mq-network-conditioning-offline-validation","Mq Network Conditioning Offline Validation",{"key":34,"name":35,"count":11},"mq-permissions-lifecycle-system-interactions","Mq Permissions Lifecycle System Interactions",{"key":37,"name":38,"count":11},"pf-apm-profiling-bottleneck-correlation","Pf Apm Profiling Bottleneck Correlation",{"key":40,"name":41,"count":11},"pf-distributed-load-generation","Pf Distributed Load Generation",{"key":43,"name":44,"count":11},"pf-environment-fidelity-test-design","Pf Environment Fidelity Test Design",{"key":46,"name":47,"count":11},"pf-load-model-design","Pf Load Model Design",{"key":8,"name":9,"count":11},{"key":50,"name":51,"count":11},"pf-scripting-correlation-parameterization","Pf Scripting Correlation Parameterization",{"key":53,"name":54,"count":11},"qa-api-testing","Qa Api Testing",{"key":56,"name":57,"count":11},"qa-automation-fundamentals","Qa Automation Fundamentals",{"key":59,"name":60,"count":11},"qa-ci-cd-testing","Qa Ci Cd Testing",{"key":62,"name":63,"count":11},"qa-defect-management","Qa Defect Management",{"key":65,"name":66,"count":11},"qa-exploratory-manual-testing","Qa Exploratory Manual Testing",{"key":68,"name":69,"count":11},"qa-performance-testing","Qa Performance Testing",{"key":71,"name":72,"count":11},"qa-test-case-design","Qa Test Case Design",{"key":74,"name":75,"count":11},"qa-test-strategy","Qa Test Strategy",{"key":77,"name":78,"count":11},"sd-ci-test-infrastructure","Sd Ci Test Infrastructure",{"key":80,"name":81,"count":11},"sd-code-quality-test-code","Sd Code Quality Test Code",{"key":83,"name":84,"count":11},"sd-contract-testing","Sd Contract Testing",{"key":86,"name":87,"count":11},"sd-test-data-management","Sd Test Data Management",{"key":89,"name":90,"count":11},"sd-test-doubles-mocking","Sd Test Doubles Mocking",{"key":92,"name":93,"count":11},"sd-test-framework-design","Sd Test Framework Design",{"key":95,"name":96,"count":11},"ta-cross-browser-parallel-execution","Ta Cross Browser Parallel Execution",{"key":98,"name":99,"count":11},"ta-framework-architecture-patterns","Ta Framework Architecture Patterns",{"key":101,"name":102,"count":11},"ta-locators-selectors-strategy","Ta Locators Selectors Strategy",{"key":104,"name":105,"count":11},"ta-selenium-cypress-playwright-tradeoffs","Ta Selenium Cypress Playwright Tradeoffs",{"key":107,"name":108,"count":11},"ta-synchronization-flaky-tests","Ta Synchronization Flaky Tests",{"key":110,"name":111,"count":11},"ta-visual-regression-reporting","Ta Visual Regression Reporting",[113,117,120,123],{"key":114,"name":115,"count":116},"mobile-qa","Mobile QA",450,{"key":118,"name":119,"count":116},"performance-testing","Performance Testing",{"key":121,"name":122,"count":116},"sdet","SDET",{"key":124,"name":125,"count":116},"test-automation","Test Automation",[127,145,158,171,185,198],{"id":128,"topic":9,"difficulty":129,"body":130,"options":131,"correct_key":136,"explanation":144},"019ff6e3-968d-706a-942c-b93bda92b7bf",1,"Bir performans test raporunda p95 response time genellikle neden ortalama (mean) response time'dan daha kullanışlıdır?",[132,135,138,141],{"key":133,"text":134},"a","Çünkü p95 değeri matematiksel olarak her zaman ortalamadan küçüktür",{"key":136,"text":137},"b","Çünkü az sayıda çok yavaş istek ortalamayı yukarı ya da aşağı çekebilir ve en yavaş kullanıcıların gerçekte nasıl bir deneyim yaşadığını gizleyebilir; p95 ise doğrudan kuyruktaki bir değeri raporlar",{"key":139,"text":140},"c","Çünkü aritmetik ortalama hesaplamak, raporlama aracının tüm test süresi boyunca her bir ham örneği bellekte sıralı tutmasını gerektirir; bu, kompakt bir histogram yapısından percentile türetmekten çok daha fazla CPU ve bellek tüketir",{"key":142,"text":143},"d","Çünkü ortalama yalnızca örneklem sayısı çift olduğunda hesaplanabilir, tek sayılı test koşularının bunun yerine percentile raporlaması gerekir","Az sayıda çok yavaş (ya da çok hızlı) aykırı değer, aritmetik ortalamayı çarpıtabilir ve kullanıcıların yavaş kesiminin deneyiminin ne kadar kötü olduğunu gizleyebilir. p95 kuyruğa odaklı bir değerdir: isteklerin %95'inin altında kaldığı response time'ı doğrudan gösterir, bu da gerçek bir kullanıcının 'normalin en kötüsü' deneyimine daha yakındır.",{"id":146,"topic":9,"difficulty":129,"body":147,"options":148,"correct_key":142,"explanation":157},"019ff6e3-968e-71af-827d-b2ed67602ccc","Bir response-time dağılımının p50 (50. persentil) değeri neyi ifade eder?",[149,151,153,155],{"key":133,"text":150},"Test sırasında kaydedilen en yavaş response time'ı",{"key":136,"text":152},"En hızlı ve en yavaş response time'ların ortalamasını",{"key":139,"text":154},"Toplam örneklem büyüklüğünden bağımsız olarak tam 50 isteğin aştığı response time değerini",{"key":142,"text":156},"Medyanı: kaydedilen response time'ların %50'sinin altında kaldığı değeri","p50, dağılımın medyanıdır — gözlemlenen response time'ların yarısının bu değerin altında, yarısının üzerinde kaldığı noktadır. Sabit bir 50 istek sayısına bağlı değildir; toplam örneklem büyüklüğü ne olursa olsun her zaman %50'yi temsil eder.",{"id":159,"topic":9,"difficulty":129,"body":160,"options":161,"correct_key":133,"explanation":170},"019ff6e3-968e-7e93-9f45-587f1f93638e","Bir load test raporunda bir endpoint için p99 = 2400 ms gösteriliyorsa bu değer ne anlama gelir?",[162,164,166,168],{"key":133,"text":163},"Kaydedilen isteklerin %99'u 2400 ms veya daha kısa sürede tamamlandı, %1'i ise daha uzun sürdü",{"key":136,"text":165},"İsteklerin %99'u başarısız oldu, yalnızca %1'i 2400 ms içinde başarılı oldu",{"key":139,"text":167},"Test, durmadan önce 2400 ms'nin %99'u kadar süre çalıştı",{"key":142,"text":169},"2400 ms, test sırasında gönderilen 99. isteğin tam response time'ıdır","p99 = 2400 ms, kaydedilen tüm response time'lar sıralandığında bunların %99'unun 2400 ms veya altında kaldığı, en yavaş %1'lik dilimin ise bunun üzerinde olduğu anlamına gelir. Hata oranıyla, testin toplam süresiyle ya da belirli bir isteğin sıra numarasıyla ilgisi yoktur.",{"id":172,"topic":9,"difficulty":173,"body":174,"options":175,"correct_key":139,"explanation":184},"019ff6e3-968f-7a6c-8aed-a01f16faf4aa",2,"Büyük ölçekli bir production API'sini değerlendirirken performans mühendisleri neden çoğu zaman p50'den çok p99'u önemser?",[176,178,180,182],{"key":133,"text":177},"Çünkü p99 her zaman p50'den daha kolay hesaplanır",{"key":136,"text":179},"Çünkü p99 her zaman kaydedilen maksimum response time'a eşittir",{"key":139,"text":181},"Çünkü yüksek istek hacimlerinde 'nadir' görünen %1'lik kuyruk bile gerçekte çok sayıda kullanıcının yavaş yanıt deneyimlemesi anlamına gelir",{"key":142,"text":183},"Çünkü izleme araçları tek bir test koşusunda 1000'den fazla istek alan endpoint'ler için p50 hesaplayamaz, bu yüzden sessizce yalnızca maksimum değeri raporlamaya geri döner","Ölçek büyüdükçe yüzdeler gerçek kullanıcı sayılarına dönüşür: bir API 1.000.000 istek karşılıyorsa p99'un arkasındaki %1, 10.000 yavaş istek demektir — göz ardı edilebilir bir uç durum değildir. p50 ise sadece dağılımın 'tipik' orta noktasını yansıttığı için bunu tamamen gizler.",{"id":186,"topic":9,"difficulty":129,"body":187,"options":188,"correct_key":136,"explanation":197},"019ff6e3-9690-792f-9aa3-61e477dccf8e","Genel istatistik terimleriyle percentile nedir?",[189,191,193,195],{"key":133,"text":190},"Milisaniye veya saniye gibi sabit bir zaman birimi",{"key":136,"text":192},"Bir veri setindeki gözlemlerin belirli bir yüzdesinin altında kaldığı değer",{"key":139,"text":194},"Bir veri setinin varyansının kareköküdür",{"key":142,"text":196},"Bir veri setinde belirli bir değerin kaç kez tekrarlandığının sayısıdır","Percentile, bir veri setindeki gözlemlerin belirli bir yüzdesinin altında kaldığı değeri gösteren istatistiksel bir ölçüttür. p95, veri noktalarının %95'inin altında kaldığı değerdir.",{"id":199,"topic":9,"difficulty":173,"body":200,"options":201,"correct_key":139,"explanation":210},"019ff6e3-9691-77cb-9248-1f6776884c2d","Bir ekip bir endpoint için 'ortalama response time: 220 ms' raporluyor ve performansı sağlıklı ilan ediyor. Daha sonra isteklerin aslında %60'ının 80 ms'de, kalan %40'ının ise 450 ms'de tamamlandığını keşfediyorlar (örneğin cache hit vs cache miss kaynaklı bimodal bir dağılım). Bu senaryo neyi gösterir?",[202,204,206,208],{"key":133,"text":203},"Ortalamanın yanlış hesaplandığını ve farklı bir formülle yeniden hesaplanması gerektiğini",{"key":136,"text":205},"Bimodal dağılımların her zaman load test aracında bir bug olduğu anlamına geldiğini",{"key":139,"text":207},"Tek bir ortalama sayının, birbirinden çok farklı iki istek alt-popülasyonunu gizleyebileceğini ve yanıltıcı biçimde 'orta düzey' bir tablo çizebileceğini",{"key":142,"text":209},"Cache miss'lerin, gerçek production trafiğini değil anormal bir durumu temsil ettiği için performans test sonuçlarından her zaman filtrelenip tamamen hariç tutulması gerektiğini","Ortalama (220 ms), iki kümenin (80 ms ve 450 ms) arasında bir yerde durur ve hiçbirini gerçekten temsil etmez — hiçbir tekil istek fiilen ~220 ms sürmez. Bu, bimodal bir dağılımın ortalamasını almanın klasik tuzağıdır: özet sayı orta düzey görünürken trafiğin neredeyse yarısı aslında yavaştır.",{"fields":212,"seniorities":427,"interview_shapes":428,"locales":433,"oauth":435,"question_count":438,"coach_enabled":439,"jd_match_enabled":439},[213,238,258,275,299,312,331,350,372,381,396,418],{"key":214,"name_tr":215,"name_en":215,"sort":129,"specializations":216},"backend","Backend",[217,220,223,226,229,232,235],{"key":218,"name":219,"field":214},"general","Genel",{"key":221,"name":222,"field":214},"go","Go",{"key":224,"name":225,"field":214},"python","Python",{"key":227,"name":228,"field":214},"java","Java",{"key":230,"name":231,"field":214},"csharp","C#\u002F.NET",{"key":233,"name":234,"field":214},"nodejs","Node.js",{"key":236,"name":237,"field":214},"php","PHP",{"key":239,"name_tr":240,"name_en":240,"sort":173,"specializations":241},"frontend","Frontend",[242,243,246,249,252,255],{"key":218,"name":219,"field":239},{"key":244,"name":245,"field":239},"javascript","JavaScript",{"key":247,"name":248,"field":239},"typescript","TypeScript",{"key":250,"name":251,"field":239},"react","React",{"key":253,"name":254,"field":239},"vue","Vue",{"key":256,"name":257,"field":239},"angular","Angular",{"key":259,"name_tr":260,"name_en":260,"sort":261,"specializations":262},"fullstack","Fullstack",3,[263,264,265,266,267,268,269,270,271,272,273,274],{"key":218,"name":219,"field":259},{"key":221,"name":222,"field":214},{"key":224,"name":225,"field":214},{"key":227,"name":228,"field":214},{"key":230,"name":231,"field":214},{"key":233,"name":234,"field":214},{"key":236,"name":237,"field":214},{"key":244,"name":245,"field":239},{"key":247,"name":248,"field":239},{"key":250,"name":251,"field":239},{"key":253,"name":254,"field":239},{"key":256,"name":257,"field":239},{"key":276,"name_tr":277,"name_en":277,"sort":278,"specializations":279},"devops-cloud","DevOps \u002F Cloud",4,[280,281,284,287,290,293,296],{"key":218,"name":219,"field":276},{"key":282,"name":283,"field":276},"aws","AWS",{"key":285,"name":286,"field":276},"gcp","GCP",{"key":288,"name":289,"field":276},"azure","Azure",{"key":291,"name":292,"field":276},"kubernetes","Kubernetes",{"key":294,"name":295,"field":276},"terraform","Terraform",{"key":297,"name":298,"field":276},"linux","Linux",{"key":300,"name_tr":301,"name_en":301,"sort":302,"specializations":303},"ai-engineer","AI Engineer",5,[304,305,306,309],{"key":218,"name":219,"field":300},{"key":224,"name":225,"field":300},{"key":307,"name":308,"field":300},"llm-rag","LLM\u002FRAG",{"key":310,"name":311,"field":300},"mlops","MLOps",{"key":313,"name_tr":314,"name_en":315,"sort":316,"specializations":317},"database","Veritabanı","Database",6,[318,319,322,325,328],{"key":218,"name":219,"field":313},{"key":320,"name":321,"field":313},"postgresql","PostgreSQL",{"key":323,"name":324,"field":313},"mysql","MySQL",{"key":326,"name":327,"field":313},"mongodb","MongoDB",{"key":329,"name":330,"field":313},"redis","Redis",{"key":332,"name_tr":333,"name_en":334,"sort":335,"specializations":336},"mobile","Mobil","Mobile",7,[337,338,341,344,347],{"key":218,"name":219,"field":332},{"key":339,"name":340,"field":332},"ios-swift","iOS (Swift)",{"key":342,"name":343,"field":332},"android-kotlin","Android (Kotlin)",{"key":345,"name":346,"field":332},"flutter","Flutter",{"key":348,"name":349,"field":332},"react-native","React Native",{"key":351,"name_tr":352,"name_en":353,"sort":354,"specializations":355},"security","Güvenlik","Security",8,[356,357,360,363,366,369],{"key":218,"name":219,"field":351},{"key":358,"name":359,"field":351},"appsec","AppSec",{"key":361,"name":362,"field":351},"offensive-pentest","Offensive \u002F Pentest",{"key":364,"name":365,"field":351},"cloud-security","Cloud Security",{"key":367,"name":368,"field":351},"devsecops","DevSecOps",{"key":370,"name":371,"field":351},"blue-team-incident","Blue Team \u002F Incident",{"key":5,"name_tr":6,"name_en":373,"sort":374,"specializations":375},"QA \u002F Test Automation",9,[376,377,378,379,380],{"key":218,"name":219,"field":5},{"key":124,"name":125,"field":5},{"key":121,"name":122,"field":5},{"key":118,"name":119,"field":5},{"key":114,"name":115,"field":5},{"key":382,"name_tr":383,"name_en":383,"sort":384,"specializations":385},"data-engineer","Data Engineer",10,[386,387,390,393],{"key":218,"name":219,"field":382},{"key":388,"name":389,"field":382},"pipelines-etl","Pipelines \u002F ETL",{"key":391,"name":392,"field":382},"streaming","Streaming",{"key":394,"name":395,"field":382},"warehousing","Warehousing",{"key":397,"name_tr":398,"name_en":399,"sort":400,"specializations":401},"game-dev","Oyun Geliştirme","Game Development",11,[402,403,406,409,412,415],{"key":218,"name":219,"field":397},{"key":404,"name":405,"field":397},"unity-csharp","Unity (C#)",{"key":407,"name":408,"field":397},"unreal-cpp","Unreal (C++)",{"key":410,"name":411,"field":397},"gameplay","Gameplay",{"key":413,"name":414,"field":397},"graphics-rendering","Graphics \u002F Rendering",{"key":416,"name":417,"field":397},"multiplayer-netcode","Multiplayer \u002F Netcode",{"key":419,"name_tr":420,"name_en":420,"sort":421,"specializations":422},"ml-engineer","ML Engineer",12,[423,424],{"key":218,"name":219,"field":419},{"key":425,"name":426,"field":419},"classical-ml","Classical ML",[14,15,16],{"junior":429,"mid":431,"senior":432},{"questions":430,"median_sec":3},20,{"questions":430,"median_sec":3},{"questions":430,"median_sec":3},[10,434],"en",[436,437],"google","github",27600,true]