В этой статье мы разберём тестирование кода что это, для чего оно нужно и когда надо использовать, думаю многим будет интересно и полезно.
Также если вас интересуют unit тесты на разных языках программирования, то почитайте вот эти стать:
Думаю вам они будут интересны.
Для чего нужны тесты кода:
Для начала разберём для чего это всё вообще нужно, во первых это полезно когда вы на работу приходит новый сотрудник, и если у него появился баг, то он может просто запустить тест и проверить из-за чего это возможно произошло, где конкретно ошибка или сам создать новый тест.
Во вторых, это полезно когда вы планируете поддерживать код несколько лет, и за счёт тестов следить, как бы не чего не сломалось бы, или кто-то другой не сломал.
Ну и в третьих, самое главное для отловки багов, чтобы точно понимать, что в этой части кода всё в порядке и нет, багов, а если появились с обновлением, то сразу их исправить, так как вы сразу увидите что конкретно ломается, если конечно вы качественные тесты сделали.
Типы тестирования кода:
Тут я покажу какие типы тестирования есть вообще в целом, вот их список:
Юнит-тесты – проверка работоспособности каждого отдельного блока вашего кода. Это самый понятный вид тестирования даже для начинающего пользователя, ведь здесь идёт учёт лишь тех процессов, которые исполняются исключительно внутри отдельно взятого участка кода;
Интеграционное тестирование – проверка взаимодействия нескольких отдельных модулей. Это, пожалуй, наиболее тяжёлая часть тестирования просто потому, что необходимо чётко и максимально полно определить все векторы и сочетания классов в вашем коде;
Приемочное тестирование – исполняемые процедуры для установления факта соответствия требованиям заказчика. Актуально в тех случаях, когда требования к коду и работающему приложению описаны заказчиком в ТЗ или в любой другой письменной форме.
Регрессионное тестирование – оценка работоспособности уже проверенного кода после внесения в него изменений. Актуально для динамических систем, где появление новых данных может реально повлиять на работоспособность всего кода.
Системное тестирование – это собственно конечная обкатка вашего приложения. Как правило выполняется в ручном режиме «научного тыка». Но есть и автоматизированные методы, как с простым перебором, так и алгоритмическим подходом.
Как видите их всего пять, но тут стоит сказать, что информация и текст этой части статьи были взяты из сайта GeekBrains. В остальном нас интересует только два типа тестирования, это юнит-тесты и интеграционное тестирование.
С юнит тестами думаю всё понятно, оно нужно для проверки не больших частей кода, например каких то функций и т.д, это самый простой тип тестирования, поэтому вы его будите использовать чаше всего, особенно если вы новичок.
Также стоит сказать что если класс который вы тестируете использует сторонний класс, например он наследуется от него, то тогда он использует заглушки, которые называются (моки и стабы).
Моки это класс заглушка который используется для проверки что тестируемая функция вызывается с определёнными аргументами.
Стабы это класс заглушка который может возвращать определённые данные из баз данных, которые мы можем сами назначить, или данные которые мы типа получаем из удалённого сервера.
Что касается Интеграционное тестирование, тут вам не надо использовать заглушки, так как саму суть этого типа теста в том, что вам надо тестировать взаимодействии с различными модулями, но вам нужно будет создавать определённую оболочку, для того чтобы тестировать, так как вы по сути будите тестировать как работать с Базой данных или с различным API.
Когда нужно использовать тестирование:
Как говорилось чуть выше тесты нужно использовать для отловки багов, помощи новичкам и если вы собираетесь долгосрочной поддерживать продукт, во всех этих случаях, нужно использовать авто тестирование.
Вывод:
В этой статье вы прочитали про тестирование кода что это, зачем нужно и где используется, думаю вам было интересно и полезно, вы узнали что-то новое.