Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Отчет_Роман_Уваров.docx
Скачиваний:
5
Добавлен:
28.09.2019
Размер:
58.66 Кб
Скачать

Классификация методов тестирования

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

По знанию внутренней структуры системы

  • тестирование черного ящика (black box testing);

  • тестирование белого ящика (white box testing);

  • тестирование серого ящика (grey box testing).

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

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

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

По объекту тестирования

  • Функциональное тестирование (functional testing);

  • Тестирование интерфейса пользователя (UI testing);

  • Тестирование локализации (localization testing);

  • Тестирование скорости и надежности (load/stress/performance testing);

  • Тестирование безопасности (security testing);

  • Тестирование опыта пользователя (usability testing);

  • Тестирование совместимости (compatibility testing).

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

При тестировании интерфейса пользователя, проверяются все его элементы на соответствие спецификациям, требованиям и выполняемым ими функциям. Тестирование интерфейса часто путают с тестированием с помощью интерфейса пользователя где проверяется работа back-end’а с помощью вводимых параметров через UI или действий совершаемы через интерфейс пользователя.

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

Нагрузочное тестирование (Load Testing) — определение или сбор показателей производительности и времени отклика программно-технической системы или устройства в ответ на внешний запрос с целью установления соответствия требованиям, предъявляемым к данной системе (устройству). Основная цель нагрузочного тестирования заключается в том, чтобы, создав определённую ожидаемую в системе нагрузку (например, посредством виртуальных пользователей) и, обычно, использовав идентичное программное и аппаратное обеспечение, наблюдать за показателями производительности системы.

Стресс-тестирование (Stress Testing) в отличие от нагрузочного тестирования, оценивает надёжность и устойчивость системы в условиях превышения пределов нормального функционирования. Стресс-тестирование особенно необходимо для «критически важного» ПО. Обычно стресс-тестирование лучше обнаруживает устойчивость, доступность и обработку исключений системой под большой нагрузкой, чем то, что считается корректным поведением в нормальных условиях.

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

Usability testing, это тестирование удобства и понятности интерфейса, что является очень важным моментом. Даже самый мощное приложение созданное с использованием революционных алгоритмов и новейших технологий, будет проигрывать конкурентам если им будет неудобно пользоваться. Тестирование usability призвано выявить недостатки в расположении и назначении элементов интерфейса пользователся.

Тестирование совместимости (compatibility testing) — вид нефункционального тестирования, основной целью которого является проверка корректной работы продукта в определенном окружении. Окружение может включать в себя hardware (начинка компьютера, сетевые устройства, периферийные устройства т.п.) и software (ОС, БД, системные приложения и утилиты, браузреы и прочее). Данный тип тестирование является необходимым и очень эффектиным, так как зачастую багги обнаруживаются только в сочетании тестируемого приложения с конкретным окружением.