Динамическое тестирование
Динамическое тестирование - это метод тестирования программного обеспечения, используемый для проверки динамического поведения программного кода. Основная цель динамического тестирования - проверить поведение программного обеспечения с помощью динамических переменных или переменных, которые не являются постоянными, и найти слабые места в среде выполнения программного обеспечения. Код должен быть выполнен для проверки динамического поведения.
Все мы знаем, что тестирование - это проверка и валидация, и для завершения тестирования требуется 2 Vs. Из двух V, проверка называется статическим тестированием, а другая V, проверка называется динамическим тестированием.
Пример динамического тестирования
Давайте разберемся, как проводить динамическое тестирование на примере:
Предположим, мы тестируем страницу входа, где у нас есть два поля: «Имя пользователя» и «Пароль», а имя пользователя ограничено буквенно-цифровым кодом.
Когда пользователь вводит имя пользователя как «Guru99», система принимает то же самое. Когда пользователь входит как Guru99 @ 123, приложение выдает сообщение об ошибке. Этот результат показывает, что код действует динамически в зависимости от ввода пользователя.
Динамическое тестирование - это когда вы работаете с реальной системой, предоставляя входные данные и сравнивая фактическое поведение приложения с ожидаемым поведением. Другими словами, работа с системой с целью поиска ошибок.
Итак, на основании приведенных выше утверждений мы можем сказать или заключить, что динамическое тестирование - это процесс проверки программных приложений в качестве конечного пользователя в различных средах для создания правильного программного обеспечения.
Что делает динамическое тестирование?
Основная цель динамических тестов - убедиться, что программное обеспечение работает должным образом во время и после установки программного обеспечения, обеспечивая стабильное приложение без каких-либо серьезных недостатков (это заявление сделано потому, что ни одно программное обеспечение не является безошибочным, только тестирование может показать наличие дефектов и не отсутствие)
Основная цель динамического теста - обеспечить согласованность программного обеспечения; давайте обсудим это на примере.
В банковском приложении мы находим различные экраны, такие как раздел «Мои счета», «Перевод средств», «Оплата счетов» и т. Д. Все эти экраны содержат поле суммы, которое принимает некоторые символы.
Допустим, в поле «Мои учетные записи» отображается сумма как 25 000, а «Перевод средств» - как 25 000 долларов, а на экране оплаты счета - как 25 000 долларов, хотя сумма такая же, но способ отображения суммы отличается, что делает программное обеспечение несовместимым.
Согласованность не ограничивается только функциональностью, она также относится к различным стандартам, таким как производительность, удобство использования, совместимость и т. Д., Поэтому очень важно выполнять динамическое тестирование.
Типы динамического тестирования
Динамическое тестирование подразделяется на две категории.
- Тестирование белого ящика
- Тестирование черного ящика
Приведенное ниже графическое изображение дает нам представление о типах динамического тестирования, уровнях тестирования и т. Д.
Обсудим вкратце каждый вид тестирования и его предназначение.
Тестирование по белому ящику - Тестирование по белому ящику - это метод тестирования программного обеспечения, при котором тестировщику известна внутренняя структура / дизайн. Основная цель тестирования «белого ящика» - проверить, как работает система на основе кода. В основном это выполняют разработчики или тестировщики «белого ящика», обладающие знаниями в области программирования.
Тестирование черного ящика - Тестирование черного ящика - это метод тестирования, при котором внутренняя структура / код / дизайн НЕ известны тестировщику. Основная цель этого тестирования - проверить функциональность тестируемой системы, и этот тип тестирования требует выполнения полного набора тестов и в основном выполняется тестировщиками, и нет необходимости в каких-либо знаниях в области программирования.
Box Black Тестирование снова разделить на два типа.
Они есть
- Функциональное тестирование
- Нефункциональное тестирование
Функциональное тестирование:
Функциональное тестирование выполняется для проверки того, что все разработанные функции соответствуют функциональным спецификациям, и выполняется путем выполнения сценариев функционального тестирования, написанных командой QA, на этапе функционального тестирования система тестируется путем предоставления входных данных, проверки выходных данных и сравнение фактических результатов с ожидаемыми.
Существуют разные уровни функционального тестирования, из которых наиболее важными являются:
- Модульное тестирование - как правило, модульное тестирование - это небольшой фрагмент кода, который можно тестировать. Модульное тестирование выполняется на отдельной единице программного обеспечения и выполняется разработчиками.
- Интеграционное тестирование - Интеграционное тестирование - это тестирование, которое выполняется после модульного тестирования и выполняется путем объединения всех отдельных модулей, которые можно тестировать, и выполняется разработчиками или тестировщиками.
- Тестирование системы - тестирование системы выполняется, чтобы убедиться, что система работает в соответствии с требованиями, и обычно выполняется, когда вся система готова, оно выполняется тестировщиками, когда сборка или код передаются команде QA.
- Приемочное тестирование - Приемочное тестирование выполняется для проверки того, соответствует ли система бизнес-требованиям и готова ли она к использованию или готова к развертыванию, и обычно выполняется конечными пользователями.
Нефункциональное тестирование : нефункциональное тестирование - это метод тестирования, который не фокусируется на функциональных аспектах и в основном концентрируется на нефункциональных атрибутах системы, таких как утечки памяти, производительность или надежность системы. Нефункциональное тестирование проводится на всех уровнях тестирования.
Существует множество нефункциональных методов тестирования, из которых наиболее важными являются:
- Тестирование производительности - Тестирование производительности выполняется для проверки того, является ли время отклика системы нормальным в соответствии с требованиями при желаемой сетевой нагрузке.
- Тестирование восстановления - тестирование восстановления - это метод проверки того, насколько хорошо система способна восстанавливаться после сбоев и отказов оборудования.
- Тестирование совместимости - тестирование совместимости выполняется для проверки того, как система ведет себя в разных средах.
- Тестирование безопасности - тестирование безопасности выполняется для проверки устойчивости приложения, т. Е. Чтобы гарантировать, что только авторизованные пользователи / роли имеют доступ к системе.
- Юзабилити-тестирование - Юзабилити-тестирование - это метод проверки удобства использования системы конечными пользователями для проверки того, насколько они удобны в работе с системой.
Методы динамического тестирования
Методы динамического тестирования в STLC состоят из различных задач, таких как анализ требований к тестам, планирование тестирования, разработка и реализация тестового набора, настройка тестовой среды, выполнение тестового примера, создание отчетов об ошибках и, наконец, закрытие теста. Все задачи в методах динамического тестирования зависят от завершения предыдущей задачи в процессе тестирования.
В STLC мы можем сказать, что реальный процесс динамического тестирования начинается с разработки тестового примера, давайте подробно обсудим каждое действие.
Прежде чем приступить к процессу, давайте обсудим стратегию, которой необходимо следовать для динамического тестирования.
Стратегия тестирования должна в основном ориентироваться на доступные ресурсы и временные рамки. Основываясь на этих факторах, необходимо задокументировать цель тестирования, объем тестирования, фазы или циклы тестирования, тип среды, предположения или проблемы, с которыми можно столкнуться, риски и т. Д.
После того, как стратегия определена и принята руководством, начинается разработка фактического процесса тестирования.
Что такое дизайн и реализация теста
На этом этапе мы определяем,
- Функции для тестирования
- Вывести условия испытаний
- Получите элементы покрытия
- Получите тестовые примеры
Настройка тестовой среды
Мы должны убедиться, что среда тестирования всегда должна быть похожа на среду производства, на этом этапе мы должны установить сборку и управлять тестовыми машинами.
Выполнение теста
На этом этапе фактически выполняются тестовые примеры.
Отчет об ошибке записан
В зависимости от выполнения, если ожидаемые и фактические результаты не совпадают, тогда тестовый случай должен быть помечен как неуспешный, а ошибка должна быть зарегистрирована.
Преимущества динамического тестирования
- Динамическое тестирование может выявить обнаруженные дефекты, которые считаются слишком сложными или сложными и которые не могут быть покрыты статическим анализом.
- В динамическом тестировании мы выполняем программное обеспечение от начала до конца, обеспечивая безошибочное программное обеспечение, что, в свою очередь, повышает качество продукта и проекта.
- Динамическое тестирование становится важным инструментом для обнаружения любых угроз безопасности.
Недостатки динамического тестирования
- Динамическое тестирование занимает много времени, потому что оно запускает приложение / программное обеспечение или код, требующий огромного количества ресурсов.
- Динамическое тестирование увеличивает стоимость проекта / продукта, поскольку оно не начинается на ранней стадии жизненного цикла программного обеспечения, и, следовательно, любые проблемы, исправленные на более поздних этапах, могут привести к увеличению стоимости.
Вывод:
В программной инженерии верификация и валидация - это две меры, используемые для проверки того, что программный продукт соответствует требованиям. Статическое тестирование включает проверку, тогда как динамическое тестирование включает проверку. Вместе они помогают создавать экономичное и качественное программное обеспечение.
Эта статья предоставлена Радхикой Ренамалой