openskills.info
Open Course

Software Testing Fundamentals

Software testing is the structured work of evaluating software and related materials to find defects, assess quality, and reduce risk. It includes reviews and analysis as well as running the software.

itSoftware engineering

Don't Panic — Software Testing Fundamentals

Software testing is the organized business of asking software a precise question, watching what it does, and writing down whether that answer is useful for a decision. This sounds less glamorous than launching a rocket, which is fortunate: rockets are expensive, and a password field is already quite capable of producing surprises.

The central object is evidence. A test does not prove software is perfect. It shows what happened when a particular test object met particular inputs, in a particular environment, against an expected result. That limit is not a flaw in testing. It is why the work starts with risk: some failures are more likely, more harmful, or more expensive to leave unexplored.

Keep the small but argumentative family of terms apart. An error is a human mistake. A defect is the flaw that enters a work product. A failure is the incorrect behavior observed when that defect runs under the wrong conditions. Debugging then finds and removes the defect; testing provides the evidence that sent everyone looking. The words are not interchangeable, even when a meeting is trying very hard to make them so.

Two routes produce that evidence. Static testing examines requirements, designs, code, or documents without running software. Dynamic testing runs it, supplies inputs, and compares actual results with expected results. One can expose an unclear requirement before there is runnable code; the other can expose behavior that emerges when components and environments meet. Neither is the other wearing a different hat.

The next important distinction is scope versus question. A test level says whether attention is on a component, an interface, a whole system, or acceptance. A test type asks what matters: function, security, performance, internal structure, or something else. A security test can exist at several levels, because software enjoys being inconveniently multidimensional.

Start with the Intro for the evidence loop and the relationship between testing, debugging, and quality assurance. Use the Slides when the terms need a compact map. Keep the Cheatsheet nearby when selecting partitions, boundaries, test levels, and reporting anchors. Then use the Practice Reference and Exercise to turn one written rule into inspectable cases. The goal is not a heroic pile of green checks. It is a clear account of what was tested, what it means, and what remains uncertain.

Where this skill leads

Relevant careers

See how this topic contributes to broader role-level skill maps.

Sources