#3 – Виды тестирования и их назначение
Видеоурок
Функциональное тестирование
Функциональное тестирование — это тип тестирования, направленный на проверку того, что программное обеспечение выполняет свои задачи согласно спецификациям. Проще говоря, мы проверяем, работает ли система так, как это ожидает пользователь или клиент.
Например, тестируем, срабатывает ли кнопка при нажатии или открывается ли окно при наведении курсора мыши.
Нефункциональное тестирование
Нефункциональное тестирование направлено на проверку таких аспектов системы, как производительность, безопасность, удобство использования (юзабилити), надёжность и другие атрибуты качества, которые не связаны напрямую с функциональностью программы. Этот вид тестирования помогает убедиться, что система будет работать эффективно в реальных условиях.
Модульное тестирование
Модульное тестирование (unit testing) уже кратко рассматривалось в прошлом уроке. Это тестирование отдельных модулей или компонентов системы в изоляции от других частей программы. Цель модульного тестирования — убедиться, что каждый отдельный блок кода работает корректно.
Модульные тесты пишутся вручную на основе кода, и их могут создавать как тестировщики, так и разработчики. Эти тесты часто автоматизируются для облегчения повторных проверок.
import unittest
# Пример тестируемой функции
def add(a, b):
return a + b
# Модульное тестирование функции add
class TestMathFunctions(unittest.TestCase):
def test_add(self):
self.assertEqual(add(3, 4), 7)
self.assertEqual(add(-1, 1), 0)
self.assertEqual(add(0, 0), 0)
if __name__ == '__main__':
unittest.main()Интеграционное тестирование
Интеграционное тестирование проверяет взаимодействие между отдельными модулями или компонентами программы, чтобы убедиться, что они работают вместе корректно.
Например, если система включает модуль регистрации и модуль базы данных, интеграционное тестирование проверит, правильно ли данные из формы регистрации сохраняются в базе данных.
Системное тестирование
Системное тестирование — это проверка всей системы в целом. Оно необходимо для оценки работы системы в условиях, близких к реальным.
На этом этапе тестируются как функциональные, так и нефункциональные аспекты. Системное тестирование выполняется на финальных этапах разработки перед приемочным тестированием.
Приемочное тестирование
Приемочное тестирование — это финальный этап, проводимый для подтверждения соответствия системы требованиям заказчика. Его обычно выполняют пользователи или заказчики, чтобы удостовериться, что система готова к эксплуатации.
Регрессионное тестирование и его значение
Регрессионное тестирование проводится для того, чтобы убедиться, что внесённые изменения или исправления в коде не вызвали новых ошибок в ранее работавших компонентах системы. Это особенно важно в системах, которые регулярно обновляются или модифицируются.
Регрессионное тестирование может быть ручным, но чаще автоматизируется для экономии времени. Оно проверяет не только новые функции, но и существующие, чтобы предотвратить так называемые "регрессии" — ситуации, когда что-то, что ранее работало, перестаёт функционировать из-за новых изменений.
Задание к уроку
Необходимо оформить подписку на проект, чтобы получить доступ ко всем домашним заданиям
Большое задание по курсу
Вам необходимо оформить подписку на сайте, чтобы иметь доступ ко всем большим заданиям. В задание входит методика решения, а также готовый проект с ответом к заданию.
PS: подобные задания доступны при подписке от 1 месяца
Также стоит посмотреть