# Lecture - Imperative Programming TT23, VI

> Source: https://ollybritton.com/notes/uni/prelims/tt23/ip/lectures/vi/ · Updated: 2023-05-08 · Tags: uni, lecture

- Test-driven development
	- Start off by writing tests, and then write code to make sure the tests pass
	- Tests drive the design and implementation
- Testing at different levels
	- Unit testing: test individual pieces of the system
	- Integration testing: test how pieces are assembled into more complex subsystems
	- System testing: test the entire application end-to-end
- Black box vs white box testing
	- Black box: no knowledge about the internal organisation of a component. Influenced only by the interface
	- White box: tests are influenced by the implementation
- Coming up with tests
	- Test representative samples of each equivalence class
	- Boundary testing: most programs fail at the boundaries of the input
- A change in a system that breaks seemingly unrealted parts is called a regression

### Flashcards (GPT-4)
Don’t think any of these warrant a flashcard.

---
Olly Britton — https://ollybritton.com. Machine-readable index: https://ollybritton.com/llms.txt
