Content & privacy
Production · INTERVIEW GUIDE

Testing & delivery

Testing, Git, containers, CI/CD, and cloud fundamentals.

Practice this topic
Browse the complete question directory
Filters
21 questions

Unit vs integration vs E2E tests?

Testing & delivery·Testing

Unit tests check a small piece of logic, integration tests verify collaborating components, and E2E tests exercise a complete user or API flow. They catch different classes of failure and have different setup and execution costs. A balanced strategy puts detailed business-rule checks near the unit level and preserves real integration coverage where mocks would hide bugs.

Foundation2 min read

What are Jest, React Testing Library and Supertest?

Testing & delivery·Testing

Jest provides test execution, assertions and tools for replacing dependencies. React Testing Library helps test components through behavior visible to users, while Supertest sends HTTP requests to an application for API assertions. They can be combined, but none automatically chooses meaningful cases or guarantees realism.

Foundation2 min read

Mock vs stub vs spy vs fixture?

Testing & delivery·Testing

Test doubles replace real collaborators so a test can control conditions or observe interactions. A stub supplies a response, a spy records calls, and a mock often combines replacement with expected interactions; terminology varies by library. Fixtures supply stable input data so cases are repeatable.

Foundation2 min read

Is 100% coverage enough?

Testing & delivery·Testing

Coverage measures which lines, branches or functions executed while tests ran. It can reveal untested areas, but execution does not prove that the assertions checked correct behavior. A suite can reach every line and still miss invalid inputs, race conditions or a wrong expected value.

Foundation2 min read

Merge vs rebase vs cherry-pick?

Testing & delivery·Git

Merge, rebase and cherry-pick integrate changes through different history operations. Merge combines histories, rebase recreates commits on a new base, and cherry-pick recreates selected changes on the current branch. Recreated commits receive new IDs, which matters when other people already depend on the old history.

Foundation2 min read

Reset vs revert, and when should I use stash?

Testing & delivery·Git

Reset changes the current branch reference and may also change staged or working files depending on its mode. Revert records a new inverse change while preserving shared history. Stash stores local changes temporarily so another operation can proceed, but it should not replace committing important work.

Foundation2 min read

How do I resolve a merge conflict or find a bad commit?

Testing & delivery·Git

A merge conflict means Git cannot automatically decide how competing changes should combine. Resolving it requires understanding the intended behavior, not just removing conflict markers. Bisect solves a different problem: it narrows the commit range that introduced a reproducible regression through repeated good/bad checks.

Foundation2 min read

Image vs container vs Dockerfile?

Testing & delivery·Docker

A Docker image packages a filesystem and configuration for starting an application. A container is an isolated process environment created from an image with a writable layer and runtime settings. A Dockerfile describes how the image is built, making the package reproducible rather than depending on manual server setup.

Intermediate2 min read

What are layers and multi-stage builds?

Testing & delivery·Docker

Docker layers are reusable filesystem changes produced during image creation. Build caching can reuse unchanged earlier work, while multi-stage builds separate compilation tools from the final runtime package. This improves build speed and can reduce production image size and unnecessary software.

Intermediate2 min read

Volumes vs networks vs Compose?

Testing & delivery·Docker

Volumes provide storage independent of a container's disposable writable layer. Container networks define communication paths and service-name resolution, while Compose declares a set of cooperating containers and their configuration. Together they make a local multi-service setup repeatable without placing every service in one container.

Intermediate2 min read

How do I make a production container safer and smaller?

Testing & delivery·Docker

A production image should contain the application and required runtime dependencies with no unnecessary development tools or embedded credentials. Runtime restrictions then reduce what a compromised process can access or change. Image size helps distribution, but maintenance and permissions are equally important.

Intermediate2 min read

CI vs continuous delivery vs continuous deployment?

Testing & delivery·CI/CD

Continuous integration checks changes frequently through automated builds and tests. Continuous delivery keeps a verified release ready for deployment, while continuous deployment automatically sends qualifying changes to production. The distinction is the production release decision, not whether any automation exists.

Intermediate2 min read

What should a pipeline do?

Testing & delivery·CI/CD

A delivery pipeline turns source changes into a verified, versioned artifact and releases it through controlled environments. Each step should provide evidence that the next step is safe and reproducible. Promoting the same artifact avoids rebuilding slightly different software for each environment.

Intermediate2 min read

What are GitHub Actions concepts?

Testing & delivery·CI/CD

GitHub Actions defines automated workflows triggered by repository or scheduled events. Workflows contain jobs that run on runners, and jobs contain ordered steps using commands or reusable actions. Artifacts and outputs move results between steps or jobs, while permissions control what the workflow may access.

Intermediate2 min read

Which AWS and Azure concepts should I know?

Testing & delivery·Cloud

Cloud platforms provide managed building blocks for compute, storage, databases, networking and operations. AWS and Azure use different service names, but the underlying choices—virtual machine versus managed runtime, object storage versus database, public versus private network—are transferable. Understanding responsibilities is more useful than memorizing a long service list.

Intermediate2 min read

How do DNS, load balancers, IAM and secrets fit together?

Testing & delivery·Cloud

DNS resolves names to records, load balancers select healthy destinations, IAM controls identities and permissions, and secret managers store sensitive credentials. These components connect an application to users and dependencies without putting all configuration into code. A failure at any layer can look like “the API is down” from the outside.

Intermediate2 min read

The container exits immediately. What should I check?

Testing & delivery·Troubleshooting

A container stays running while its main process remains alive. An immediate exit usually means the command finished, failed startup or was killed, rather than that Docker randomly stopped a healthy application. Logs, exit status and runtime configuration tell you which case occurred.

Intermediate2 min read

The app cannot reach the database container. What should I check?

Testing & delivery·Troubleshooting

Each container has its own network context, so localhost points back to that container rather than a sibling service. Reaching a database requires the correct address, network path, credentials and an accepting database process. Compose startup order can start a process without guaranteeing it has finished initialization.

Intermediate2 min read

Difficulty is an editorial estimate. Completion means you chose to mark a question as understood.