О fuzzing-кодогенерации или «программа сама себя не напишет»

Многие команды используют так называемый fuzzing (генерация случайных наборов данных) для тестирования и некоторые — вполне успешно. Я же попробую рассказать о попытке применения fuzzing-техник для создания/оптимизации кода приложения. Сфера применения таких приложений, разумеется, ограничена — только задачи, где точное и полное решение отсутствует в принципе, а для любых решений есть некоторый критерий качества. Мы используем технику для оптимизации приложения для распознаванию рукописного ввода, но этим применение метода не заканчивается, а задуматься о нем можно, когда у себя в исходном коде вы видите нечто похожее:
static const double MaxHeightToWidthRatio = 1.25; //1.36;//1.2;//previously 1.4 // TODO
Читать дальше →

© Habrahabr.ru