Основы тестирования ПО 2020: самый подробный гайд
Основы тестирования ПО 2020: самый подробный гайд
Уже готов стать тестировщиком или хочешь освежить базовые понятия? Тогда этот гайд – то, что нужно! Команда ПОИНТ и курса Jedi.Point структурированно делится теоретическими основами тестирования: от видов до полезных инструментов.
Что такое Тестирование ПО?
Тестирование ПО – процесс, который помогает проверить выполнение всех бизнес-сценариев и требований пользователей, а также выявить все возможные проблемы и дефекты IT-продуктов.
В чем разница между тестированием, QC и QA?
Зачастую понятия «тестирование», «QA» и «QC» или путают, или используют для обозначения одного и того же. На самом деле эти термины характеризуют немного разные процессы:
- тестирование отвечает непосредственно за нахождение багов;
- QC (контроль качества) – за выполнение процесса тестирования (написание/прохождение кейсов, поиск/заведение дефектов etc);
- QA (обеспечения качества) – за создание системы контроля, которая будет предотвращать появление багов уже на этапе разработки ПО, сокращая количество выявленных дефектов на этапе тестирования; грубо говоря – построение самого процесса тестирования.
Зачем нужно тестирование и тестировщики?
Действительно, разве разработчики сами не могут проверять свои же продукты?
Еще 5-6 лет назад такой вопрос обсуждался в IT-кругах и на просторах Интернета. Но в 2020 ясно: тестировщики без работы не останутся, а тестирование должны осуществлять специалисты в сфере QA.
Во-первых, они проверяют все взаимодействия разных кусков кода и окружений, а не часть программы, которую сами же написали. Во-вторых, в процессе тестирования они ставят себя на место пользователя, для которого и создается продукт. В-третьих, логика их работы основана не только на создании ПО, но и включает возможность его поломки. И, в конце концов, время тестеров стоит дешевле, да и разработчикам не придется забивать себе голову дополнительной информацией.
Чтобы понять, как еще тестировщики помогают своим заказчикам, читайте также:
7 способов, как тестирование ПО может помочь бизнесу
Виды тестирования ПО
Составить эталонную классификацию почти невозможно – выделяют аж 100 видов тестирования, которые можно сгруппировать по различным характеристикам.
Более того, периодически методы устаревают, и возникают новые термины.
С какими же основными классификациями и типами тестирования стоит ознакомиться начинающим тестировщикам?
Виды тестирования ПО по степени автоматизации
Среди тестировщиков существует огромное разделение на более узкие специальности: тестирование безопасности, производительности, удобства использования и др. Но в самом широком смысле их можно разделить на ручных тестировщиков и тестировщиков-автоматизаторов.
Любое тестирование можно выполнить как вручную, так и с помощью инструментов автоматизации.
Ручное тестирование – это тип тестирования программного обеспечения, при котором тестировщик вручную проводит тесты без помощи каких-либо средств автоматизации.
Автоматизированное тестирование, в свою очередь, выполняется с помощью таких фреймворков, как Selenium, PHPUnit, Mockery и других. Его целью является снижение затрат и рисков, связанных с человеческим фактором. Особенно эффективен данный тип на долгосрочных проектах с частыми релизами и объемным регрессом.
Каждое из этих направлений имеет свою область применения, потому что 100-% автоматизация невозможна. Например, проверка юзабилити всегда осуществляется вручную.
Разница между ручным и автоматизированным тестированием
Ручное тестирование | Автоматизированное тестирование |
тестировщик выполняет тесты вручную | выполняется с использованием инструментов |
требует квалифицированного труда и продолжительного времени | экономит время, бюджет, человеческий ресурс |
некоторые типы тестирования больше подходят для ручного выполнения | рекомендуется только для стабильных систем, в основном используется для регрессионного тестирования |
может стать повторяющимся и утомительным | рутинную часть можно переложить на инструменты автоматизации |
Также рекомендуем:
Советы о том, как изучить автоматизацию, если не умеешь программировать
Как автоматизировать тестирование сайта с динамическими данными и сделать это быстро
Как выбрать тесты для автоматизации?
Пример плохой организации автоматизированного тестирования с разбором полетов
Виды по объекту тестирования
Функциональное тестирование (functional testing) проверяет часть системы, которая необходима для того, чтобы пользователь мог выполнить бизнес-сценарий от начала до конца. Оно выполняется первым, до нефункционального тестирования. Примеры: переход по разделам форума, поиск по сайту.
Методы и техники функционального тестирования:
- Модульное тестирование
- Тестирование серого ящика
- Тестирование черного ящика
- Тестирование белого ящика
- Пользовательское тестирование
- Регрессионное тестирование
- Смоук тестирование
- Исследовательское тестирование
- Сессионное тестирование — компромисс между исследовательским и скриптовым тестированием.
Нефункциональное тестирование необходимо для проверки работоспособности системы при различных условиях, которые могут влиять на удовлетворенность пользователя (надежность, удобство использования, масштабируемость).
Типы нефункционального тестирования:
- Тестирование безопасности (security testing)
Тестирование безопасности – это вид тестирования для выявления уязвимости программного обеспечения к различным атакам (SQL, XSS etc).
Рекомендуем ознакомиться:
Тестирование безопасности: опыт Лаборатории Качества
Тестирование безопасности: изнутри и снаружи
Тестирование безопасности или SQL-инъекции
- Тестирование локализации (localization testing)
Тестирование локализации – процесс адаптации продукта, который ранее был переведен на несколько языков для определенной страны или региона.
- Юзабилити тестирование (usability testing)
Тестирование юзабилити – это метод тестирования, направленный на выявление удобства и понятности интерфейса.
Оценивать удобство без субъективности и научиться создавать продукт, который будет нравиться вашим пользователям, вы можете на курсе Тестирование удобства использования. |
Виды тестирования по позитивности сценария
Негативное тестирование – проверка того, что при вводе недопустимых значений/совершении недопустимых действий программа ведет себя корректно – не совершает того, чего не должна и выдает человекочитаемое сообщение об ошибке.
Позитивные тестирование – проверка того, что программа работает правильно на «правильных» данных – не выдает ошибок, делает то, что должна.
Этапы тестирования
Для описания процесса тестирования поэтапно существует несколько методик. Одна из самых понятных и простых моделей – STLC.
STLC (Software Testing Life Cycle) означает жизненный цикл тестирования программного обеспечения.
Модель жизненного цикла тестирования программного обеспечения (модель STLC) состоит из шести основных фаз.
6 фаз STLC (Software Testing Life Cycle):
Анализ требований. На этом этапе тестировщики изучают требования с точки зрения тестирования и общаются с заказчиками для детального понимания. Также, если необходимо, выполняют технико-экономическое обоснование автоматизации.
Зачастую тестировщикам приходится сталкиваться с ситуацией, когда требования отсутствуют или недостаточно ясны. В таких случаях тестировщик использует методы и инструменты для организации тестирования в условиях отсутствия идеальных требований на проекте.
По этой теме рекомендуем почитать:
Можно ли протестировать техническое задание за полчаса?
Научиться тестировать в условиях отсутствия идеальных требований на проекте можно на курсе: Тестирование без требований: выявление и восстановление информации о продукте |
Планирование тестирования. На данном этапе разрабатывается стратегия тестирования, выявляются риски, выбираются инструменты и распределяются роли в команде. Все это фиксируется в таких документах, как тест-план и тест-стратегия.
Разработка тест-кейсов.
О том, почему мы пишем тест-кейсы, можно узнать в нашем видео:
А о том, как писать тест-кейсы, вы можете узнать на нашем Youtube-канале |
Настройка тестовой среды окружения. Этот шаг нужен для того, чтобы подготовить все условия для эффективного процесса тестирования. Он включает настройку тестового сервера, настройку сети, настройку тестовых ПК или устройств, а также формирование тестовых данных для тестовой среды.
Выполнение тестов. Команда QC начинает выполнение тест-кейсов в соответствии с планами тестирования и создает отчеты о багах. Также чаще всего на этом этапе происходит валидация багов. Она нужна для того, чтобы убедится, что дефекты, которые ты завёл ранее, ДЕЙСТВИТЕЛЬНО пофиксили.
Закрытие цикла – последний этап жизненного цикла тестирования программного обеспечения. Он включает в себя встречу членов группы тестирования для того, чтобы оценить показатели проекта.
Инструменты тестировщика
Инструменты тестирования – все продукты, которые помогают QA-инженерам организовывать свою работу на каждом этапе.
Выбор инструментов для работы тестировщика зависит от вида тестирования, личных предпочтений и места работы тестировщика. Со временем у каждого тестировщика появляется свой набор инструментов.
Инструменты для управления тестированием
Инструменты для автоматизации тестирования
- Selenium
- Katalon Studio
- TestComplete
Статья по теме: Автоматизация тестирования REST API при помощи Postman и JavaScript
Инструменты для кросс-браузерного тестирования
- Multibrowser
- CrossBrowserTesting
- Lunascape
- Browsera
Статья по теме: Гайд по кроссбраузерному тестированию +множество полезных инструментов
Инструменты для нагрузочного тестирования
Инструменты для баг трекинга
Инструменты для автоматизации тестирования мобильных приложений
Для Android :
- iPhone Tester
- Appium
- TestStudio
Для iPhone и iPad:
Мобильные эмуляторы
- mobiReady
- BrowserStack
- CrossBrowserTesting
- Screenfly
- Mobile phone emulator
Инструменты для тестирования юзабилити
Инструменты для API- тестирования
- Postman
- SoapUI
Инструменты тестирования безопасности
- NetSparker
- OWASP
- Acunetix Vulnerability Scanner
CSS Валидаторы
Также рекомендуем:
Инструменты тест-менеджера, которые всегда должны быть под рукой
8 отличных сервисов для генерации данных
Надеемся, наш гайд помог вам в понимании основ тестирования. Успехов в карьере тестировщика!
А тем, кто хочет узнать о каждом аспекте тестирования на практике, рекомендуем пройти курсы тестирования ПО.
И обязательно скачайте чек-лист “Что должен знать и уметь джуниор-тестировщик”, заполнив небольшую анкету.