Что вы поняли из вашего вопроса, так это то, что вы ищете автоматизированный способ детального тестирования вашего поведения графического интерфейса пользователя. В качестве примера вы приводите проверку правильности построения кривой.
Фреймворки модульного тестирования предоставляют способ автоматизированного тестирования, но я думаю, что тип тестов, которые вы хотите сделать, это сложные интеграционные тесты, которые проверяют правильное поведение множества классов, среди которых классы вашего инструментария / библиотеки GUI , который вы не должны испытывать.
Ваши параметры в значительной степени зависят от того, какие платформы / наборы инструментов / платформы вы используете: например, приложение, использующее Qt в качестве своей структуры GUI, может использовать Squish для автоматизации своих тестов. Вы проверяете результаты своих тестов один раз, а последующие автоматически выполненные тесты сравнивают результаты с проверенными результатами.