We use automated testing to ensure our software is working as designed. While flesh and blood testers always have the final say, it can be expensive and time-consuming to have humans test software over and over, every step of the way. By automating tests, we can check the validity of our work faster and more frequently. By making testing a regular and frequent part of development, we can spot errors early, the kind of errors that it could take humans months to find. Tests also help us catch mistakes made by changing the code base.
Depending on the circumstance, we use many different tools to make testing easier: