Подписывайся на Telegram-канал

Тестирование. Виды.

Тестирование. Виды.

https://t.me/it_programmist

Сегодня начинаю цикл статей, помогающих разобраться с процессом тестирования.

Тестирования ПО неотъемлемая часть современной разработки. В требованиях любой хорошей вакансии обязательно присутствует этот пункт. Так что это просто мастхэв для хорошего программиста.

Первая статья вводная и скорее теоретическая. Для общего понимания. Дальше будет веселее.





Ты выполняешь тестирование, когда программируешь. Ты же запускаешь и проверяешь программу, чтобы убедиться, что она работает? Чем не тестирование.

Но мы здесь, чтобы подойти к этому вопросу более системно и профессионально.

Если давать определение процессу тестирования, то получится следующее.



Тестирование программного обеспечения — проверка соответствия между реальным и ожидаемым поведением программы, осуществляемая на конечном наборе тестов, выбранном определенным образом.





Тестирование в общем случае можно разделить на три вида: блочное, системное, интеграционное. На самом деле видов больше, но нам для понимания хватит этих трёх, учитывая, что остальное большое количество видов тестирования можно отнести к подвидам или комбинациям вышеуказанных.





Блочное (модульное, юнит)

Тестирование методов какого-то класса программы в изоляции от остальной программы. 

Нужно понимать, что класс или модуль нужно писать так, чтобы его потом можно было покрыть тестами. Чаще всего проблемы начинаются, когда зависимости внутри программы указываются неявно.

Можно использовать в разработке TDD(Test-Driven Development) методологию, которая предполагает разработку короткими итерациями. Сначала пишется тест, который проверяет изменение, потом код самого изменения.

А для правильной работы с зависимостями между классами давно придумали замечательный паттеррн Dependency Injection.

Для юнит-тестирования написано множество инструментов и фреймоврков.





Интеграционное

Тестирование взаимодействия нескольких классов, выполняющих вместе какую-то работу.

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

По большому счёту, нужно взять исходные данные и тестировать промежуточные результаты их обработки во время взаимодействия разных модулей(классов) программы.





Системное

Тестирование программы в целом. Запустил, покликал, повертел, покрутил - вот пример ручного системного тестирования. На небольших проектах такого достаточно.

Автоматизировать такой вид тестирования можно с помощью воссоздания в коде взаимодействия пользователя с системой. То есть, кодом заставляем выполнятся обработчики, которые выполняются при взаимодействии пользователя с системой.

Либо можно использовать специальные инструменты, которые все действия пользователя(кликанье по кнопочкам) выполняет программа.

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



-----------

Продолжение следует.

_________

Я - программист!

Шутеечки в Дневнике программиста

Чат Клуб программистов

Ещё