If you are a programmer who needs to conduct tests to uncover errors and bugs, and are provided with special software tools to control the execution of these tests, what would be the best form of testing that would allow you to compare the test results with the perceived expected ones?

1. beta testing

2. alpha testing

3. test case

4. automated testing

4. automated testing