Modernizing The Five Phases of a Software Tester’s Mental Life

Rasmus Ursem
5 min readFeb 16, 2023

Boris Beizer (1934–2018) was a computer scientist mostly known for introducing the five phases of a software tester’s mental life. In his book “Software testing techniques” (1983, 2nd ed. 1990), Beizer introduced the five phases, which may be summarized as follows.

Phase 0 represents the mindset of many new learners of programming and also a large faction of seasoned programmers who have never participated in larger development projects. Print-line debugging is a common technique used by programmers in this phase. Setting breakpoints and inspecting variables is a slightly more advanced method often used by developers with a phase 0 mindset.

Testers in phase 1 write tests to show that the software works as intended. These tests typically focus on “proving” that the requirements are fulfilled by the code base, i.e., that it works as it was intended. In this phase, testers are wearing “blinds” and usually don’t see the corner cases causing the software to fail. For example, testing a web shopping cart with a negative number of items — who would be stupid enough to enter that, right?!?

In phase 2, the tester has realized that most bugs loom in the corners of the code, i.e., the branching paths less traveled. Here, unexpected effects arise which are caused by feeding abnormal data to the…

--

--

Rasmus Ursem

Computer & data scientist, writer, thinker, photographer, and generally curious about life and the wet matter between our ears — in short, I’m a poly-geek :-)