[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"me":3,"catalog:en:backend\u002Ftesting":4,"config":253},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":148,"samples":168},"backend","Backend","","testing","Testing","en",75,3300,[14,15,16],"junior","mid","senior",[18,21,24,27,30,33,36,39,42,45,48,51,54,57,60,63,66,69,72,75,78,81,84,87,90,93,96,99,102,105,108,111,114,117,120,123,126,129,132,135,138,141,144,147],{"key":19,"name":20,"count":11},"api-design","API Design",{"key":22,"name":23,"count":11},"caching","Caching",{"key":25,"name":26,"count":11},"concurrency","Concurrency",{"key":28,"name":29,"count":11},"csharp-concurrency-async","Csharp Concurrency Async",{"key":31,"name":32,"count":11},"csharp-exceptions","Csharp Exceptions",{"key":34,"name":35,"count":11},"csharp-generics-interfaces","Csharp Generics Interfaces",{"key":37,"name":38,"count":11},"csharp-memory-performance","Csharp Memory Performance",{"key":40,"name":41,"count":11},"csharp-stdlib-http","Csharp Stdlib Http",{"key":43,"name":44,"count":11},"csharp-testing-tooling","Csharp Testing Tooling",{"key":46,"name":47,"count":11},"databases-sql","Databases \u002F SQL",{"key":49,"name":50,"count":11},"go-concurrency","Go Concurrency",{"key":52,"name":53,"count":11},"go-errors","Go Errors",{"key":55,"name":56,"count":11},"go-interfaces-generics","Go Interfaces Generics",{"key":58,"name":59,"count":11},"go-memory-performance","Go Memory Performance",{"key":61,"name":62,"count":11},"go-stdlib-http","Go Stdlib Http",{"key":64,"name":65,"count":11},"go-testing-tooling","Go Testing Tooling",{"key":67,"name":68,"count":11},"java-concurrency","Java Concurrency",{"key":70,"name":71,"count":11},"java-exceptions","Java Exceptions",{"key":73,"name":74,"count":11},"java-generics-interfaces","Java Generics Interfaces",{"key":76,"name":77,"count":11},"java-memory-jvm","Java Memory Jvm",{"key":79,"name":80,"count":11},"java-stdlib-http","Java Stdlib Http",{"key":82,"name":83,"count":11},"java-testing-tooling","Java Testing Tooling",{"key":85,"name":86,"count":11},"messaging-queues","Messaging \u002F Queues",{"key":88,"name":89,"count":11},"networking-http","Networking \u002F HTTP",{"key":91,"name":92,"count":11},"nodejs-error-handling","Nodejs Error Handling",{"key":94,"name":95,"count":11},"nodejs-event-loop-async","Nodejs Event Loop Async",{"key":97,"name":98,"count":11},"nodejs-memory-performance","Nodejs Memory Performance",{"key":100,"name":101,"count":11},"nodejs-modules-streams","Nodejs Modules Streams",{"key":103,"name":104,"count":11},"nodejs-stdlib-http","Nodejs Stdlib Http",{"key":106,"name":107,"count":11},"nodejs-testing-tooling","Nodejs Testing Tooling",{"key":109,"name":110,"count":11},"php-concurrency-async","Php Concurrency Async",{"key":112,"name":113,"count":11},"php-exceptions","Php Exceptions",{"key":115,"name":116,"count":11},"php-generics-interfaces","Php Generics Interfaces",{"key":118,"name":119,"count":11},"php-memory-performance","Php Memory Performance",{"key":121,"name":122,"count":11},"php-stdlib-http","Php Stdlib Http",{"key":124,"name":125,"count":11},"php-testing-tooling","Php Testing Tooling",{"key":127,"name":128,"count":11},"python-concurrency-async","Python Concurrency Async",{"key":130,"name":131,"count":11},"python-errors-context","Python Errors Context",{"key":133,"name":134,"count":11},"python-memory-performance","Python Memory Performance",{"key":136,"name":137,"count":11},"python-stdlib-http","Python Stdlib Http",{"key":139,"name":140,"count":11},"python-testing-tooling","Python Testing Tooling",{"key":142,"name":143,"count":11},"python-typing-oop","Python Typing Oop",{"key":145,"name":146,"count":11},"security","Security",{"key":8,"name":9,"count":11},[149,153,156,159,162,165],{"key":150,"name":151,"count":152},"csharp","C#\u002F.NET",450,{"key":154,"name":155,"count":152},"go","Go",{"key":157,"name":158,"count":152},"java","Java",{"key":160,"name":161,"count":152},"nodejs","Node.js",{"key":163,"name":164,"count":152},"php","PHP",{"key":166,"name":167,"count":152},"python","Python",[169,187,200,214,227,240],{"id":170,"topic":9,"difficulty":171,"body":172,"options":173,"correct_key":178,"explanation":186},"019f56bb-b3bc-7817-b85a-cc69c11c8335",1,"What does a unit test primarily verify?",[174,177,180,183],{"key":175,"text":176},"a","That the whole application behaves correctly from the end user's perspective",{"key":178,"text":179},"b","That a small, isolated piece of logic behaves correctly on its own",{"key":181,"text":182},"c","That the application stays responsive under heavy load",{"key":184,"text":185},"d","That separate modules communicate with each other correctly","A unit test targets the smallest testable piece of logic in isolation from external dependencies. Verifying modules working together (d) is the job of integration tests, and the end-user perspective (a) belongs to end-to-end tests.",{"id":188,"topic":9,"difficulty":171,"body":189,"options":190,"correct_key":181,"explanation":199},"019f56bb-b3bd-70e2-9240-c349b1c1dfa2","According to the test pyramid, why should a project have many unit tests but only a few end-to-end tests?",[191,193,195,197],{"key":175,"text":192},"Because end-to-end tests find fewer bugs than unit tests do",{"key":178,"text":194},"Because unit tests are the only kind a CI server can run reliably",{"key":181,"text":196},"Because lower-level tests are faster, more stable, and cheaper to run and debug in bulk",{"key":184,"text":198},"Because integration tests become unnecessary once unit coverage is high","The pyramid is about cost and feedback speed: unit tests run in milliseconds and pinpoint failures, while end-to-end tests are slow, brittle, and expensive to maintain in large numbers. It is not that e2e tests find fewer bugs (a) — a few of them remain essential for critical flows.",{"id":201,"topic":9,"difficulty":202,"body":203,"options":204,"correct_key":175,"explanation":213},"019f56bb-b3bd-789e-a830-5ce03089340e",2,"```\ncounter = 0   \u002F\u002F shared module-level variable\n\ntest \"single increment\" {\n  increment()\n  assert counter == 1\n}\n\ntest \"double increment\" {\n  increment()\n  increment()\n  assert counter == 3\n}\n```\nBoth tests pass when the file runs top to bottom. What is the problem here?",[205,207,209,211],{"key":175,"text":206},"The tests share mutable state, so they fail when run alone, in a different order, or in parallel",{"key":178,"text":208},"Nothing — as long as the whole suite passes, the tests are fine",{"key":181,"text":210},"There is no issue in the code, because test runners reset module-level variables before each test",{"key":184,"text":212},"The two tests duplicate logic and should be merged into a single test","The second test expects 3 only because the first test already incremented the shared counter; run alone it would see 2 and fail. Test runners do not magically reset your module state between tests (c) — each test must arrange its own starting state.",{"id":215,"topic":9,"difficulty":202,"body":216,"options":217,"correct_key":184,"explanation":226},"019f56bb-b3be-7062-a642-aa6a9ccf1cb7","What is the key difference between a unit test and an integration test?",[218,220,222,224],{"key":175,"text":219},"A unit test may freely use a real database as long as it tests a single function",{"key":178,"text":221},"An integration test always drives the system through its user interface",{"key":181,"text":223},"Unit tests are written by developers, while integration tests belong to QA only",{"key":184,"text":225},"A unit test isolates one piece of logic; an integration test verifies components working together","Integration tests exercise real collaboration — for example service code against a real database — while unit tests replace such dependencies to isolate the logic. Touching a real database (a) already makes a test an integration test in most teams' vocabulary.",{"id":228,"topic":9,"difficulty":202,"body":229,"options":230,"correct_key":178,"explanation":239},"019f56bb-b3be-7728-b2a6-35fe5497f7ed","You are writing a unit test for `convertPrice(amount, currency)`, which internally calls a third-party HTTP exchange-rate API. How should the test handle that API call?",[231,233,235,237],{"key":175,"text":232},"Call the real API so the test stays as realistic as possible",{"key":178,"text":234},"Replace the API client with a test double that returns a fixed exchange rate",{"key":181,"text":236},"Skip testing this function, since it depends on an external service",{"key":184,"text":238},"Cache the first real API response on disk and reuse it in later runs","A fixed-rate double makes the test fast, deterministic, and able to set up exact scenarios (e.g. a specific rate). Real calls (a) make the test slow and flaky and tie its outcome to live data; the cached-response variant (d) still depends on a real first call and hides what the test actually assumes.",{"id":241,"topic":9,"difficulty":202,"body":242,"options":243,"correct_key":175,"explanation":252},"019f56bb-b3bf-7026-8a3d-98cc2e278b79","Many test frameworks let you define a setup block that runs before every single test in a file (pseudocode: `setup { ... }`). What is its purpose?",[244,246,248,250],{"key":175,"text":245},"To rebuild a known, clean starting state before each test",{"key":178,"text":247},"To prepare shared data exactly once and reuse it across all tests for speed",{"key":181,"text":249},"To guarantee that the tests execute in the order they are declared",{"key":184,"text":251},"To automatically retry a failed test starting from a fresh state","A per-test setup keeps tests independent: each one starts from the same known state. Preparing data once for all tests (b) describes a before-all style hook — convenient for expensive resources, but a classic source of cross-test coupling when the shared data is mutable.",{"fields":254,"seniorities":424,"interview_shapes":425,"locales":430,"oauth":432,"question_count":435,"coach_enabled":436,"jd_match_enabled":436},[255,266,286,303,327,340,359,378,398,405,411,418],{"key":5,"name_tr":6,"name_en":6,"sort":171,"specializations":256},[257,260,261,262,263,264,265],{"key":258,"name":259,"field":5},"general","Genel",{"key":154,"name":155,"field":5},{"key":166,"name":167,"field":5},{"key":157,"name":158,"field":5},{"key":150,"name":151,"field":5},{"key":160,"name":161,"field":5},{"key":163,"name":164,"field":5},{"key":267,"name_tr":268,"name_en":268,"sort":202,"specializations":269},"frontend","Frontend",[270,271,274,277,280,283],{"key":258,"name":259,"field":267},{"key":272,"name":273,"field":267},"javascript","JavaScript",{"key":275,"name":276,"field":267},"typescript","TypeScript",{"key":278,"name":279,"field":267},"react","React",{"key":281,"name":282,"field":267},"vue","Vue",{"key":284,"name":285,"field":267},"angular","Angular",{"key":287,"name_tr":288,"name_en":288,"sort":289,"specializations":290},"fullstack","Fullstack",3,[291,292,293,294,295,296,297,298,299,300,301,302],{"key":258,"name":259,"field":287},{"key":154,"name":155,"field":5},{"key":166,"name":167,"field":5},{"key":157,"name":158,"field":5},{"key":150,"name":151,"field":5},{"key":160,"name":161,"field":5},{"key":163,"name":164,"field":5},{"key":272,"name":273,"field":267},{"key":275,"name":276,"field":267},{"key":278,"name":279,"field":267},{"key":281,"name":282,"field":267},{"key":284,"name":285,"field":267},{"key":304,"name_tr":305,"name_en":305,"sort":306,"specializations":307},"devops-cloud","DevOps \u002F Cloud",4,[308,309,312,315,318,321,324],{"key":258,"name":259,"field":304},{"key":310,"name":311,"field":304},"aws","AWS",{"key":313,"name":314,"field":304},"gcp","GCP",{"key":316,"name":317,"field":304},"azure","Azure",{"key":319,"name":320,"field":304},"kubernetes","Kubernetes",{"key":322,"name":323,"field":304},"terraform","Terraform",{"key":325,"name":326,"field":304},"linux","Linux",{"key":328,"name_tr":329,"name_en":329,"sort":330,"specializations":331},"ai-engineer","AI Engineer",5,[332,333,334,337],{"key":258,"name":259,"field":328},{"key":166,"name":167,"field":328},{"key":335,"name":336,"field":328},"llm-rag","LLM\u002FRAG",{"key":338,"name":339,"field":328},"mlops","MLOps",{"key":341,"name_tr":342,"name_en":343,"sort":344,"specializations":345},"database","Veritabanı","Database",6,[346,347,350,353,356],{"key":258,"name":259,"field":341},{"key":348,"name":349,"field":341},"postgresql","PostgreSQL",{"key":351,"name":352,"field":341},"mysql","MySQL",{"key":354,"name":355,"field":341},"mongodb","MongoDB",{"key":357,"name":358,"field":341},"redis","Redis",{"key":360,"name_tr":361,"name_en":362,"sort":363,"specializations":364},"mobile","Mobil","Mobile",7,[365,366,369,372,375],{"key":258,"name":259,"field":360},{"key":367,"name":368,"field":360},"ios-swift","iOS (Swift)",{"key":370,"name":371,"field":360},"android-kotlin","Android (Kotlin)",{"key":373,"name":374,"field":360},"flutter","Flutter",{"key":376,"name":377,"field":360},"react-native","React Native",{"key":145,"name_tr":379,"name_en":146,"sort":380,"specializations":381},"Güvenlik",8,[382,383,386,389,392,395],{"key":258,"name":259,"field":145},{"key":384,"name":385,"field":145},"appsec","AppSec",{"key":387,"name":388,"field":145},"offensive-pentest","Offensive \u002F Pentest",{"key":390,"name":391,"field":145},"cloud-security","Cloud Security",{"key":393,"name":394,"field":145},"devsecops","DevSecOps",{"key":396,"name":397,"field":145},"blue-team-incident","Blue Team \u002F Incident",{"key":399,"name_tr":400,"name_en":401,"sort":402,"specializations":403},"qa-test-automation","QA \u002F Test Otomasyonu","QA \u002F Test Automation",9,[404],{"key":258,"name":259,"field":399},{"key":406,"name_tr":407,"name_en":407,"sort":408,"specializations":409},"data-engineer","Data Engineer",10,[410],{"key":258,"name":259,"field":406},{"key":412,"name_tr":413,"name_en":414,"sort":415,"specializations":416},"game-dev","Oyun Geliştirme","Game Development",11,[417],{"key":258,"name":259,"field":412},{"key":419,"name_tr":420,"name_en":420,"sort":421,"specializations":422},"ml-engineer","ML Engineer",12,[423],{"key":258,"name":259,"field":419},[14,15,16],{"junior":426,"mid":428,"senior":429},{"questions":427,"median_sec":3},20,{"questions":427,"median_sec":3},{"questions":427,"median_sec":3},[431,10],"tr",[433,434],"google","github",21750,true]