5 fill-in-the-blank exercises. Read each realistic sentence from a code review, sprint planning, or postmortem — then choose the technical term that fits the blank.
Terms practised in this set
Regression — a test type that checks nothing existing was broken by a change
Feature flag — a toggle to enable/disable a feature without redeploying
Idempotent — same result whether called once or many times
Refactor — restructure code without changing its behaviour
Scalable — able to handle increasing load without degrading
0 / 10 completed
1 / 10
Choose the word that best completes the sentence:
"After merging the hotfix branch, we need to run the _____ tests to make sure the new patch didn't break any existing functionality."
Regression tests verify that previously working features still work after a change (a bug fix, a refactor, a new feature). The name comes from "software regression" — when a fix accidentally re-introduces an old bug or breaks something else.
The other options in context: • Smoke tests — fast, shallow checks that the application starts and the most critical paths work. Run first, before deeper tests. "Does the app boot? Does login work?" • Unit tests — test a single function or class in isolation. Fast and focused, but don't test component interaction. • Integration tests — test how multiple components work together (e.g., API + database). Slower and broader than unit tests.
How they fit in a CI pipeline: commit → unit tests (fast) → integration tests (slower) → regression tests → deploy
Common usage: "The regression suite caught a broken session timeout that wasn't covered by the unit tests." "We don't have enough regression coverage — every hotfix risks breaking the login flow."
2 / 10
Choose the term that best completes the sentence:
"We'll ship the dark mode feature behind a _____ and enable it only for internal employees first, before rolling it out to all users."
Feature flag (also called a feature toggle or feature switch) — a configuration variable that enables or disables a feature at runtime without redeploying code. The code ships, but the feature is "off" for most users until explicitly enabled.
Common use cases: • Canary releases — enable the feature for 1–5% of users to monitor for errors before full rollout • Internal testing — enable for employees only first ("dogfooding") • A/B testing — show feature A to 50% of users and feature B to the other 50%; measure which performs better • Kill switch — if a released feature causes a spike in errors, disable it instantly without a rollback deployment • Gradual rollout — enable for 10%, then 25%, then 50%, then 100%
The other options: • Rate limiter — restricts how many requests a user/IP can make per second/minute • Circuit breaker — stops calling a failing downstream service to prevent cascading failures • Load balancer — distributes incoming traffic across multiple server instances
3 / 10
Choose the term that best completes the sentence:
"The payment service's endpoint is not _____ — if a client retries a timed-out request, it creates a duplicate charge."
Idempotent (adjective) — producing the same result whether you perform the operation once or many times. From mathematics: f(f(x)) = f(x).
In APIs and distributed systems, idempotency is critical because networks fail and clients retry requests. A retry in a non-idempotent endpoint can have unintended consequences (duplicate charges, double emails, duplicate database records).
HTTP method idempotency: • GET — idempotent and safe (no side effects) • PUT — idempotent (setting a resource to a value twice gives the same result) • DELETE — idempotent (deleting what's already deleted returns the same state) • POST — NOT idempotent by default (each call creates a new resource) • PATCH — may or may not be idempotent, depending on implementation
Solution for non-idempotent operations: use an idempotency key — a unique ID the client sends with the request. The server stores the key and, if it sees the same key again, returns the original response instead of processing again. Stripe, Braintree, and most payment APIs require this.
Example header:Idempotency-Key: 550e8400-e29b-41d4-a716-446655440000
4 / 10
Choose the term that best completes the sentence:
"The codebase has grown organically over five years. Before we add OAuth 2.0 support, we need to _____ the authentication module — it's a tangled mess of global variables and if-else chains."
Refactor (verb) — to restructure existing code without changing its external behaviour. The goal is to improve readability, maintainability, and structure — not to add features or fix bugs. Named after "factoring" in mathematics: rearranging an expression into a cleaner form.
Key point: refactoring preserves behaviour. If you change what the code does, it's not a refactor — it's a modification.
Common refactoring operations: • Extract function — pull repeated code into a named function • Rename variable — give a variable a clearer name (x → userSessionToken) • Replace conditional with polymorphism — replace nested if-else chains with object-oriented design patterns • Remove duplication — DRY (Don't Repeat Yourself) • Split large function — a 300-line function becomes five 60-line functions
Refactoring and technical debt: technical debt accumulates when developers take shortcuts ("we'll clean it up later"). Refactoring pays down that debt. The quote in the exercise is a classic description of technical debt — "tangled mess of global variables."
The other options: • Deprecate — mark something as outdated and scheduled for removal, but keep it temporarily so existing users can migrate • Document — write documentation; doesn't restructure the code • Compile — translate source code to machine code; a build-time operation
5 / 10
Choose the term that best completes the sentence:
"The app had 2 million active users, but our infrastructure was not _____ — when traffic doubled during the product launch, the API servers fell over and we had 45 minutes of downtime."
Scalable (adjective) — capable of handling increasing load (more users, more data, more requests) without degrading in performance or availability. Scalability is one of the most important non-functional requirements in software engineering.
Two types of scaling: • Vertical scaling (scaling up) — add more resources to a single server: more CPU, more RAM, faster storage. Simple, but has a physical upper limit and creates a single point of failure. • Horizontal scaling (scaling out) — add more servers and distribute the load between them. More complex (requires load balancing, stateless design, distributed data), but theoretically unlimited. Preferred for modern cloud architectures.
Why "not scalable" causes outages: If servers are stateful (store user sessions locally), you can't just add more servers — sessions break. If the database is a single node, it becomes the bottleneck. If the application can't run in multiple parallel instances, horizontal scaling is impossible.
Related terms: • Load balancer — distributes traffic across multiple instances • Autoscaling — cloud infrastructure that automatically adds/removes servers based on traffic • Stateless design — each request is self-contained; sessions stored in Redis/JWT, not in server memory — required for horizontal scaling • Elasticity — ability to scale both up (more load) and back down (less load) dynamically
6 / 10
During the code review, Sarah commented: 'This function is highly coupled to the database layer. We should refactor it to improve testability and reduce dependencies.' What does 'coupled' mean in this context?
In software development, 'coupled' refers to the degree of interdependence between different modules or components. A highly coupled function is tightly connected to specific external systems like a database – changes in one directly impact the other. This makes testing and modification more difficult; options A and B accurately describe this relationship.
7 / 10
Mark sent a Slack message to the team: 'The API response for user profile retrieval is returning 500 errors intermittently. It's likely related to rate limiting on the third-party authentication service.' What does 'rate limiting' refer to?
'Rate limiting' is a crucial defense mechanism used to prevent abuse and overload of an API. It restricts the number of requests that a client can make within a given timeframe, safeguarding the backend service from being overwhelmed – option B is the correct definition.
8 / 10
In the PR description for adding support for WebSockets, David wrote: 'We're implementing a pull strategy to handle incoming connections. This allows us to efficiently manage a large number of concurrent users.' What does 'pull strategy' mean in this scenario?
A 'pull strategy' in WebSockets means that the server actively requests updates from connected clients rather than waiting for them to send data. This approach is more efficient for handling a high volume of users and incoming messages – option B accurately reflects this behavior.
9 / 10
During the standup meeting, Emily reported: 'The microservice responsible for user authentication is exhibiting intermittent latency spikes. We suspect a bottleneck in the database queries.' What does 'latency' refer to?
'Latency' is a fundamental concept in networking and distributed systems – it measures the delay between sending a request and receiving its response. Option B correctly defines latency as the time taken for a process to complete; options A, C, and D represent different metrics.
10 / 10
The team is discussing migrating to serverless architecture. 'Cold starts' are a concern. What do 'cold starts' refer to?
'Cold starts' are a characteristic challenge in serverless environments. When a serverless function hasn't been invoked recently, the underlying infrastructure needs to be initialized before it can execute – this initial delay is what's known as a 'cold start'. Options B, C, and D describe different aspects of serverless services.
What does the "IT Vocabulary in Context" vocabulary exercise cover?
This exercise tests real IT vocabulary related to it vocabulary in context through 10 multiple-choice questions, each built from realistic workplace sentences rather than abstract definitions.
Is this vocabulary exercise free to use?
Yes. Every exercise on CoderSlingo, including this one, is completely free — no account, sign-up, or payment required.
How many questions does this exercise have?
This exercise has 10 questions. Each one shows a real-world sentence or scenario with multiple-choice options and an explanation once you answer.
What happens after I answer a question?
You'll see immediate feedback showing whether your answer was correct, along with a short explanation of why — then a button to move to the next question, and a full results screen at the end.
Can I retry the exercise if I get questions wrong?
Yes. Once you reach the results screen, click "Try again" to reset your answers and go through the exercise from the start as many times as you like.
Do I need to create an account to take this exercise?
No account is needed. Your answers are scored in your browser during the session — nothing is saved to a server, so you can jump straight in.
Is my progress saved if I leave the page?
No — progress within an exercise resets if you navigate away or reload. Each exercise is short enough to complete in a few minutes in one sitting.
Are these vocabulary exercises connected to other topics?
Yes — browse the full vocabulary exercises hub to find related modules covering adjacent IT topics and roles.
How is this different from reading a glossary or blog article?
Exercises like this one are active recall drills — you have to choose the correct term or phrasing yourself, which builds retention faster than passively reading a definition.
Where can I find more vocabulary exercises?
Browse the full Vocabulary exercises hub for hundreds of modules covering Agile, DevOps, security, databases, architecture, and more — organised by IT role and skill.