[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"me":3,"catalog:en: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 Automation","","pf-metrics-percentiles-analysis","Pf Metrics Percentiles Analysis","en",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,"In a performance test report, why is the p95 response time usually more useful than the average (mean) response time?",[132,135,138,141],{"key":133,"text":134},"a","Because the p95 value is always mathematically smaller than the average",{"key":136,"text":137},"b","Because a small number of very slow requests can pull the average up or down without showing how the slowest users actually experienced the system, while p95 directly reports a tail value",{"key":139,"text":140},"c","Because calculating an arithmetic average requires the reporting tool to keep every single raw sample sorted in memory for the whole test duration, which costs far more CPU and memory than deriving a percentile from a compact histogram structure",{"key":142,"text":143},"d","Because averages can only be computed when the sample size is an even number, so odd-sized test runs must fall back to reporting a percentile instead","A handful of very slow (or very fast) outliers can distort the arithmetic mean, hiding how bad the experience is for the slower fraction of users. p95 is a tail-focused value: it directly tells you the response time below which 95% of requests fell, which is closer to what a real user's 'worst normal' experience looks like.",{"id":146,"topic":9,"difficulty":129,"body":147,"options":148,"correct_key":142,"explanation":157},"019ff6e3-968e-71af-827d-b2ed67602ccc","What does the p50 (50th percentile) of a response-time distribution represent?",[149,151,153,155],{"key":133,"text":150},"The slowest response time recorded during the test",{"key":136,"text":152},"The average of the fastest and slowest response times",{"key":139,"text":154},"The response time that exactly 50 requests exceeded, regardless of total sample size",{"key":142,"text":156},"The median: the value below which 50% of the recorded response times fall","p50 is simply the median of the distribution — the point at which half of the observed response times are lower and half are higher. It is not tied to a fixed count of 50 requests; it always represents 50% of whatever the total sample size is.",{"id":159,"topic":9,"difficulty":129,"body":160,"options":161,"correct_key":133,"explanation":170},"019ff6e3-968e-7e93-9f45-587f1f93638e","If a load test report shows p99 = 2400 ms for an endpoint, what does this number mean?",[162,164,166,168],{"key":133,"text":163},"99% of the recorded requests completed in 2400 ms or less, and 1% took longer",{"key":136,"text":165},"99% of the requests failed and only 1% succeeded in 2400 ms",{"key":139,"text":167},"The test ran for 99% of 2400 ms before stopping",{"key":142,"text":169},"2400 ms is the exact response time of the 99th request sent during the test","p99 = 2400 ms means that when you sort all recorded response times, 99% of them are at or below 2400 ms, leaving the slowest 1% above it. It has nothing to do with failure rate, elapsed test duration, or a specific request's ordinal position.",{"id":172,"topic":9,"difficulty":173,"body":174,"options":175,"correct_key":139,"explanation":184},"019ff6e3-968f-7a6c-8aed-a01f16faf4aa",2,"Why do performance engineers often care more about p99 than p50 when evaluating a large-scale production API?",[176,178,180,182],{"key":133,"text":177},"Because p99 is always easier to compute than p50",{"key":136,"text":179},"Because p99 always equals the maximum recorded response time",{"key":139,"text":181},"Because at high request volumes, even a 'rare' 1% tail translates into a large absolute number of real users experiencing slow responses",{"key":142,"text":183},"Because monitoring tools cannot calculate p50 for endpoints that receive more than 1000 requests in a single test run, so they silently fall back to reporting only the maximum value instead","At scale, percentages translate into real user counts: if an API serves 1,000,000 requests, the 1% behind p99 is 10,000 slow requests — not a negligible edge case. p50 hides this entirely, since it only reflects the 'typical' middle of the distribution.",{"id":186,"topic":9,"difficulty":129,"body":187,"options":188,"correct_key":136,"explanation":197},"019ff6e3-9690-792f-9aa3-61e477dccf8e","In general statistics terms, what is a percentile?",[189,191,193,195],{"key":133,"text":190},"A fixed unit of time such as a millisecond or second",{"key":136,"text":192},"A value below which a given percentage of the observations in a data set fall",{"key":139,"text":194},"The square root of the variance of a data set",{"key":142,"text":196},"A count of how many times a specific value repeats in a data set","A percentile is a statistical measure indicating the value below which a certain percentage of observations in a dataset fall. p95 is the value below which 95% of the data points lie.",{"id":199,"topic":9,"difficulty":173,"body":200,"options":201,"correct_key":139,"explanation":210},"019ff6e3-9691-77cb-9248-1f6776884c2d","A team reports 'average response time: 220 ms' for an endpoint and declares performance healthy. Later they discover that 60% of requests actually complete in 80 ms while the remaining 40% complete in 450 ms (a bimodal distribution, e.g. cache hits vs cache misses). What does this scenario illustrate?",[202,204,206,208],{"key":133,"text":203},"That the average was calculated incorrectly and should be recalculated using a different formula",{"key":136,"text":205},"That bimodal distributions always mean the load test tool has a bug",{"key":139,"text":207},"That a single average number can mask two very different sub-populations of requests, giving a misleadingly 'moderate' picture of performance",{"key":142,"text":209},"That cache misses should always be filtered out and excluded from performance test results entirely, since they represent an abnormal condition rather than real production traffic","The average (220 ms) sits between the two clusters (80 ms and 450 ms) and does not represent either group well — no individual request actually experiences ~220 ms. This is the classic pitfall of averaging a bimodal distribution: the summary number looks moderate while nearly half the traffic is actually slow.",{"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":373,"name_en":6,"sort":374,"specializations":375},"QA \u002F Test Otomasyonu",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},[434,10],"tr",[436,437],"google","github",27600,true]