GO_INTERVIEW_LIB Telegram 427
💬 Как устроено фаззинг-тестирование в Go?

Фаззинг представляет собою технологию автоматизированного поиска ошибок с помощью случайных входных данных и анализа реакции программы на них. Она полезна, если нужно проверить граничные условия или корректность обработки потока ввода — то есть тогда, когда нужно найти значения, при которых «падает» программа. В Go 1.18 была введена встроенная поддержка фаззинг-тестирования.

📌 Основные правила для фаззинг-тестов в Go:

1. Название метода должно начинаться с FuzzXxx, принимать только *testing.F в качестве аргумента и не возвращать значение.
2. Название файла с фаззинг-тестами: *_test.go.
3. Фаззинг target должна быть вызовом метода (*testing.F).Fuzz, который принимает *testing.T в качестве первого параметра, за которым следуют аргументы для фаззинга (не возвращает значение).
4. В одном фаззинг-тесте должна быть ровно одна фаззинг target.
5. Все элементы seed corpus должны иметь типы, идентичные аргументам для фаззинга, в том же порядке. Это касается вызовов (*testing.F).Add и любых файлов corpus в директории testdata/fuzz.
6. Аргументы для фаззинга могут быть только следующих типов:
- string, []byte
- int, int8, int16, int32/rune, int64
- uint, uint8/byte, uint16, uint32, uint64
- float32, float64
- bool
👍5



tgoop.com/go_interview_lib/427
Create:
Last Update:

💬 Как устроено фаззинг-тестирование в Go?

Фаззинг представляет собою технологию автоматизированного поиска ошибок с помощью случайных входных данных и анализа реакции программы на них. Она полезна, если нужно проверить граничные условия или корректность обработки потока ввода — то есть тогда, когда нужно найти значения, при которых «падает» программа. В Go 1.18 была введена встроенная поддержка фаззинг-тестирования.

📌 Основные правила для фаззинг-тестов в Go:

1. Название метода должно начинаться с FuzzXxx, принимать только *testing.F в качестве аргумента и не возвращать значение.
2. Название файла с фаззинг-тестами: *_test.go.
3. Фаззинг target должна быть вызовом метода (*testing.F).Fuzz, который принимает *testing.T в качестве первого параметра, за которым следуют аргументы для фаззинга (не возвращает значение).
4. В одном фаззинг-тесте должна быть ровно одна фаззинг target.
5. Все элементы seed corpus должны иметь типы, идентичные аргументам для фаззинга, в том же порядке. Это касается вызовов (*testing.F).Add и любых файлов corpus в директории testdata/fuzz.
6. Аргументы для фаззинга могут быть только следующих типов:
- string, []byte
- int, int8, int16, int32/rune, int64
- uint, uint8/byte, uint16, uint32, uint64
- float32, float64
- bool

BY Библиотека Go для собеса | вопросы с собеседований


Share with your friend now:
tgoop.com/go_interview_lib/427

View MORE
Open in Telegram


Telegram News

Date: |

Telegram channels enable users to broadcast messages to multiple users simultaneously. Like on social media, users need to subscribe to your channel to get access to your content published by one or more administrators. Image: Telegram. For crypto enthusiasts, there was the “gm” app, a self-described “meme app” which only allowed users to greet each other with “gm,” or “good morning,” a common acronym thrown around on Crypto Twitter and Discord. But the gm app was shut down back in September after a hacker reportedly gained access to user data. Content is editable within two days of publishing The public channel had more than 109,000 subscribers, Judge Hui said. Ng had the power to remove or amend the messages in the channel, but he “allowed them to exist.”
from us


Telegram Библиотека Go для собеса | вопросы с собеседований
FROM American