Традиционное тестирование против объектно-ориентированного тестирования
Тестирование программного обеспечения - один из самых важных этапов в процессе разработки программного обеспечения. Тестирование программного обеспечения гарантирует, что разработанное программное обеспечение удовлетворяет всем требованиям заказчика и работает без ошибок. По мере того, как парадигмы и методы разработки программного обеспечения перешли от первоначальной каскадной разработки программного обеспечения к OOD/Agile и другим новым концепциям, тестирование также перешло от обычного (традиционного) тестирования к объектно-ориентированному тестированию (OOT). Но поскольку водопадная разработка все еще используется, тестировщики по-прежнему используют обычное тестирование.
Что такое обычное тестирование?
Традиционный процесс тестирования происходит в основном, когда жизненный цикл водопада используется для разработки программного обеспечения в организациях. Обычное тестирование всегда происходит на этапе тестирования жизненного цикла, который обычно следует за этапом разработки и переходит в этап внедрения. На этом этапе тестирования будут проводиться в основном три вида тестирования. Системное тестирование гарантирует, что функции системы удовлетворяют требованиям заказчика, задокументированным в SRS (Спецификации требований к программному обеспечению), обычно используя подход черного ящика. Интеграционное тестирование проверяет предварительный проект, используя функциональный подход и подход декомпозиции. Интеграционное тестирование основано на структуре проекта с использованием подхода «сверху вниз» или «снизу вверх». Наконец, модульные тесты проверяют правильность детального проекта.
Что такое объектно-ориентированное тестирование?
Использование объектно-ориентированного (ОО) анализа и проектирования наряду с Agile и другими современными методологиями разработки программного обеспечения приводит к объектно-ориентированному тестированию. Разработка ОО обычно сосредоточена на поведении. Тестирование проводится с упором на композицию. Это означает, что дизайн создается по частям и составляется вместе, чтобы завершить полную систему. Поскольку сегодня для объектно-ориентированной разработки используется быстрое прототипирование и некоторая форма инкрементного подхода, три обычных уровня тестирования (системное, интеграционное и модульное тестирование) нечетко видны в объектно-ориентированном проектировании (но они существуют в большинстве случаев). Системное тестирование (в рамках объектно-ориентированного тестирования) во многом будет использовать тот же подход (черный ящик), что и обычное тестирование, и будет проверять спецификацию требований (поскольку требования должны быть проверены независимо от процесса разработки). Модульное тестирование в рамках объектно-ориентированного тестирования похоже на обычное модульное тестирование, но основное отличие заключается в определении используемого модуля. В настоящее время принятыми единицами, используемыми для модульного тестирования, являются классы и методы.
В чем разница между обычным тестированием и объектно-ориентированным тестированием?
Традиционное тестирование - это традиционный подход к тестированию, который в основном используется, когда для разработки используется жизненный цикл водопада, в то время как объектно-ориентированное тестирование используется, когда объектно-ориентированный анализ и проектирование используются для разработки корпоративного программного обеспечения. Обычное тестирование больше фокусируется на декомпозиции и функциональных подходах, в отличие от объектно-ориентированного тестирования, в котором используется композиция. Три уровня тестирования (система, интеграция, модуль), используемые в обычном тестировании, четко не определены, когда речь идет об объектно-ориентированном тестировании. Основная причина этого заключается в том, что в объектно-ориентированной разработке используется поэтапный подход, в то время как традиционная разработка следует последовательному подходу. С точки зрения модульного тестирования объектно-ориентированное тестирование рассматривает гораздо меньшие модули по сравнению с обычным тестированием.