Testing Flashcards
Software Testing
Assessment of software quality to verify and validate the software system under development, reduce the risk of software failure in operation, and ensure software meets stakeholder needs
Testing Principles
Testing reduces the probability of defects but cannot prove the absence of defects; testing cannot be exhaustive and requires prioritization; testing early reduces derived defects, time, and cost
Static Testing
Testing without code execution, often used to test specifications, designs, and code early in the development process (e.g., reviews, walkthroughs, and analysis)
Dynamic Testing
Testing that involves executing the code, focusing on functionality, performance, security, and other aspects of the software behavior
Black-Box Testing
Testing based on specifications without knowledge of the internal structure of the software (e.g., equivalence partitioning and boundary value analysis)
White-Box Testing
Testing based on the internal structure of the software, aiming for test coverage of statements, branches, paths, and conditions (e.g., statement testing and branch testing)
Test Levels
Component testing (testing individual units of code), integration testing (testing how components work together), system testing (testing the entire system), and acceptance testing (testing to ensure the system meets user needs)