Как создать полезные тесты для фиксированных значений байтов

Как создать полезные тесты для фиксированных значений байтов
Как создать полезные тесты для фиксированных значений байтов - nina_mercado @ Unsplash

Я не думаю, что необходимо проводить исчерпывающее тестирование.

Типичный подход заключается в следующем:

  • протестировать несколько допустимых значений
  • Протестировать несколько недопустимых значений
  • Протестировать значения, которые находятся вблизи "границ", например, самые маленькие/самые большие допустимые и недопустимые значения.

Но вы могли бы подумать, зачем вам нужно модульное тестирование кода. Простое тестирование того, имеют ли два байта некоторые предопределенные значения, не будет очень ценным, на мой взгляд. Поскольку сложность очень низкая. Тесты нужно писать потому, что они вам как-то помогают, а не потому, что люди в интернете говорят вам, что вы должны писать юнит-тесты.

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

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

Рекомендую посмотреть эти видео для лучшего погружения в вопрос:

Прикрепленное видео 1 - Боги в восхищении, Заклинание с бесконечным временем жизни, Noita (Ноита) Epilogue прохождение

Прикрепленное видео 2 - DnD Как создать персонажа для игры на Roll20


LetsCodeIt, 5 января 2023 г., 14:46

Похожие посты

Тестовое покрытие для различных перестановок логики кода... Метаданные/артефакты в результатах алгоритма для описания какого случая?Почему эта диаграмма деятельности не имеет того же количества путей, что и число цикломатической сложности?Абстрагирование вызовов общих библиотечных методов в C#Написание тестов для API, результаты которых зависят от таблицы с миллионами строкТестируете ли вы свои CI/CD-скрипты?Тестовое покрытие для различных перестановок логики кода... Метаданные/артефакты в результатах алгоритма для описания какого случая?Написание тестов для API, результаты которых зависят от таблицы с миллионами строкВ тестировании плохо ли делать утверждения при очистке?Тестирование взаимодействия с проприетарным программным обеспечением без лицензииРучное тестирование с условием OR/многочисленными допустимыми точками входа