Exploratory testing (or reactive / error-guessing / attack-based testing or bug hunting) is the simultaneous learning, test design and test execution. Testing is driven by observations during testing.
This depends on the tester's prior experience and intuition. This method aids in quick error discovery.
Scripted (proactive) uses a predetermined set of test cases. It is more systematic and is likely to discover more bugs in a given time period.
Unit Test - testing an individual unit, such as a method (function) in a class, with all dependencies mocked up.
Functional Test - AKA Integration Test, testing a slice of functionality in a system. This will test many methods and may interact with dependencies like Databases or Web Services.
Individual software modules are combined and tested as a group. Occurs after unit testing, before validation testing.
Acceptance testing is a level of software testing where a system is tested for acceptability. The purpose of this test is to evaluate the system’s compliance with the business requirements and assess whether it is acceptable for delivery.