Действительно, проблема здесь в следующем: поскольку ваше приложение предназначено для выполнения нечетких, недетерминированных задач умным способом, единственная цель, которую вы надеетесь достичь, состоит в том, что приложение становится лучше, чем люди при поиске эти шаблоны. Это здорово, мощно и круто ... но если вы справитесь, то людям будет очень трудно сказать: «В этом случае ответом должен быть Х».
На самом деле, в идеале компьютер сказал бы: «Не совсем. Я понимаю, почему вы так думаете, но рассмотрите эти 4,2 терабайта информации здесь. Вы уже читали их? На основании этого я бы сказал, что ответ должен быть Z. "
И если вы действительно достигли своей первоначальной цели, конечный пользователь может иногда сказать: «Зоуи, ты прав. Это лучший ответ. Вы нашли образец, который принесет нам деньги! (Или спасет нас»). деньги или что-то в этом роде. "
Если такого никогда не случится, то почему вы в первую очередь просите компьютер обнаруживать подобные шаблоны?
Итак, самое лучшее, что я могу придумать, - это позволить реальной жизни помочь вам составить список тестовых сценариев. Если в прошлом был обнаружен паттерн, который оказался ценным, то проведите «модульный тест», который обнаружит, обнаруживает ли ваша система его при получении аналогичных данных. Я говорю «модульный тест» в кавычках, потому что он может быть больше похож на интеграционный тест, но вы все равно можете использовать NUnit или VS.Net или RSpec или любые другие инструменты модульного тестирования, которые вы используете.
В некоторых из этих тестов вы могли бы как-то попытаться «насмехаться» над 4,2 терабайтами данных (вы не будете насмехаться над данными, но на более высоком уровне вы будете высмеивать некоторые выводы, сделанные из этих данных) , Для других, возможно, у вас есть «тестовая база данных» с некоторыми данными, из которой вы ожидаете, что будет обнаружен набор шаблонов.
Кроме того, если вы можете сделать это, было бы замечательно, если бы система могла «описать свои рассуждения» за шаблонами, которые она обнаруживает. Это позволило бы бизнес-пользователю обдумать вопрос о том, было ли приложение правильным или нет.