Какие есть виды и типы в тестирования QA?
Прежде всего, следует сразу сказать, что есть несколько подходов к классификации видов тестирования. В ходе развития QA они создавались в разное время, с разными подходами, некоторые почти одновременно, поэтому нет единогласно принятой идеи о том, какие именно виды и типы существуют в тестировании. В онлайн-курсах QA-школ подходы к классификации могут различаться. Кроме того, эта область все еще развивается, создаются новые методы.
Вообще эта задача похожа на то, как если бы мы попытались классифицировать легковые автомобили. Действительно, можно разделить на седаны, внедорожники, хетчбэки, кроссоверы, минивэны, купе и т.д. А можно – по приводу: задний, передний, полный. Можно – по коробке передач: механика, автомат, вариатор. Можно – по типу топлива: бензин, дизель, электричество, водород. По количеству осей: легковые автомобили бывают двух-, трех- и даже четырехосные. И по уровню безопасности их можно поделить тоже.
Такое же многообразие существует и в разбиении тестирования по видам и типам. В этой статье мы приведем самые известные классификации. Скорее всего, именно их у Вас и будут спрашивать рекрутеры на собеседованиях.
1. По прозрачности системы
Эта классификация определяется тем, может ли тестировщик видеть код программного обеспечения и работать с ним:
- Метод «черного ящика» – когда тестировщик не влезает в код и делает проверки по типу «что ввели на входе и что в итоге получили на выходе».
- Метод «белого ящика» – наоборот, когда QA-инженер может проверить и сам код программы.
- Метод «серого ящика» – тестировщик не влезает в код глубоко, но может посмотреть его реализацию, например, через инструмент разработчика.
2. По степени автоматизации
Эта классификация определяется тем, кто проводит проверки:
- Ручное – человек (тестировщик).
- Автоматическое – компьютер по написанному сценарию (скрипту).
- Автоматизированное – человек, но для простых однотипных проверок используют компьютер.
3. По степени формализации проверок
Эта классификация определяется тем, насколько формализованы проверки:
- Сценарное тестирование – по заранее написанным и задокументированным сценариям (тест-кейсам)
- Исследовательское тестирование – менее формально: тест-кейсы делаются пошагово, каждый последующий создается на основании результата предыдущего.
- Ad-hoc (свободное, интуитивное) тестирование – вообще без формализованных тест-планов, процедур, тест-кейсов и т.д. Главный образом чистая импровизация. Как правило, проводится очень опытными QA-инженерами.
4. По исполнению кода при проверках
Эта классификация определяется тем, включен ли код во время проверок:
- Статическое – не включает в себя выполнение или запуск программы.
- Динамическое – наоборот, подразумевает выполнение кода во время тестирования.
5. По позитивности сценария
Эта классификация определяется «нормальностью» прогнозируемых действий пользователя и ПО:
- Позитивное – действия соответствуют нормальному (штатному, ожидаемому) поведению.
- Негативное – действия (вводимые данные) недопустимые или неожиданные.
6. По повторности проверок
Эта классификация определяется тем, проводилось ли тестирование ПО ранее:
- Первичное – проводимое в первый раз.
- Регрессионное – повторное, которое делается после модификации/апгрейда ПО, чтобы удостовериться, что изменения не создали новые дефекты.
- Подтверждающее – повторное, которое делается после исправления ошибок в коде, чтобы удостовериться, что ошибка действительно исправлена.
7. По целям
Эта классификация определяется тем, что хотят проверить:
- Функциональное тестирование – насколько выполнение функций ПО соответствует заявленному в техническом задании:
- Дымовое/Smoke – обычно выполняется в начале разработки для проверки, что наиболее важные функции приложения работают корректно. Исторически название произошло от тестирования электроприборов: если при включении дым не пошел – значит, уже неплохо.
- Санитарное (sanity) – проверка работоспособности ПО после добавления новой функции/модуля. Исторически название произошло от проверок канализации: если при подключении нового дома канализацию не прорвало где-нибудь – значит, хорошо, можно работать дальше.
- Сквозное (E2E, end-to-end) – проверка ПО от начала и до конца базового (наиболее ожидаемого) сценария.
- Тестирование интерфейса – проверка функций взаимодействия ПО c пользователем.
- Нефункциональное тестирование – насколько качественны другие аспекты ПО:
- Юзабилити – оценка удобства для юзера.
- Доступность – оценка пригодности ПО для использования людьми с ограниченными возможностями (нарушениями слуха, зрения, двигательного аппарата и т.п.).
- Безопасность – проверка ПО на взлом.
- Производительность – проверка работы ПО под определенной нагрузкой (например, каково время отклика сайта на запрос или сколько одновременных запросов можно обработать).
- Стресс-тестирование («тестирование пыток») – проверка работоспособности ПО сверх нормальных параметров мощности, иногда даже сверх предельных значений.
- Надежность – проверка возможности работы ПО без сбоев в течение определенного периода времени в выбранной среде.
- Масштабируемость – проверка способности ПО продолжать работать при увеличении количества пользователей, вводимых данных, подключенных устройств и т. д.
- AGILE-тестирование – проверка ПО на соответствие манифесту гибкой разработки AGILE.
- Кроссбраузерное – проверка, как ПО выглядит в разных браузерах. Для его ускорения есть специальные программы BrowserLing, BrowserStack и BitBar.
- Эксплуатационное тестирование – выполняемое при сопровождении уже установленного и работающего у клиента продукта.
8. По модульности системы
Эта классификация определяется уровнем блока разработки ПО:
- Юнит-тестирование (модульное) – проверка отдельного модуля ПО.
- Интеграционное – проверка взаимодействий модулей ПО.
- Системное – проверка всей системы в целом, обычно выполняется после интеграционного тестирования.
- Приемочное – выполняемое конечным потребителем («стоит ли оплатить исполнителю его услуги?»)
9. Особые виды тестирования ПО
Для кругозора: есть еще и другие виды тестирования, которые кажутся совсем экзотическими, но они все равно существуют. Например:
- Неформальное рецензирование – обзор тестирования, которое уже выполнено одной командой тестировщиков, другой командой (исследователем). Обычно делается для партнерской помощи («одна голова хорошо, а две – лучше»), обеспечения объективности проверки или предложений по улучшению продукта.
- Анализ документации – прогнозирование дефектов ПО еще на стадии его описания (принцип раннего тестирования).
- Правовое тестирование – проверка того, что при функционировании ПО все действующие нормативные правовые акты будут выполнены (например, законы о персональных данных, лицензии правообладателей, комплаенс банков и даже санкционные режимы).
Резюме
Есть большое многообразие в классификациях тестирования. Эта область продолжает развиваться, подходы к ней совершенствуются. Этим объясняется наличие такого числа видов и типов тестирования, а также появление новых QA-методов.
В нашей статье представлены основные виды тестирования, который QA-специалист должен знать после обучения в онлайн-школе тестировщиков и способен кратко рассказать интервьюеру на собеседовании при поступлении на свою первую (и не только первую) работу.