The platform that need to be supported are:
- iOS, Android, Windows Mobile, Windows Phone
— For your needs you can use SeeTest, EggPlant, Ranorex, Borland Silk Mobile — but they all are commercial solutions, most have free trial.
SeeTest is quite popular at the moment and has very positive feedback. Another good one is EggPlant as I know.
From free solutions you can look at Sikuli — however almost for sure you'll need additional configuration if you need to test on real devices.
Just for information:
Multi-platform tools, that will work for native apps, include:
All this tools are open-source and are free to use.
However I can't name good Windows Phone testing tools at the moment.
Appium is a good choice if you're familiar with Selenium
(it uses WebDriver API and supports many languages, including Java, C#, Ruby, Python, PHP, etc.).
Calabash is a good one as well, but it supports only Ruby. Also it has Cucumber support out of box.
I have no experience with MonkeyTalk. I know it has its own language and requires source code to test mobile apps.
Also there are screenshot-based tools, they will work for mobile as well. For instance:
fMBT and Sikuli are free; SeeTest, EggPlant and Ranorex should be paid for.
Their work is based on image recognition. So locators are graphical images. Assertions can be made by comparison with pre-made images, and also the usually can OCR text.
But when using screenshot-based tools, there can be some issues related to running tests on physical devices and to running tests in parallel.