Software testing is an investigative process that provides an objective view of software to understand risks of new implementations. There are two types of testing: manual and automated. Automated testing uses tools like QTP to automate testing. QTP scripts can be recorded or custom written and it uses VBScript. QTP has different recording modes like context sensitive, analog, and low level. Checkpoints in QTP compare values to expected results and include standard, bitmap, and text checkpoints.