Monkey Testing - Dumb, Smart & Semi-Smart Monkeys
Test monkeys are automated tools whose testing actions are randomly performed. Test monkeys find bugs differently than manual testing because test monkeys have no knowledge as to how humans will use the application. The test monkey is a useful complementary tool for covering the gaps left by manual testing and automated testing.
A dumb monkey knows nothing about the software being tested; it just clicks or types randomly. Dumb monkeys can be really effective. They're easy to write and can find serious, crashing bugs.
Semi-smart monkey: In case of a dumb monkey you know of a problem but does not know how to recreate it. You could add logging to your monkey so that next time you know what it was doing when the application crashed for example.
Smart monkeys can generate inputs with some knowledge to reflect expected usage. Some smart test monkeys get their product knowledge from a state table or model of the software under test.