Entries RSS
image
Дек 11

Варианты тестирования и различные подходы к применению

Варианты тестирования различные подходы к применению

Давайте сегодня поговорим о тестированию программного обеспечения. Исходя из личного опыта разработчиков и тестировщиков получилось классифицировать виды тестирования на основании критерия изолированности кода.

И так, тестирование разделяется на:

— Блочное (Unit testing) – тестирование одиночного модуля изолировано от остальных.

— Интеграционное (Integration Testing) – тестирование нескольких взаимосвязанных модулей

— Системное (System Testing) – полное тестирование системы.

Блочное тестирование

Блочное тестирование — это то, что более понятно программисту. На этом шаге происходит тестирование классов и их методов вне системы.

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

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

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

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

Если же применять Unit – тестирование, в таком случае мы столкнемся с проблемой написания огромного количества тестов, потому что вариации взаимодействия вычисляться в полиноминальной зависимости. Так же существует проблема, когда тесты решаться после очередного рефакторинга. Это происходит из-за того, что некоторые взаимодействия выделяются в отдельный класс.

Системное тестирование

Системное тестирование – это полное и всеобъемлющее тестирование системы. Если проект небольшой, то как правило достаточно ручного тестирования. Т.е. необходимо в ручном режиме проклацать все элементы и выявить баги.

При QA автоматизации существует два подхода:

— Использование MVC паттерна, и формализация поведения пользователя GUI с кодом.

— Использование специальных инструментов, которые полностью логируют действия пользователей.