The software tester is an imperative component to quality software development. Their role has transformed over the last half a century and volumes of work have documented various approaches, methods, and skillsets to be used in that time. Software projects have gone from using monolithic architectures and heavyweight methodologies, to service-oriented and lightweight. Testing has transformed from a sequential step performed by dedicated testers to a continuous activity carried out by various development professionals. Technological advancements have pushed automation into routine test tasks permitting a change of focus for the tester. Management styles and methodologies have pushed development to be agile and lean, towards continuous integration and frequent release. Regardless of these many important changes, the software tester's role remains the verification and validation of software code.