CPPPROGLIB Telegram 6106
🔍 FuzzTest: Фреймворк для фаззинг-тестирования в C++

FuzzTest (от Google) — это библиотека для фаззинг-тестирования C++ кода.

🐼 Что это такое?

FuzzTest — это фреймворк, который автоматически генерирует тысячи тестовых случаев для вашего кода, пытаясь найти крайние случаи, утечки памяти, крэши и другие баги. В отличие от классических unit-тестов, где вы вручную задаёте входные данные, фаззер делает это за вас.


🍴 Почему стоит использовать?

void MyTest(int x, const std::string& s) {
EXPECT_TRUE(MyFunction(x, s));
}

FUZZ_TEST(MySuite, MyTest);


Простой синтаксис
Интеграция с GoogleTest
Умная генерация данных — автоматически создаёт осмысленные входные данные для сложных типов: строк, контейнеров, структур


✏️ Пример использования

#include "fuzztest/fuzztest.h"

void ParseUrlTest(const std::string& url) {
auto result = ParseUrl(url);
// Проверяем, что не крашится на любых входных данных
EXPECT_TRUE(result.has_value() || !result.has_value());
}

FUZZ_TEST(UrlParser, ParseUrlTest)
.WithDomains(fuzztest::Arbitrary<std::string>());


‼️ Когда использовать?

Парсеры и обработчики пользовательского ввода
Сериализация/десериализация
Криптографические функции
Работа со сложными структурами данных
API, которые должны быть устойчивы к любым входным данным


💌 Github

Библиотека C/C++ разработчика
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🤔41



tgoop.com/cppproglib/6106
Create:
Last Update:

🔍 FuzzTest: Фреймворк для фаззинг-тестирования в C++

FuzzTest (от Google) — это библиотека для фаззинг-тестирования C++ кода.

🐼 Что это такое?

FuzzTest — это фреймворк, который автоматически генерирует тысячи тестовых случаев для вашего кода, пытаясь найти крайние случаи, утечки памяти, крэши и другие баги. В отличие от классических unit-тестов, где вы вручную задаёте входные данные, фаззер делает это за вас.


🍴 Почему стоит использовать?

void MyTest(int x, const std::string& s) {
EXPECT_TRUE(MyFunction(x, s));
}

FUZZ_TEST(MySuite, MyTest);


Простой синтаксис
Интеграция с GoogleTest
Умная генерация данных — автоматически создаёт осмысленные входные данные для сложных типов: строк, контейнеров, структур


✏️ Пример использования

#include "fuzztest/fuzztest.h"

void ParseUrlTest(const std::string& url) {
auto result = ParseUrl(url);
// Проверяем, что не крашится на любых входных данных
EXPECT_TRUE(result.has_value() || !result.has_value());
}

FUZZ_TEST(UrlParser, ParseUrlTest)
.WithDomains(fuzztest::Arbitrary<std::string>());


‼️ Когда использовать?

Парсеры и обработчики пользовательского ввода
Сериализация/десериализация
Криптографические функции
Работа со сложными структурами данных
API, которые должны быть устойчивы к любым входным данным


💌 Github

Библиотека C/C++ разработчика

BY Библиотека C/C++ разработчика | cpp, boost, qt


Share with your friend now:
tgoop.com/cppproglib/6106

View MORE
Open in Telegram


Telegram News

Date: |

Write your hashtags in the language of your target audience. A Hong Kong protester with a petrol bomb. File photo: Dylan Hollingsworth/HKFP. Read now You can invite up to 200 people from your contacts to join your channel as the next step. Select the users you want to add and click “Invite.” You can skip this step altogether. Developing social channels based on exchanging a single message isn’t exactly new, of course. Back in 2014, the “Yo” app was launched with the sole purpose of enabling users to send each other the greeting “Yo.”
from us


Telegram Библиотека C/C++ разработчика | cpp, boost, qt
FROM American