Интеграционное и функциональное тестирования - это две фазы в процессе тестирования программного обеспечения. Первое проводится после модульного тестирования, а второе - метод тестирования черного ящика. В этой статье я проведу сравнение интеграционного и функционального тестирования, расскажу, что в них общего и в чем их отличие, чтобы вы смогли лучше понять эти методологии.
Не запутайтесь
Функциональное тестирование также упоминается как тестирование Е2Е для тестирования браузера.
Разработка программного продукта и цикл тестирования могут быть нескончаемым лабиринтом, состоящим из бесчисленных этапов и стратегий. Тестирование программного обеспечения является важнейшим этапом после разработки, так как важно проверить процесс или компонент с любой точки зрения, перед выпуском конечного продукта клиенту. Существуют различные методы и уровни, в которых компоненты могут быть проверены.
Две основных методологии тестирования включают box – тестирование (белый/серый/черный ящики и т.д.) и статические и динамические методики испытания, которые включают ряд дополнительных видов испытаний и уровней. Интеграционное тестирование можно классифицировать как уровень тестирования, функциональное тестирование можно считать типом тестирования. В следующих абзацах я расскажу дополнительные подробности относительно этих условий, а также объясню разницу между интеграционным и функциональным тестированием.
Интеграционное тестирование против функционального тестирования |
|
Интеграционное тестирование | Функциональное тестирование |
Определение |
|
Оно проверяет встроенную функциональность и совместимость. | Это тестирование отдельных функций. |
Цель |
|
Его цель состоит в том, чтобы проверить эффективность работы системы; тестовые случаи проверяют правильность взаимодействия между различными группами компонентов. | Его цель - проверить индивидуальную производительность каждого модуля. Тестовые случаи проверяют реальную работоспособность против ожидаемой спецификации производительности. |
Перспективы |
|
Тест-кейсы пишутся для конечного пользователя, но считываются и анализируются специалистами и экспертами по дизайну и проектированию программного обеспечения. | Как упоминалось ранее, они написаны с точки зрения клиента или конечного пользователя, учитывая его требования и ожидания. |
Типы |
|
Тестирование сверху-вниз (Top-Down testing) - представляет собой подход к комплексному тестированию, где верхние интегрированные модули и ветви модуля тестируются и проверяются шаг за шагом до конца соответствующего модуля. Тестирования снизу-вверх (Bottom-Up testing) - представляет собой подход к комплексному тестированию, где проверяются компоненты самого низкого уровня, а затем используются для облегчения тестирования компонентов более высоких уровней. Процесс повторяется до тех пор, пока не будет проверен компонент в верхней части иерархии. Сэндвич Тестирование (Sandwiched testing) - представляет собой подход, объединяющий тестирования сверху-вниз и снизу-вверх. Тестирование большого взрыва (Big-bang testing) - при таком подходе большинство разработанных модулей соединены друг с другом, чтобы сформировать полную систему программного обеспечения, или основную часть системы, а затем используются для тестирования интеграции. |
Санитарное тестирования Дымовое тестирование Регрессионное тестирование Юзабилити-тестирование |
Примеры |
|
Рассмотрим достаточно простой пример базы данных Office. Эта база данных содержит информацию сотрудников из различных отделов, каждый из которых имеет индивидуальную систему базы данных. Таким образом, при каждом изменении ведомственных данных, не все данные будут связаны с основной БД. Тестирование интеграции в данном случае будет проверять совместимость этих баз данных между собой так, что они будут эффективно связаны и обеспечивали правильный выход для конечного пользователя. | Предположите, что вы тестируете простое приложение для редактирования текста. Функциональное тестирование этого приложения будет включать тестирование функциональности задач, таких как набор текста, редактирование, сохранение и открытие файлов, форматирование, печать и т. д. |
Процесс тестирования является одним из важнейших этапов в жизненном цикле разработки программного обеспечения, так как это позволяет разработчикам устранить ошибки и баги. Именно через тестирование, они узнают был ли код написан правильно, и то что необходимо осуществить изменения, и как они должны быть реализованы таким образом, чтобы конечный продукт не содержал ошибок и был удобен для пользователей.