Chapter 7. Testing

In many conversations with other sysadmins, I get the sense that they don’t think of themselves as testers. Whether we think of ourselves as testers or not, the reality is that we are using tests to give ourselves information on the state of tasks and to explore our environments so we can understand them better. We want to prevent those terrible 2 a.m. pages or at least learn to remedy problems quickly. In this chapter, you’ll learn what tests to write to leverage automated testing, evaluate the effectiveness of tests, and change them to suit your needs. You’ll need these foundational concepts to apply testing to infracode (Chapter 11) and infrastructure management (Chapter 12).

You’re Already Testing

Have you ever run through installing a set of software on a nonproduction or nonlive system, watching to see how the system responded and whether any gotchas could impact users? This manual testing approach is known as exploratory testing. The goal of exploratory testing is to help discover the unknown by experimenting with the system and looking at areas that may need more subjective analysis as to whether they are in a good state. In “Exploratory Testing Explained”, James Bach defined exploratory testing as “simultaneous learning, test design, and test execution.” In contrast to scripted tests, exploratory testing is executed based on your knowledge and perspectives, so it’s vulnerable to your personal biases.

You can level up your manual ...

Get Modern System Administration now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.