Во время тестирования существуют разные уровни. Уровни тестирования включают различные методологии, которые могут использоваться при проведении тестирования программного обеспечения. Основными уровнями тестирования программного обеспечения являются:

  • Функциональное тестирование
  • Нефункциональное тестирование

Функциональное тестирование

Это тип тестирования «черного ящика», основанного на спецификациях программного обеспечения, которое должно быть проверено. Приложение проверяется путем ввода ввода, а затем проверяется результат, который должен соответствовать функциям, для которых он предназначался. Функциональное тестирование программного обеспечения проводится в полной интегрированной системе для оценки соответствия системы указанным требованиям.

При тестировании приложения для работы есть пять шагов.

Шаг Описание
I Определение функциональности, предназначенной для предполагаемого приложения.
II Создание тестовых данных на основе спецификаций приложения.
III Результат основан на тестовых данных и спецификациях приложения.
IV Написание тестовых сценариев и выполнение тестовых примеров.
V Сравнение фактических и ожидаемых результатов на основе выполненных тестовых случаев.

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

Тестирование устройства

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

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

Ограничения модульного тестирования

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

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

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

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

Метод тестирования интеграции

Интеграция снизу вверх

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

Интеграция сверху вниз

В этом тестировании модули самого высокого уровня тестируются сначала и постепенно, затем тестируются модули нижнего уровня.

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

Тестирование системы

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

Системное тестирование важно по следующим причинам:

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

Регрессионное тестирование

Всякий раз, когда делается изменение в программном приложении, вполне возможно, что это изменение повлияло на другие области приложения. Регрессионное тестирование выполняется для проверки того, что исправленная ошибка не привела к другой функциональности или нарушению бизнес-правил. Цель регрессионного тестирования состоит в том, чтобы гарантировать, что изменение, такое как исправление ошибки, не должно приводить к обнаружению другой неполадки в приложении.

Регрессионное тестирование важно по следующим причинам:

  • Минимизируйте пробелы при тестировании, когда необходимо проверить приложение с внесенными изменениями.
  • Проверка новых изменений, чтобы убедиться, что внесенные изменения не повлияли ни на какую другую область приложения.
  • Смягчает риски, когда регрессионное тестирование выполняется в приложении.
  • Тестовый охват увеличивается без ущерба для сроков.
  • Увеличьте скорость выхода на рынок продукта.

Приемочное тестирование

Это, возможно, самый важный тип тестирования, так как он проводится командой по обеспечению качества, которая будет определять, соответствует ли приложение требуемым спецификациям и удовлетворяет требованиям клиента. Команда QA будет иметь набор предварительно написанных сценариев и тестовых примеров, которые будут использоваться для тестирования приложения.

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

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

Альфа-тестирование

Этот тест является первым этапом тестирования и будет выполняться среди команд (разработчиков и команд QA). Тестирование модулей, тестирование интеграции и тестирование системы в сочетании друг с другом известны как альфа-тестирование. На этом этапе в приложении будут протестированы следующие аспекты:

  • Орфографические ошибки
  • Неработающие ссылки
  • Облачно
  • Приложение будет протестировано на машинах с самой низкой спецификацией для тестирования времени загрузки и любых проблем с задержкой.

Бета-тестирование

Этот тест выполняется после успешного выполнения альфа-тестирования. В бета-тестировании образец целевой аудитории тестирует приложение. Бета-тестирование также известно как предварительное тестирование. Бета тестовые версии программного обеспечения идеально распределяются среди широкой аудитории в Интернете, отчасти для того, чтобы дать программе «реальный» тест и частично обеспечить предварительный просмотр следующего выпуска. На этом этапе аудитория будет тестировать следующее:

  • Пользователи установят, запустит приложение и отправит свои отзывы команде проекта.
  • Типографские ошибки, запутанный поток приложений и даже сбои.
  • Получая отзывы, команда проекта может решить проблемы до выпуска программного обеспечения для фактических пользователей.
  • Чем больше проблем вы исправляете для решения реальных проблем пользователей, тем выше будет качество вашего приложения.
  • Наличие более качественного приложения при его выпуске для широкой общественности повысит удовлетворенность клиентов.

Нефункциональное тестирование

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

Некоторые из важных и часто используемых нефункциональных типов тестирования обсуждаются ниже.

Тестирование производительности

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

  • Задержка сети
  • Обработка на стороне клиента
  • Обработка транзакций базы данных
  • Балансировка нагрузки между серверами
  • Передача данных

Тестирование производительности считается одним из важных и обязательных типов тестирования с точки зрения следующих аспектов:

  • Скорость (т.е. время отклика, передача данных и доступ)
  • Вместимость
  • стабильность
  • Масштабируемость

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

Тестирование нагрузки

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

В большинстве случаев тестирование нагрузки выполняется с помощью таких автоматизированных инструментов, как Load Runner, AppLoader, IBM Rational Performance Tester, Apache JMeter, Silk Performer, Visual Load Load Test и т.д .

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

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

Стресс-тестирование включает тестирование поведения программного обеспечения в ненормальных условиях. Например, это может включать в себя удаление некоторых ресурсов или применение нагрузки за пределы фактического предела нагрузки.

Цель стресс-тестирования состоит в том, чтобы протестировать программное обеспечение, применяя нагрузку к системе и используя ресурсы, используемые программным обеспечением для определения точки прерывания. Это тестирование может быть выполнено путем тестирования различных сценариев, таких как:

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

Тестирование юзабилити

Тестирование юзабилити - это метод «черного ящика» и используется для выявления ошибок и усовершенствований программного обеспечения путем наблюдения пользователей за их использование и работу.

Согласно Nielsen, юзабилити можно определить в терминах пяти факторов, то есть эффективности использования, способности к обучению, способности памяти, ошибок / безопасности и удовлетворенности. По его словам, удобство использования продукта будет хорошим, и система может быть использована, если она обладает вышеуказанными факторами.

Найджел Беван и Маклеод считали, что удобство использования - это требование качества, которое можно измерить как результат взаимодействия с компьютерной системой. Это требование может быть выполнено, и конечный пользователь будет удовлетворен, если целевые цели будут эффективно достигнуты с использованием надлежащих ресурсов.

В 2000 году Молич заявил, что удобная для пользователя система должна соответствовать следующим пяти целям: легкость в учебе, легко запоминающаяся, эффективная в использовании, удовлетворительная и удобная в использовании.

В дополнение к различным определениям удобства использования существуют некоторые стандарты и методы и методы, которые определяют удобство использования в виде атрибутов и вспомогательных атрибутов, таких как ISO-9126, ISO-9241-11, ISO-13407 и IEEE std. 610.12 и т. д.

UI против тестирования юзабилити

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

С другой стороны, тестирование юзабилити обеспечивает удобный и удобный графический интерфейс, который можно легко обрабатывать. Тестирование пользовательского интерфейса можно рассматривать как часть проверки юзабилити.

Тестирование безопасности

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

  • Конфиденциальность
  • Целостность
  • Аутентификация
  • Доступность
  • Авторизация
  • Неотрекаемость
  • Программное обеспечение защищено от известных и неизвестных уязвимостей
  • Данные программного обеспечения защищены
  • Программное обеспечение соответствует всем правилам безопасности
  • Проверка ввода и проверка
  • Атаки вставки SQL
  • Инъекционные дефекты
  • Проблемы управления сеансом
  • Межсайтовые скриптовые атаки
  • Буфер переполняет уязвимости
  • Атаки на обход каталога

Тестирование переносимости

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

  • Перенос установленного программного обеспечения с одного компьютера на другой.
  • Построение исполняемого файла (.exe) для запуска программного обеспечения на разных платформах.

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

  • Программное обеспечение должно быть спроектировано и закодировано с учетом требований к переносимости.
  • Модульные испытания выполнялись на связанных компонентах.
  • Выполнено тестирование интеграции.
  • Установлена ​​тестовая среда.