Многое зависит от того, как настроено ваше приложение. У вас есть определенные юнит-тесты? Это многоуровневое приложение (данные / пользовательский интерфейс / бизнес / что угодно), где вам не нужно прямое взаимодействие с человеком для проверки функций, которые вам нужны?
Существуют приложения для тестирования третьей части, которые позволяют вам настраивать и запускать скрипты для тестирования ваших приложений (часто путем записи шагов, которые вы делаете, а затем запускаете их). WinRunner - это всего лишь один пример. Эти тестовые системы обычно настраиваются в некоторой степени.
Вы также можете создать тестовый проект (это будет намного проще, если у вас есть многоуровневое приложение) и эффективно «свернуть свое» тестовое приложение. Это может дать вам больший контроль над вашими тестами - вы можете либо выбрать выполнение тестов с предсказуемым выходом в предсказуемом порядке, либо генерировать случайные данные и тестировать объекты в случайных порядках через случайные интервалы, либо какую-то их комбинацию.