Testing Flashcards
(5 cards)
Which software is used for manual testing?
- Browser DevTools
- React Developer Tools
- JIRA + Zephyr/TestRail
What is unit testing, and why is it important?
Unit testing is the practice of testing individual pieces of code—usually functions or components—in isolation to verify that they work correctly.
- Catches Bugs Early: Detects issues at the source before they escalate into bigger problems.
- Improves Code Quality: Forces developers to write modular, testable, and cleaner code.
- Simplifies Refactoring: Makes it safer and easier to change or improve code without breaking functionality.
- Documents Code Behavior: Tests serve as executable documentation showing how units are supposed to work.
- Speeds Up Debugging: When a test fails, it immediately points to the problematic part of the code.
- Supports Continuous Integration: Automated unit tests help maintain stability by catching regressions during builds.
What is the primary purpose of integration testing?
The primary purpose of integration testing is to verify that different individual modules or components of a software system work correctly together when combined.
What is E2E testing, and why do we need it?
End-to-End (E2E) testing is a type of software testing that validates the entire application flow — from the user interface down to the backend and databases — to ensure the whole system works as expected in a real-world scenario.
- Validate User Experience: Ensures users can complete tasks successfully, as intended.
- Catch Integration Issues: Detects problems that unit or integration tests might miss, especially when multiple subsystems interact.
- Verify Real Environment Behavior: Tests the app in conditions close to production, including network, browser quirks, and backend responses.
- Reduce Risk of Regression: Automated E2E tests catch bugs introduced by code changes that affect overall workflows.
- Build Confidence Before Releases: Helps stakeholders trust that critical features are functioning properly.
What is the difference between debugging in the browser and in IDE?
Browser debugging:
1. Runs in the browser runtime, as opposed to within development environment
2. Has a scope of client-side code only, as opposed to client-side and server-side code
3. Uses the DevTools, as opposed to the debugger built into IDE
4. Features DOM/CSS inspection, network logs; as opposed to Rich code introspection, test debugging
5. Is best for quick fixes, UI & network issues, as opposed to deep debugging, backend and tests