Основы тестирования ПО 2020: самый подробный гайд

Уже готов стать тестировщиком или хочешь освежить базовые понятия? Тогда этот гайд – то, что нужно! Команда ПОИНТ и курса Jedi.Point структурированно делится теоретическими основами тестирования: от видов до полезных инструментов.

Что такое Тестирование ПО?

Тестирование ПО – процесс, который помогает проверить выполнение всех бизнес-сценариев и требований пользователей, а также выявить все возможные проблемы и дефекты IT-продуктов.

В чем разница между тестированием, QC и QA?

Зачастую понятия «тестирование», «QA» и «QC» или путают, или используют для обозначения одного и того же. На самом деле эти термины характеризуют немного разные процессы:

  • тестирование отвечает непосредственно за нахождение багов; 
  • QC (контроль качества) – за выполнение процесса тестирования (написание/прохождение кейсов, поиск/заведение дефектов etc);
  • QA (обеспечения качества) – за создание системы контроля, которая будет предотвращать появление багов уже на этапе разработки ПО, сокращая количество выявленных дефектов на этапе тестирования; грубо говоря – построение самого процесса тестирования.

Зачем нужно тестирование и тестировщики?

Действительно, разве разработчики сами не могут проверять свои же продукты?

 Еще 5-6 лет назад такой вопрос обсуждался в ИТ-кругах и на просторах Интернета. Но в 2020 ясно: тестировщики без работы не останутся, а тестирование должны осуществлять специалисты в сфере QA. 

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

Чтобы понять, как еще тестировщики помогают своим заказчикам, читайте также:

7 способов, как тестирование ПО может помочь бизнесу

Виды тестирования ПО

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

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

С какими же основными классификациями и типами тестирования стоит ознакомиться начинающим тестировщикам? 

Виды тестирования ПО по степени автоматизации

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

Любое тестирование можно выполнить как вручную, так и с помощью инструментов автоматизации.

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

Автоматизированное тестирование, в свою очередь, выполняется с помощью таких фреймворков, как Selenium, PHPUnit, Mockery и других. Его целью является снижение затрат и рисков, связанных с человеческим фактором. Особенно эффективен данный тип на долгосрочных проектах с частыми релизами и объемным регрессом.

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

Разница между ручным и автоматизированным тестированием

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

Также рекомендуем:

Советы о том, как изучить автоматизацию, если не умеешь программировать

Как автоматизировать тестирование сайта с динамическими данными и сделать это быстро

Как выбрать тесты для автоматизации?

Пример плохой организации автоматизированного тестирования с разбором полетов

Виды по объекту тестирования

Функциональное тестирование (functional testing) проверяет часть системы, которая необходима для того, чтобы пользователь мог выполнить бизнес-сценарий от начала до конца. Оно выполняется первым, до нефункционального тестирования. Примеры: переход по разделам форума, поиск по сайту.

Методы и техники функционального тестирования:

Агеева Нина, автор курса Погружение в тестирование. Jedi Point, рассказывает о сессионном тестировании

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

Типы нефункционального тестирования:

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

Тестирование безопасности – это вид тестирования для выявления уязвимости программного обеспечения к различным атакам (SQL, XSS etc).

Рекомендуем ознакомиться:

Тестирование безопасности: опыт Лаборатории Качества

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

Тестирование безопасности или SQL-инъекции

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

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

Тренер ПОИНТ Валерия Останко рассказывает о том, как тестировать локализации даже без знания языка
  • Юзабилити тестирование (usability testing)

Тестирование юзабилити – это метод тестирования, направленный на выявление удобства и понятности интерфейса.

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

Виды тестирования по позитивности сценария

Негативное тестирование – проверка того, что при вводе недопустимых значений/совершении недопустимых действий программа ведет себя корректно – не совершает того, чего не должна и выдает человекочитаемое сообщение об ошибке.

Позитивные тестирование – проверка того, что программа работает правильно на «правильных» данных – не выдает ошибок, делает то, что должна.

Агеева Нина, автор курса Погружение в тестирование. Jedi Point, рассказывает о позитивном и негативном тестировании

Этапы тестирования

Для описания процесса тестирования поэтапно существует несколько методик. Одна из самых понятных и простых моделей – STLC. 

STLC (Software Testing Life Cycle) означает жизненный цикл тестирования программного обеспечения.

Модель жизненного цикла тестирования программного обеспечения (модель STLC) состоит из шести основных фаз.

6 фаз STLC (Software Testing Life Cycle):

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

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

По этой теме рекомендуем почитать:

Можно ли протестировать техническое задание за полчаса?

Персонажи в тестировании

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

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

Агеева Нина, автор курса Погружение в тестирование. Jedi Point, подробно объясняет, что такое стратегия и как ее составить

Разработка тест-кейсов. 

О том, почему мы пишем тест-кейсы, можно узнать в нашем видео:

Станислав Марков, тренер ПОИНТ и курса Погружение в тестирование. Jedi Point детально рассказывает о каждой фазе 
А о том, как писать тест-кейсы, вы можете узнать на нашем Youtube-канале

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

Выполнение тестов. Команда QC начинает выполнение тест-кейсов в соответствии с планами тестирования и создает отчеты о багах. Также чаще всего на этом этапе происходит валидация багов. Она нужна для того, чтобы убедится, что дефекты, которые ты завёл ранее, ДЕЙСТВИТЕЛЬНО пофиксили.

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

Станислав Марков, тренер ПОИНТ и курса Погружение в тестирование. Jedi Point детально рассказывает о каждой фазе 

Инструменты тестировщика

Инструменты тестирования – все продукты, которые помогают QA-инженерам организовывать свою работу на каждом этапе.

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

Инструменты для управления тестированием

Инструменты для автоматизации тестирования

Статья по теме: Автоматизация тестирования REST API при помощи Postman и JavaScript

Инструменты для кросс-браузерного тестирования

Статья по теме: Гайд по кроссбраузерному тестированию +множество полезных инструментов 

Инструменты для нагрузочного тестирования

Инструменты для баг трекинга

Инструменты для автоматизации тестирования мобильных приложений

Для Android :

Для iPhone и iPad:

Мобильные эмуляторы

Инструменты для тестирования юзабилити

Инструменты для API- тестирования

Инструменты тестирования безопасности

CSS Валидаторы

W3C CSS validator

Также рекомендуем:

Инструменты тест-менеджера, которые всегда должны быть под рукой

8 отличных сервисов для генерации данных

Надеемся, наш гайд помог вам в понимании основ тестирования. Успехов в карьере тестировщика!

А тем, кто хочет узнать о каждом аспекте тестирования на практике, рекомендуем пройти курсы тестирования ПО.