[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"me":3,"catalog:en:qa-test-automation":4,"config":126},null,{"field_key":5,"field_name":6,"seniority":7,"topic_key":7,"topic_name":7,"spec_key":7,"spec_name":7,"locale":8,"cell_total":9,"field_total":9,"seniorities":10,"topics":14,"specs":40,"samples":41},"qa-test-automation","QA \u002F Test Automation","","en",600,[11,12,13],"junior","mid","senior",[15,19,22,25,28,31,34,37],{"key":16,"name":17,"count":18},"qa-api-testing","Qa Api Testing",75,{"key":20,"name":21,"count":18},"qa-automation-fundamentals","Qa Automation Fundamentals",{"key":23,"name":24,"count":18},"qa-ci-cd-testing","Qa Ci Cd Testing",{"key":26,"name":27,"count":18},"qa-defect-management","Qa Defect Management",{"key":29,"name":30,"count":18},"qa-exploratory-manual-testing","Qa Exploratory Manual Testing",{"key":32,"name":33,"count":18},"qa-performance-testing","Qa Performance Testing",{"key":35,"name":36,"count":18},"qa-test-case-design","Qa Test Case Design",{"key":38,"name":39,"count":18},"qa-test-strategy","Qa Test Strategy",[],[42,60,74,87,100,113],{"id":43,"topic":17,"difficulty":44,"body":45,"options":46,"correct_key":48,"explanation":59},"019f68ba-2372-7ade-8d26-7833bba132b1",1,"Compared to a UI test that clicks through screens, what does an API test primarily check?",[47,50,53,56],{"key":48,"text":49},"a","Requests and responses at the interface layer, without rendering any screen at all",{"key":51,"text":52},"b","That every screen renders correctly across different browsers and window sizes",{"key":54,"text":55},"c","That visual elements such as buttons and colors match the design file pixel by pixel",{"key":57,"text":58},"d","That a human tester can complete a full task end to end using only the mouse and keyboard","An API test talks directly to the interface underneath the UI: it sends a request and asserts on the status code, response body and side effects, with no screen involved at all. Rendering, layout and pixel-level checks (b, c) belong to UI\u002Fvisual testing, and manual end-to-end task completion (d) is a different testing activity entirely.",{"id":61,"topic":17,"difficulty":62,"body":63,"options":64,"correct_key":51,"explanation":73},"019f68ba-237c-7989-8026-e1345d2ce7ec",2,"A team notices their UI test suite takes 40 minutes and often fails for reasons unrelated to the feature being tested. They move the same checks down to API tests. What is the main practical benefit?",[65,67,69,71],{"key":48,"text":66},"API tests automatically also verify that the screen looks correct, so nothing is lost by removing the UI checks",{"key":51,"text":68},"API tests skip rendering and UI timing, so they run faster and are less exposed to flakiness from the UI layer",{"key":54,"text":70},"API tests do not need any test data setup, because they talk to the database directly instead of going through the API",{"key":57,"text":72},"API tests replace the need for manual exploratory testing, since they cover every possible user path automatically","Because an API test skips rendering, animations and UI timing, it runs in a fraction of the time and is not exposed to the instability that comes from waiting on screens — that's the layer advantage. It does not check how anything looks (a), it still needs realistic input data (c), and it doesn't replace exploratory testing (d), which targets different kinds of problems.",{"id":75,"topic":17,"difficulty":44,"body":76,"options":77,"correct_key":54,"explanation":86},"019f68ba-237e-7973-959e-92fb86e400bf","What is a contract test in the context of two systems — a consumer that calls an API and a provider that serves it?",[78,80,82,84],{"key":48,"text":79},"A test that measures how many requests per second the provider can handle before it slows down",{"key":51,"text":81},"A legal document both teams sign before development starts, describing the API in plain language",{"key":54,"text":83},"A test checking the consumer's expected shape matches what the provider produces",{"key":57,"text":85},"A test that runs only after both systems are deployed together in the production environment","A contract test captures what the consumer expects from an interaction (fields, types, required values) and checks that expectation against the provider, catching a mismatch before the two are integrated. Throughput measurement (a) is performance testing, a signed document (b) is not an automated test, and waiting until production (d) is exactly what contract testing is meant to avoid.",{"id":88,"topic":17,"difficulty":62,"body":89,"options":90,"correct_key":57,"explanation":99},"019f68ba-2380-7125-a9ce-741691e1af21","A mobile team's app expects the `total` field in an order response to be a number. A backend team quietly changes `total` to a string (`\"49.90\"`) and deploys. Nobody notices until the mobile app crashes in production. What would have caught this earlier?",[91,93,95,97],{"key":48,"text":92},"A larger manual QA regression pass covering more screens of the mobile app before each release",{"key":51,"text":94},"Increasing the load test traffic so the backend team notices unusual response patterns sooner",{"key":54,"text":96},"Asking the backend team to write more unit tests for their own internal calculation logic",{"key":57,"text":98},"A contract test encoding the expected type of `total`, run on every backend change","This is exactly the break a contract test is designed to catch: the mobile team's expectation (`total` is a number) is encoded as a check that runs whenever the provider changes, failing the build before the field type ever reaches a real device. More manual regression (a) still depends on someone happening to check that field, load testing (b) measures capacity, not shape, and the backend's own unit tests (c) verify its internal logic, not what the consumer actually requires from the response.",{"id":101,"topic":17,"difficulty":44,"body":102,"options":103,"correct_key":48,"explanation":112},"019f68ba-2382-70b6-aa6e-67cf9355ba60","In test design, what is the basic difference between a stub and a mock?",[104,106,108,110],{"key":48,"text":105},"A stub returns a canned response when called; a mock also lets the test verify it was called as expected",{"key":51,"text":107},"A stub can only be used for database calls, while a mock can only be used for calls to external APIs",{"key":54,"text":109},"A stub is written by developers, while a mock is written exclusively by testers as part of manual test cases",{"key":57,"text":111},"A stub runs slower than the real dependency, while a mock runs exactly as fast as the real dependency","A stub's job is to return a prepared answer so the test can proceed without the real dependency. A mock does that too, but also records the interaction so the test can assert on it — e.g. \"was this call made exactly once, with these arguments\". Neither is tied to a specific kind of dependency (b), both are written by whoever writes the test (c), and speed (d) isn't the distinguishing property between the two — it's the behavior-verification capability.",{"id":114,"topic":17,"difficulty":62,"body":115,"options":116,"correct_key":51,"explanation":125},"019f68ba-2383-7763-938b-b3694a83e233","A test for `POST \u002Forders` needs to call a third-party payment provider that charges a real fee per test run and is sometimes unavailable in the test environment. What is the most practical way to test the order logic itself?",[117,119,121,123],{"key":48,"text":118},"Skip testing this endpoint entirely until the payment provider guarantees 100% uptime in every environment",{"key":51,"text":120},"Replace the payment provider with a test double returning a controlled response, then test the order logic",{"key":54,"text":122},"Run the test against the real payment provider once a month, since fees are only charged during that single run",{"key":57,"text":124},"Ask the payment provider's team to slow down their own service so the test has more time to complete reliably","Using a test double for the payment call keeps the order test focused on its own logic (does the order get created, priced and stored correctly for a given payment outcome) without paying real fees or depending on the provider's availability — real-service behavior for the payment provider itself belongs to its own tests, ideally including a smaller number of true end-to-end checks. Skipping the endpoint (a) leaves it untested, monthly real runs (c) still leave most of the time uncovered, and asking a provider to change their service for your test (d) doesn't address the underlying dependency problem.",{"fields":127,"seniorities":311,"interview_shapes":312,"locales":317,"oauth":319,"question_count":322,"coach_enabled":323,"jd_match_enabled":323},[128,153,173,190,214,227,246,265,287,292,298,305],{"key":129,"name_tr":130,"name_en":130,"sort":44,"specializations":131},"backend","Backend",[132,135,138,141,144,147,150],{"key":133,"name":134,"field":129},"general","Genel",{"key":136,"name":137,"field":129},"go","Go",{"key":139,"name":140,"field":129},"python","Python",{"key":142,"name":143,"field":129},"java","Java",{"key":145,"name":146,"field":129},"csharp","C#\u002F.NET",{"key":148,"name":149,"field":129},"nodejs","Node.js",{"key":151,"name":152,"field":129},"php","PHP",{"key":154,"name_tr":155,"name_en":155,"sort":62,"specializations":156},"frontend","Frontend",[157,158,161,164,167,170],{"key":133,"name":134,"field":154},{"key":159,"name":160,"field":154},"javascript","JavaScript",{"key":162,"name":163,"field":154},"typescript","TypeScript",{"key":165,"name":166,"field":154},"react","React",{"key":168,"name":169,"field":154},"vue","Vue",{"key":171,"name":172,"field":154},"angular","Angular",{"key":174,"name_tr":175,"name_en":175,"sort":176,"specializations":177},"fullstack","Fullstack",3,[178,179,180,181,182,183,184,185,186,187,188,189],{"key":133,"name":134,"field":174},{"key":136,"name":137,"field":129},{"key":139,"name":140,"field":129},{"key":142,"name":143,"field":129},{"key":145,"name":146,"field":129},{"key":148,"name":149,"field":129},{"key":151,"name":152,"field":129},{"key":159,"name":160,"field":154},{"key":162,"name":163,"field":154},{"key":165,"name":166,"field":154},{"key":168,"name":169,"field":154},{"key":171,"name":172,"field":154},{"key":191,"name_tr":192,"name_en":192,"sort":193,"specializations":194},"devops-cloud","DevOps \u002F Cloud",4,[195,196,199,202,205,208,211],{"key":133,"name":134,"field":191},{"key":197,"name":198,"field":191},"aws","AWS",{"key":200,"name":201,"field":191},"gcp","GCP",{"key":203,"name":204,"field":191},"azure","Azure",{"key":206,"name":207,"field":191},"kubernetes","Kubernetes",{"key":209,"name":210,"field":191},"terraform","Terraform",{"key":212,"name":213,"field":191},"linux","Linux",{"key":215,"name_tr":216,"name_en":216,"sort":217,"specializations":218},"ai-engineer","AI Engineer",5,[219,220,221,224],{"key":133,"name":134,"field":215},{"key":139,"name":140,"field":215},{"key":222,"name":223,"field":215},"llm-rag","LLM\u002FRAG",{"key":225,"name":226,"field":215},"mlops","MLOps",{"key":228,"name_tr":229,"name_en":230,"sort":231,"specializations":232},"database","Veritabanı","Database",6,[233,234,237,240,243],{"key":133,"name":134,"field":228},{"key":235,"name":236,"field":228},"postgresql","PostgreSQL",{"key":238,"name":239,"field":228},"mysql","MySQL",{"key":241,"name":242,"field":228},"mongodb","MongoDB",{"key":244,"name":245,"field":228},"redis","Redis",{"key":247,"name_tr":248,"name_en":249,"sort":250,"specializations":251},"mobile","Mobil","Mobile",7,[252,253,256,259,262],{"key":133,"name":134,"field":247},{"key":254,"name":255,"field":247},"ios-swift","iOS (Swift)",{"key":257,"name":258,"field":247},"android-kotlin","Android (Kotlin)",{"key":260,"name":261,"field":247},"flutter","Flutter",{"key":263,"name":264,"field":247},"react-native","React Native",{"key":266,"name_tr":267,"name_en":268,"sort":269,"specializations":270},"security","Güvenlik","Security",8,[271,272,275,278,281,284],{"key":133,"name":134,"field":266},{"key":273,"name":274,"field":266},"appsec","AppSec",{"key":276,"name":277,"field":266},"offensive-pentest","Offensive \u002F Pentest",{"key":279,"name":280,"field":266},"cloud-security","Cloud Security",{"key":282,"name":283,"field":266},"devsecops","DevSecOps",{"key":285,"name":286,"field":266},"blue-team-incident","Blue Team \u002F Incident",{"key":5,"name_tr":288,"name_en":6,"sort":289,"specializations":290},"QA \u002F Test Otomasyonu",9,[291],{"key":133,"name":134,"field":5},{"key":293,"name_tr":294,"name_en":294,"sort":295,"specializations":296},"data-engineer","Data Engineer",10,[297],{"key":133,"name":134,"field":293},{"key":299,"name_tr":300,"name_en":301,"sort":302,"specializations":303},"game-dev","Oyun Geliştirme","Game Development",11,[304],{"key":133,"name":134,"field":299},{"key":306,"name_tr":307,"name_en":307,"sort":308,"specializations":309},"ml-engineer","ML Engineer",12,[310],{"key":133,"name":134,"field":306},[11,12,13],{"junior":313,"mid":315,"senior":316},{"questions":314,"median_sec":3},20,{"questions":314,"median_sec":3},{"questions":314,"median_sec":3},[318,8],"tr",[320,321],"google","github",21750,true]