Testing
Test the Behavior, Not the Code
A test that says "when this button is clicked, this function is called" is testing code. A test that says "when this button is clicked, the user sees a confirmation message" is testing behavior. We prioritize the second.
The ideal: if you lost your source code, you could reconstruct the application from its test suite alone. Tests describe what the system does, not how it's wired together internally.