testing

8 статей

Назад ко всем статьям

Символическое исполнение нашло целочисленное переполнение, которое пропустило моё покрытие тестами в 94%

Ваши модульные тесты проверяют конкретные входные данные. Символическое исполнение проверяет каждый возможный ввод. Вот как это работает, чего это стоит и с чего начать.

Metamorphic testing нашёл 147 багов в компиляторах и дефект в системе самоуправляемого автомобиля. Вот как это работает.

Metamorphic testing выявил реальные баги в GCC, LLVM, компиляторах шейдеров Vulkan и симуляторах ADAS. В этом посте объясняется техника с рабочим кодом и показано, куда она вписывается в ваш набор тестов.

Большинство metamorphic relations бесполезны. Вот как выбрать хорошие.

Не все metamorphic relations ловят баги. Слабые соотношения дают ложную уверенность, а сильные находят реальные дефекты. Вот как отличить их и построить набор соотношений, который реально работает.

Я перестал копировать код в документацию, храня тесты, код и прозу в одном Markdown-файле

Literate programming поддерживает синхронизацию документации, тестов и реализации, делая Markdown-файл единственным источником правды. Вот как реализовать это тридцатью строками на Python.