Skip to main content

Book 10

Testing & Quality

How teams check that code works and keeps working: kinds of tests, test doubles and the tools that catch mistakes early.

Contents

  1. 01A/B Testing1A/B testing is an experiment that shows two versions of a feature to random groups of real users and measures which one performs better on a chosen metric.
  2. 02Acceptance Testing2Acceptance testing checks whether software meets the requirements agreed with its users or customers, so the team can decide if it is ready to release.
  3. 03Assertion3An assertion is a statement in code declaring that a condition must be true at that point, stopping the test or program with an error if it is false.
  4. 04Behavior-Driven Development4Behavior-driven development is a practice where developers, testers, and business people agree on plain-language examples that become automated tests.
  5. 05Black-Box Testing5Black-box testing checks software only through its inputs and outputs, against what it is supposed to do, without looking at or relying on the code inside.
  6. 06Contract Testing6Contract testing is a technique that checks whether two services agree on the requests and responses they exchange, without running both of them together.
  7. 07Cypress7Cypress is a JavaScript framework that runs end-to-end and component tests for web apps inside the browser, with automatic waiting and an interactive runner.
  8. 08End-to-End Test8An end-to-end test is an automated test that runs a complete user journey through the whole application, from the user interface to the database and back.
  9. 09Exploratory Testing9Exploratory testing is a hands-on approach in which a tester learns about the software, designs tests, and runs them at once, guided by what they discover.
  10. 10Flaky Test10A flaky test is an automated test that sometimes passes and sometimes fails without any change to the code, which makes its results hard to trust.
  11. 11Fuzz Testing11Fuzz testing is an automated technique that feeds a program huge numbers of unexpected or malformed inputs to find crashes, hangs, and security vulnerabilities.
  12. 12Integration Test12An integration test is an automated test that checks whether several parts of a system, such as code, a database, and an API, work correctly together.
  13. 13Jest13Jest is a popular JavaScript testing framework that bundles a test runner, assertions, mocking, snapshots and code coverage in one package with little setup.
  14. 14Linting14Linting is the automated analysis of source code, without running it, to flag likely bugs, style problems, and suspicious patterns before the code ships.
  15. 15Load Testing15Load testing is a type of performance testing that simulates many users or requests at once to measure how a system behaves under expected traffic.
  16. 16Mocking16Mocking is a testing technique that replaces a real dependency, such as a database or API, with a fake you control so that code can be tested in isolation.
  17. 17Mutation Testing17Mutation testing measures the quality of a test suite by inserting small deliberate bugs into the code and checking whether the tests fail and catch each one.
  18. 18Performance Testing18Performance testing measures how fast, stable and scalable a system is under expected and extreme load, from response times to its breaking point.
  19. 19Playwright19Playwright is Microsoft's open-source framework for end-to-end testing and browser automation, driving Chromium, Firefox and WebKit through one API.
  20. 20Property-Based Testing20Property-based testing checks that a rule holds for many automatically generated inputs, instead of only for a handful of examples written by hand.
  21. 21Quality Assurance21Quality assurance (QA) is the set of practices that ensure software meets its requirements and works reliably, aiming to prevent defects, not just find them.
  22. 22Regression Testing22Regression testing is the practice of re-running existing tests after a code change to make sure that features which used to work have not broken.
  23. 23Selenium23Selenium is an open-source suite of tools for automating web browsers, used mainly for end-to-end testing, with its WebDriver API available in many languages.
  24. 24Smoke Test24A smoke test is a quick, shallow check that the most important features of a build work at all, run before any time is spent on deeper testing.
  25. 25Snapshot Testing25Snapshot testing is a technique that saves the output of code to a file on the first run and fails later runs if the output no longer matches that copy.
  26. 26Static Analysis26Static analysis is the automated examination of source code without running it, to find bugs, security vulnerabilities, and quality problems early.
  27. 27Stress Testing27Stress testing pushes a system beyond its expected workload on purpose to find its breaking point and to check that it fails gracefully and recovers afterward.
  28. 28Test Automation28Test automation is using code to run tests and check their results, so the same checks repeat quickly and consistently on every change instead of by hand.
  29. 29Test Case29A test case is a check of one specific behavior: starting conditions, input or steps, and the expected result that shows if the software behaves correctly.
  30. 30Test Coverage30Test coverage is a metric that measures how much of a program's source code is executed when its automated tests run, usually shown as a percentage.
  31. 31Test Fixture31A test fixture is the known state a test needs before it runs, such as sample data or a configured object, plus the code that sets it up and tears it down.
  32. 32Test Pyramid32The test pyramid is a model for balancing automated tests: many fast unit tests, fewer integration tests, and only a few slow end-to-end tests at the top.
  33. 33Test Runner33A test runner is a tool that finds a project's automated tests, executes them, and reports which ones passed or failed, usually from a single command.
  34. 34Test-Driven Development34Test-driven development is a coding practice in which you write a failing test first, then write just enough code to pass it, and then clean up the design.
  35. 35Unit Test35A unit test is a small, automated check that verifies one function, method, or class behaves correctly in isolation from the rest of the program.
  36. 36White-Box Testing36White-box testing designs tests from knowledge of the code's internal structure, so that its statements, branches and paths are exercised and checked directly.

Back to the libraryNext book: Networking

Read a random page
Open today's review
Switch to the dark theme
Read this page in Türkçe

More

Settings