Во время тестирования существуют разные уровни. Уровни тестирования включают различные методологии, которые могут использоваться при проведении тестирования программного обеспечения. Основными уровнями тестирования программного обеспечения являются:
- Функциональное тестирование
- Нефункциональное тестирование
Функциональное тестирование
Это тип тестирования «черного ящика», основанного на спецификациях программного обеспечения, которое должно быть проверено. Приложение проверяется путем ввода ввода, а затем проверяется результат, который должен соответствовать функциям, для которых он предназначался. Функциональное тестирование программного обеспечения проводится в полной интегрированной системе для оценки соответствия системы указанным требованиям.
При тестировании приложения для работы есть пять шагов.
Шаг | Описание |
---|---|
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) для запуска программного обеспечения на разных платформах.
Переносимость тестирования может рассматриваться как одна из частей тестирования системы, так как этот тип тестирования включает в себя общее тестирование программного обеспечения в отношении его использования в разных средах. Компьютерное оборудование, операционные системы и браузеры являются основным направлением тестирования переносимости. Некоторые из предварительных условий для тестирования переносимости заключаются в следующем:
- Программное обеспечение должно быть спроектировано и закодировано с учетом требований к переносимости.
- Модульные испытания выполнялись на связанных компонентах.
- Выполнено тестирование интеграции.
- Установлена тестовая среда.
0 комментариев