Pebellslearn by building
0%
RoadmapsMatrixCoursesSandboxSign in
Testing Methodologies  ›  Lesson

Functional and Non-Functional Testing

Functional Testing 12 minFunctional testing checks what the software does against its requirements, while non-functional testing checks how well it does it, such as speed, security, usability, accessibility and compatibility.

Functional and Non-Functional Testing

Basketly's search returns exactly the right products for "milk". Every result is correct. But it takes eleven seconds, a screen reader cannot find the search box, and on older iPhones the results overlap. Is search working? It does the right thing, badly. That gap is the difference between the two biggest families of testing.

The rule

Functional asks "what does it do?"; non-functional asks "how well?"

Functional testing checks behaviour against the requirements. Given this input, does the feature produce the right output? Searching "milk" lists milk; SAVE10 takes 10% off a ₹600 cart; a wrong password is refused.

Non-functional testing checks the qualities of that behaviour. The main ones:

Quality Basketly question
Performance Do results appear within 1 second at peak?
Security Can one customer see another's orders?
Usability Can a first-time user check out without help?
Accessibility Can someone using a screen reader or only a keyboard shop?
Compatibility Does it work on the browsers, phones and screen sizes customers use?
Reliability Does it keep working through a whole busy evening?

Non-functional requirements are often left unwritten, so testers must ask for them: "fast" is not testable, but "results within 1 second for 95% of searches" is.

The shortcut

Read the check aloud and listen for its shape. If it says "it should do X", it is functional. If it says "it should do X within, for, on, safely or for everyone", a quality has crept in and it is non-functional.

Sorting checks for Basketly searchStep 1 of 4
  1. "Searching 'rice' lists rice products"

    Pure behaviour: what it does. Functional.

The trap is stopping after the functional checks pass. Customers leave slow, confusing or inaccessible apps even when every result is correct.

Drills

Answer fast — trust the rule.

quick drill

"A wrong password shows an error and does not log in." What kind of test?

quick drill

"Checkout works on Chrome, Firefox and Safari." What kind of test?

quick drill

The requirement says "search must be fast". What should a tester do?

quick drill

A screen reader user cannot find Basketly's Pay button. Which quality failed?

Remember

  • Functional asks "what does it do?"; non-functional asks "how well?"
  • Listen for within, for, on, safely or for everyone: that is a quality.
  • Turn vague qualities into numbers before you test them.

Practice — level up

0/1 solved

Write your answer, then compare it with a rubric and a model answer.

ExplainWhat it does, how well it does it

For Basketly's search box, write two functional checks and three non-functional checks, each labelled with its quality (for example performance or accessibility), and explain the difference between the two kinds.