This document provides an introduction to testing Salt states. It discusses why testing is important for infrastructure code and outlines approaches for testing at different levels, from basic syntax checking to integration and acceptance tests. Methods covered include using salt-call to test individual states, writing tests that run in isolated Docker containers to prevent interference, and automating testing with scripts to run multiple permutations and aggregate results. Part 2 will provide code examples for automation and discuss additional testing techniques.