Что нужно знать тестировщику для работы в студии мобильной разработки. Тестировщик программного обеспечения (ПО) Инженер по тестированию программного обеспечения

Тестирование ПО. Уровень 1. 1 месяц.
Теоретические знания и начальный опыт

В настоящее время в IT-сфере как никогда стала актуальной профессия тестировщика. В первую очередь, высок спрос на специалистов, занимающихся тестированием программного обеспечения. Основными обязанностями таких сотрудников являются выявление ошибок в работе программ и моделирование различных ситуаций, связанных с их дополнительной нагрузкой. Таким образом, обнаруживая и описывая погрешности, направляя отчеты о них для внесения исправлений в программу, тестировщики постоянно взаимодействуют с командой разработки. Курс "Тестировщик ПО. Уровень 1" от GeekBrains предназначен для тех, кто хочет начать карьеру в тестировании программных продуктов. В его рамках рассматриваются теория и практика создания тест-кейсов, тест-комплектов, оформления багов и отчетов по результатам тестирования. Данный курс - это 8 практических занятий, где Вы получите знания и навыки, необходимые для того, чтоб легко включиться в работу над созданием и улучшением IT-проекта.

Урок 1. Основные понятия в тестировании

Что представляет собой тестирование. Как определить качество ПО (стандарты ISO, критерии качества, метрики). Категории программных ошибок. Терминология.

Урок 2. Место тестирования в процессе разработки ПО

Цикл разработки ПО. Цикл тестирования ПО. Типы тестов в процессе разработки ПО. Соответствие тестирования методологии разработки ПО.

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

Определение и структура тест-кейсов. Характеристики хорошего теста. Аксиомы тестирования. Поддерживаемость тест-кейсов. Системы менеджмента качества. Тест-комплекты. Чек-листы. Подготовка тестовых данных.

Урок 4. Классы эквивалентности и граничные условия. Планирование и работа с требованиями

Определение и поиск Классов эквивалентности. Границы классов эквивалентности. Работа с требованиями к ПО. Участие в планировании релиза ПО. Что делать, если нет документации.

Урок 5. Работа с багтрекером

Определение и функции багтрекера. Как правильно формулировать задачи. Жизненный цикл (workflow) ошибок. Оперативное отслеживание задач в багтрекере.

Урок 6. Регрессионное тестирование

Назначение регрессионного тестирования. В каких случаях требуется проводить регрессионное тестирование. Выбор тест-комплектов для регрессионного тестирования. Приоритизация и оптимизация тест-комплектов.

Урок 7. Организация процесса тестирования

Должностная иерархия в тестировании. Планирование и оценка сроков на тестирование. Критерий начала/завершения тестирования. Отчетность по результатам тестирования. Подготовка рабочего места.

Урок 8. Тестирование пользовательского интерфейса

Особенности тестирования пользовательских интерфейсов GUI и web-приложений.

Тестирование ПО. Уровень 2. 1 месяц.
Работа с документацией и тестирование приложений

Многие считают, что профессия тестировщика является скучной и однообразной. Однако это мнение несправедливо. Профессиональный тестировщик - это, в первую очередь, человек, умеющий творчески подойти к решению стоящих перед ним задач. Опыт, приобретаемый в рамках этой профессии, может стать ступенью к карьере программиста. Важной особенностью работы тестировщика является возможность полноценного аутсорса и фриланса. Курс "Тестировщик ПО. Уровень 2" от GeekBrains предназначен для тех, кто уже знаком с основами тестирования и хочет получить более глубокие знания и навыки, требуемые для начала карьеры в IT-сфере. В его рамках разбираются способы исследования тестируемого ПО, изучаются техники определения необходимого количества тестов и способы визуализации тестируемого функционала. Данный курс - это 8 практических занятий, после которых Вы сможете проявить себя в качестве экспертного пользователя программного обеспечения, имеющего собственное видение наилучшей организации процесса тестирования.

Урок 1. Тест-анализ. Исследование ПО

Типы и цели исследования ПО. Декомпозиция приложения.

Урок 2. Доменное тестирование и комбинации параметров

Урок 3. Тестовая комбинаторика

Создание тестового набора. Минимальные проверки. Перебор значений. Атомарные проверки. Pairwise. Метод взаимосвязанных проверок.

Урок 4. Тестирование состояний и переходов

Анализ ПО на возможные состояния и переходы. Выявление жизненных циклов сущностей и комбинация состояний. Выбор валидных проверок.

Урок 5. Тест-анализ на основе бизнес-логики

Выбор условий бизнес-требования. Создание таблиц решений. Комбинирование тестов на основе таблицы решений.

Урок 6. Тест-анализ на основе рисков (предугадывание ошибок)

Определение тестируемого функционала ПО. Выявление потенциальных ошибок и их градация. Определение стратегии.

Урок 7. Стратегия тестирования

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

Урок 8. Оценка эффективности тестов

Оценка тестового покрытия. Оценка эффективности тестов.

Введение в автоматизацию тестирования. 1 месяц.
Автоматизированное тестирование

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

Урок 1. Введение в автоматизированное тестирование

Что такое автоматизированное тестирование; какие разновидности автоматизированного тестирования бывают; проектный выбор: ручное или автоматизированное; черный и белый ящик при автоматизации; обзор и выбор инструментария.

Урок 2. Стратегия автоматизированного тестирования. Практическое создание тестов при помощи Autoit.

Принятие решения о введении автоматизации; проектирование автотестов; стратегии автоматизированного тестирования; процесс развертывания автоматизации; тестовое окружение для проведения автоматизации; создание автотеста при помощи Autoit.

Урок 3. Виды автоматизированного тестирования

Виды автоматизированного тестирования; автоматизированное функциональное тестирование; инструменты юзабилити тестирования; автоматизированное нагрузочное тестирование.

Урок 4. Проект Selenium и его составляющие.

Цели, задачи, особенности Selenium. Selenium WebDriver. Selenium RC. Selenium Server. Selenium Grid. Пример использования Selenium IDE на практике.

Урок 5. Автоматизированное нагрузочное тестирование на примере Apache Jmeter

Нагрузочное тестирование; принципы и практика построения нагрузочных тестов; обзор инструментов; пример использования Apache Jmeter.

Урок 6. Автоматизированное мобильное тестирование

Тестирование мобильных приложений; автоматизированные инструменты – обзор, выбор; нагрузочное тестирование; мобильные эмуляторы; мобильные фермы.

Урок 7. Автоматизация процесса тестирования

Автоматизация процесса тестирование и создания тестов; утилиты для автоматизации процессов тестирования; генерация тестов; фреймворки; плагины.

Урок 8. Работа с требованиями и постановками задач

Требования, задачи; системы работы с требованиями и постановкой задач; системы багтрекинга; настраивание процессов проведения тестирования и их автоматизация и инструментарий.

Основы баз данных. 20 уроков.
Проектирование БД и запросы SQL

Базы данных (БД) - это системы хранения и обработки данных, для доступа к которым используется язык SQL (Structured Query Language). Любой современный сайт, игра или настольное приложение нуждаются в хранении данных. На данный момент существует множество различных систем управления базами данных (СУБД), самой популярной является MySQL. “Основы баз данных” - это 20 интенсивных видео-уроков (по 10 минут), где мы вместе пройдём все этапы проектирования БД на примере интернет-магазина с использованием языка запросов SQL. После этого курса вы сможете использовать различные базы данных, такие как MS SQL и Postgre Sql, так как синтаксис языка SQL для них практически не отличается.

Урок 1. Реляционные базы данных

Чем отличается БД от СУБД; какие базы данных называются реляционными; обзор современных СУБД.

Урок 2. Установка СУБД

Установка СУБД MySql и графического приложения Mysql Workbench.

Урок 3. Проектирование базы данных, нормальные формы

Проектирование данных в Excel; нормальные формы; первичный ключ.

Урок 4. SQL-команда CREATE

Создание таблиц в графическом интерфейсе MySql Workbench; команда CREATE; типы данных; работа в консоли.

Урок 5. SQL-команда INSERT

Заполнение таблиц данными с помощью графического интерфейса; команда INSERT; AUTO INCREMENT.

Урок 7. SQL-команды DISTINCT, ORDER BY, LIMIT

Получение и фильтрация данных с помощью SQL-команд DISTINCT и LIMIT; сортировка с помощью команды ORDER BY.

Урок 9. Согласованность данных

Понятие согласованности или консистентности данных.

Урок 10. Внешний ключ

Понятие внешнего ключа и ограничений на значения столбцов; FOREIGN KEY CONSTRAINTS.

Направление тестирования быстро развивается. Если ещё несколько лет назад можно было практически без знаний и опыта устроиться работать ручным тестировщиком и учиться непосредственно на работе, то в 2018 году сделать так уже сложнее. Ниже представлен минимальный список того, что надо знать для работы тестировщиком — или QA-инженером, как всё чаще называют представителей нашей профессии — а не мартышкой, которая просто тыкает в кнопки.

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

Каковы главные человеческие качества тестировщика

  • софт-скиллы. Считаю, что они важнее хард-скиллов. Последние можно развить или вызубрить, а вот с гибкими навыками чаще всего рождаются. Коммуникация в нашем деле — чуть ли не основная часть работы, и умение находить общий язык даже с теми, кто вызывает неприязнь, крайне важно;
  • умение грамотно излагать мысли устно и письменно. Так как мы пишем много разных репортов, это тоже очень важно. Невнятная писанина может сильно усложнить работу всей команде;
  • проактивность и готовность брать ответственность. Нельзя просто сидеть и ждать, пока тебе скажут, что делать. Важно понимать, что ты — часть команды и твоё действие или бездействие напрямую влияет на качество продукта и, как следствие, на компанию;
  • планирование своего времени с помощью календаря, таск-трекера, ежедневника или блокнота. Важно заранее видеть, где в работе могут быть простои или перегрузы, и принимать шаги, чтобы их сгладить.

Что должен знать и уметь тестировщик

Мы собрали перечень ключевых навыков и умений тестировщиков ПО. Итак, тестировщик должен:

  • владеть английским на уровне чтения;
  • обладать терпением, внимательностью и способностью смотреть на одно и то же с разных точек зрения. Это самое важное;
  • знать, что такое юзер-стори , чек-лист и тест-кейс , уметь правильно их составить;
  • понимать, какие виды и типы тестирования бывают и когда надо их применять. Поможет разобраться: «Тестирование программного обеспечения — основные понятия и определения» ;
  • знать, как пользоваться баг-трекером. В это YouTrack , но если научился пользоваться одним — считай, что научился пользоваться всеми;
  • владеть техниками тест-дизайна, как минимум анализом классов эквивалентности и граничных значений и диаграммами переходов состояний ;
  • иметь общее представление о гайдлайнах iOS и Android ;
  • быть опытным пользователем как минимум одной из ОС;
  • понимать принципы клиент-серверного взаимодействия ;
  • тестировщик ПО должен уметь разобраться с продуктом при отсутствии документации;
  • работать с IDE (Xcode /Android Studio);
  • снифферить и модифицировать трафик через Fiddler /Charles ;
  • конструировать запросы в Postman ;
  • знать, для чего нужен browserstack ;
  • создавать эмуляторы в Genymotion, Android Studio, Xcode;
  • иметь или развивать чувство прекрасного. Тут может помочь бюро Горбунова ;
  • понимать, что такое кроссплатформенные приложения и чем они отличаются от нативных. Поможет разобраться: ;
  • работать с виртуальным окружением VirtualBox и Vagrant ;
  • понимать принцип работы и знать основные команды Git. Поможет разобраться: «Основы Git» ;
  • уметь пользоваться инструментом для разработки тестовых сценариев Selenium IDE ;
  • понимать как работает инструмент нагрузочного тестирования Yandex Tank и уметь его настроить.

Приятный плюс, если вы:

  • обладаете навыками автоматизации при помощи Appium , Katalon studio ;
  • имеете глубокие знания Selenium WebDriver ;
  • умеете организовать нагрузочное тестирование при помощи Apache jMeter ;
  • знаете, как провести тестирование безопасности для мобильного или веб-приложения.

C чего может начать новичок

Разберёмся, как стать тестестировщиком программного обеспечения с нуля и что требуется знать начинающему тестестировщику. Перечень книг и полезные статьи, которые стоит почитать:

  • «Тестирование дот ком» Романа Савина. Книга не новая, но даст базовые представления о специализации;
  • Tap into mobile application testing , Jonathan Kohl. Книга о специфике тестирования мобильных приложений;
  • гайдлайны

IT развивается, постоянно создаются новые продукты, которые требуют проверки перед тем, как выйти на рынок, чтобы конечный пользователь получил качественный продукт. Именно от тестировщика зависит, в каком состоянии продукт попадет на рынок.

Кто такой тестировщик

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

Если говорить конкретно кто такой тестировщик и чем он занимается, то это человек, который проверяет работу, сделанную командой разработки, указывает на ошибки в работе программного обеспечения (сайта, приложения, чатбота и т.д.).

Достаточно сложно дать определение слову «тестирование», но это не:

  • разработка - даже если тестировщик умеет писать код, тестирование - это не разработка ПО;
  • анализ и сбор данных - хоть в работе и приходится уточнять данные, анализировать их, но эта работа делается только по надобности, не постоянно;
  • техническое писательство - при этом тестировщику приходится документировать свою работу и тесты.

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

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

Не бывает универсальных тестировщиков, иначе работа была бы некачественной. Есть несколько видов тестирования со своими особенностями.

Функциональное тестирование

Функциональное тестирование в своей основе имеет анализ спецификаций функциональности определенных компонентов или системы в целом. Тесты в этом виде основываются на функциях, которые выполняет система. Обычно эти функции описаны в требованиях, спецификациях.

Основное достоинство функционального тестирования - имитация фактического использования системы во время тестирования. Недостатка 2:

  • возможность упущения логических ошибок в ПО;
  • избыточное тестирование.

Нагрузочное тестирование

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

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

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

Также здесь тестируется надежность приложения. Это определяется по работоспособности приложения при многочасовом тестированием ПО со средней нагрузкой.

Автоматизированное тестирование

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

  • запуск;
  • инициализация;
  • выполнение теста;
  • анализ;
  • выдача результата.

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

Юзабилити-тестирование

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

Юзабилити-тестирование может пригодиться в нескольких случаях:

  • тестирование удобства интерфейса;
  • сравнение продукта с конкурентами;
  • сравнение нескольких версий интерфейсов одного продукта.

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

Интеграционное тестирование

Суть интеграционного тестирования - в проверке связи компонентов целого продукта и их взаимодействия с другими частями системы.

Есть несколько типов этого тестирования:

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

Конфигурационное тестирование

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

  • платформы;
  • драйверы;
  • компьютерные конфигурации.

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

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

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

Тестирование безопасности проводится для проверки безопасности, анализа рисков, связанных с хаккер-атаками и вирусами. Главная задача тестирования безопасности - установить максимальную безопасность и комфорт при использовании продукта.

Принципы тестирования:

  • доступность;
  • конфиденциальность;
  • целостность.

Игровое тестирование

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

Какие навыки нужны тестировщику?

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

Требования к тестировщику ПО (плюс / минус в зависимости от компании):

  • Понимание что такое баг, тест-кейс, стратегия тестирования (и умение ее выстраивать), отчет об ошибке;
  • Базовое знакомство с автоматизированным тестированием;
  • Быстрая обучаемость, приспосабливаемость к стремительно меняющейся среде;
  • Умение работать с базой данных - основными понятиями и запросами;
  • Коммуникабельность - важно для взаимодействия с командой;
  • Аналитический склад ума;
  • Умение быстро обрабатывать большое количество информации.

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

Зарплата тестировщика

Средняя зарплата тестировщика в Москве - около 70 тысяч рублей, в Питере - 50. Немного отстает Екатеринбург - 45 тысяч рублей. В городах поменьше и зарплата меньше. В Волгограде, Воронеже, Перми, Уфе, Казани зарплата составляет 33-40 тысяч рублей.

Начинающие тестировщики без опыта могут рассчитывать на зарплату, составляющую половину или 2/3 части от средней платы тестировщика по городу.

Тестировщик с высшим образованием и опытом работы от 1 года может рассчитывать на зарплату от 65 тысяч в Питере и от 80 в Москве. Максимальный доход в столице - 150 тысяч, в Санкт-Петербурге - 120 тысяч рублей.

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

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

Как стать тестировщиком

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

Если есть высшее образование - хорошо. В компаниях предпочитают соискателей с техническим образованием, так как именно они имеют аналитический склад ума. Но если образование гуманитарное, не стоит отчаиваться. Нужно создать резюме, в котором разместить информацию о том, какими проектами приходилось заниматься. Даже если нет опыта работы, но есть курсовые работы с практической частью, дипломная работа, опыт прохождения практики в IT - все это стоит вписать в резюме для привлечения внимания. Обязательно указать свои основные достоинства, которые могут пригодиться в работе тестировщиком. Это могут быть: внимание к деталям, усидчивость, знакомство с компьютерным софтом, эмпатия, знание языков программирования, знание иностранных языков.

Подготавливаясь к собеседованию, стоит ознакомиться с темами:

  • обеспечение качества ПО;
  • что такое тестирование;
  • виды тестирования;
  • уровни тестирования;
  • тестовые артефакты и их предназначение;
  • знакомство с тест-дизайном;
  • автоматизация тестирования и ее виды;
  • метрики тестирования, как их использовать.

Курсы для тестировщиков

Самый простой способ изучить азы тестирования - . Главное - чтобы они были качественные, а кураторы не лили “воду”.

Существуют такие площадки и школы как ГикБрейнс, Testbase, академия Алексея Сухорукова и другие. Можно выбрать уровень обучения, а можно пройти стресс-курс, чтобы узнать, каких знаний недостаточно.

При МГТУ имени Баумана действует учебный центр, регулярно проводящий курсы по тестированию. Их ведут преподаватели-практики.

Нельзя упускать возможности посетить стажировки. Придется работать бесплатно, но можно набраться опыта. Найти стажировки можно на сайте хедхатера или по запросу в гугл “стажировка тестировщик в городе (название города)”.

Открытых предложений о стажировке не так много, но можно самостоятельно предлагать свои услуги компаниям, производящим софт, игры, приложения, сайты.

Стоит ли быть тестировщиком?

Как видно, у профессии тестировщик есть минусы и плюсы. Не нужно принуждать себя к этой работе - очень быстро надоест, ведь она требует усидчивости, дотошности. Если не получилось найти себя на пути программиста, разработчика, возможно, стоит попробовать себя в тестировании. Основные минусы профессии:

  • нужно быть предельно внимательным, педантичным, усидчивым;
  • большая ответственность;
  • тестированию не обучают в университете.
  • достаточно просто самому изучить хотя бы основы тестирования;
  • работодатели берут на работу тестировщиков без опыта;
  • воспитание в себе силы воли, терпения.

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

Актуальность профессии

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

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

Почему именно 9 сентября? Именно в этот самый день более 70 лет назад ученые из Гарварда проводили тестирование вычислительного монстра под названием Mark II Aiken Relay Calculator. Пусть тебя не смущает слово «Calculator» в названии: вес первого «Марка» точно известен и составлял 35 тонн. Вес второго, думаю, был не намного меньше.

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

Сколько зарабатывают тестеры?

Каких-то пять лет назад считалось, что тестером может быть любой студент 1-2-го курсов. К тестерам относились несерьезно - как к «недопрограммистам». Формат такой работы подразумевал только подработку на время учебы в ВУЗе, а серьезно заработать, будучи тестировщиком, удавалось мало кому.

Итак, сколько зарабатывают тестеры? Могу поспорить, что ответ на этот вопрос тебя интересовал больше всего, раз ты начал читать эту статью. Тестеры со стажем в 2-3 года могут легко заработать около 100 000 рублей в месяц. Минимальная заработная плата составляет от 30 тысяч рублей, средняя около 50-60 т.р. Не буду приводить красивых графиков, приведу две вакансии, которые нашел за 5 секунд на сайте Яндекс.Работа: в первом случае предлагают до 90 т.р. (что вполне нормально), во втором - от 30 до 45 тысяч рублей.

Вообще, если поискать, можно встретить вакансии до 120 тысяч рублей, что даже превышает обещанные мною суммы.


Как видишь, профессия довольно актуальна и при наличии желания и определенных навыков, можно без проблем найти довольно хорошо оплачиваемую работу. Да, это не Газпром, но на жизнь хватит.

Условия, требования и обязанности

Просмотрев с десяток вакансий, могу рассказать хорошие новости. Работать можно, как в офисе, так и дома - выбирай тот способ работы, который тебе привычнее. Если долго добираться в офис, можно без проблем найти удаленную работу со свободным графиком работы. А это означает, что ты можешь учиться в ВУЗе и работать тестером. В этом плане ничего не поменялось. Конечно, на «удаленке» платят меньше, но и условия труда более удобные.

Образование требуется неполное высшее, а вот опыт работы нужен. Чаще всего требуют наличие опыта работы по специальности от 1 года. Вопрос, а где же получить опыт, если везде нужны уже опытные, остается открытым. Впрочем, это беда не только этой профессии, а и любой другой. Зарплата прямо пропорционально зависит от опыта работы - приличные деньги начинают платить тестерам с опытом работы от 2 лет.

Но не нужно думать, что тестеру не нужны никакие навыки, кроме умения нажимать на кнопки! Как минимум нужно:

  • знать основы языка программирования, на котором ведется разработка;
  • уметь работать с Bug-трекерами;
  • понимать, что такое функциональное тестирование;
  • иметь навыки работы со средствами автоматического тестирования (вроде Selenium для Java или PHPUnit для PHP);
  • уметь пользоваться MS Office для документирования результатов.

В обязанности тестера входит:

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

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

Перспективы

Какие перспективы могут быть у тестера? Прежде всего, есть перспектива повышения зарплаты по мере роста опыта работы. Сегодня ты получаешь 30-40 тысяч рублей, через два года - почти 100 тысяч. Чем не перспектива? Даже если текущая компания не предлагает тебе такие деньги, всегда можно перейти в другую: опыт работы-то уже у тебя есть.

Другая перспектива - стать программистом. Проработав несколько лет тестером, довольно просто перейти в другую сферу IT: например, «превратиться» в разработчика, аналитика или даже в руководителя. Все зависит от тебя и от твоих интересов.

Где можно получить профессию тестировщика?

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

Но нужно отметить, что обучение в ВУЗе не всегда оправдано, особенно если речь идет о тестерах. Во-первых, учиться в ВУЗе долго. А если у тебя уже есть высшее образование (пусть даже не техническое) и ты хочешь освоить профессию тестера, то вообще нет смысла опять поступать в ВУЗ: на втором высшем ты будешь вынужден 2.5 года посещать лекции. Потерять целых 2.5 года! А если высшего образования у тебя нет, тогда ты можешь потерять целых 5 лет, за которые можно было бы не только освоить эту профессию, но и превратиться в очень востребованного специалиста.

Во-вторых, получив диплом программиста (и потратив на это от 2.5 до 5 лет), ты все равно не сможешь устроиться по специальности: ведь у тебя нет опыта практической разработки, которого в ВУЗах не дают.

В качестве альтернативы можно предложить курсы, позволяющие освоить профессию тестировщика ПО. Например, . Преимущества курсов в том, что ты экономишь и время, и деньги: они длятся всего 2 месяца и обойдутся тебе гораздо дешевле, чем обучение в ВУЗе по специальности «программист». Кроме того, на курсах ты получаешь:

  • эффективное онлайн-обучение в комфортное для тебя время;
  • видеозаписи всех занятий, все презентации и учебные пособия.
  • интересные домашние задания для закрепления материалов;
  • возможность задавать любые вопросы преподавателю;
  • сертификаты по каждому курсу и гарантированную стажировку (2 месяца);
  • возможность стажировки в IT-компании с последующим трудоустройством;
  • возможность принимать участие в настоящих стартапах и создавать свои проекты;
  • реальное портфолио и резюме для старта карьеры;
  • знания и навыки, которые окупят стоимость курсов за месяц работы в компании.

Уже через 4 месяца ты будешь обладать следующими навыками:

  • уверенное владение терминологией;
  • опыт создания тест-кейсов и формирования тест-комплектов, проработка и написание приемочных тестов;
  • знание уровней доступа к программе и защите;
  • навыки тестирования по заранее подготовленному тестовому плану;
  • умение оценивать эффективность тестирования;
  • знание ошибок и проблем, возникающих у пользователей при работе с программными продуктами;
  • опыт разработки сценариев тестирования, документирование найденных дефектов;
  • понимание функционального тестирования ПО;
  • навыки проведения ручного тестирования ПО;
  • знание методологии и методик тестирования;
  • знание типов и видов тестирования, различных их классификаций;
  • опыт работы с баг-трекинговыми системами (Atlassian JIRA);
  • понимание жизненного цикла разработки ПО, различных методологий его разработки и места тестирования в данном процессе.

А самое главное, тебе не придется ждать несколько лет, а сразу можно будет приступить к работе!

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

А как же быть, если работодатель требует наличие корочек? Ну, в большинстве случаев оно все же не требуется. Если вышка у тебя уже есть, то в к нему прибавится сертификат, который ты получишь по окончанию курсов. А если высшего образования нет, то ничего страшного: зато у тебя будет весь набор навыков, необходимых для успешного тестирования программного обеспечения. Когда ты проработаешь первый год по специальности, на отсутствие в/о не будет смотреть вообще никто - главное, что опыт и навыки уже есть. Кроме того, по окончанию курсов у тебя будет возможность двухмесячной стажировки в реальной компании!

Выводы

Выводы получаются такие: профессия тестера - востребованная и позволяет в среднем зарабатывать около 60 т.р. в месяц. Учиться в ВУЗе на тестера смысла нет: долго, дорого да и нет официально такой специальности, как тестер. Кроме того, после ВУЗа у тебя все равно не будет опыта работы - лишь несколько потерянных лет.

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

Здорово, правда?

Специальный проект с компанией GeekBrains

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

Тестировщик ПО: что это такое

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

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

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

При создании программ используются различные языки программирования. Это может быть C++, JavaScript, Python и так далее. После того как продукт будет завершен, его первым делом проверяет сам автор. Но, так как он является творцом программы, он не всегда может объективно оценить качество полученного товара. Не говоря уже о том, что у него может попросту не хватить времени для модуляции всех возможных способов ее применения.

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

Основные обязанности тестировщика программ

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

  1. Создание плана проверки. Тестировщик ПО должен заранее продумать все сценарии использования приложения и воссоздать их. При этом чем опытнее специалист, тем быстрее он может определять наиболее опасные для работы приложения факторы.
  2. обеспечения, посредством специальных автоматизированных инструментов. Как и у любого другого мастера, у тестера есть свои приспособления для оптимизации и ускорения работы. Они универсальны и, тем не менее, требуют предварительного освоения и практики.
  3. Грамотное и систематизированное описание найденных проблем и недоработок. Суть в том, что недостаточно просто выявить ошибку. Помимо этого, нужно уметь правильно составлять протокол работы, дабы программист смог понять, из-за чего произошел сбой и какая часть его приложения виновна в этом.

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

Обучение профессии

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

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

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

Какими навыками должен обладать уважающий себя специалист

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

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

Помимо этого, тестировщик должен хорошо владеть английским языком, так как он является доминантным в мире программирования. Более того, со временем придется довести его уровень до идеального, а также изучить все тонкости технического стиля.

Наработка практических навыков

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

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

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

Где искать прибыльную работу

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

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

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

Плюсы и минусы профессии

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

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

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

Оплата труда

Довольно сложно вывести среднеарифметическую зарплату тестировщика ПО. Это связано с тем, что она зависит от того, насколько удачлив специалист. Так, можно взять один заказ на 10 тыс. рублей и сделать его за неделю, а можно получить работу на 20 тыс. рублей и не одолеть ее за целый месяц.

И все же можно с уверенностью сказать, что доход начинающего тестера варьируется в пределах 10-15 тыс. рублей в месяц. Опытный специалист может заработать эти же деньги в два раза быстрее. А штатный сотрудник престижной фирмы и вовсе получает около 40-45 тыс. рублей.

Понравилась статья? Поделитесь с друзьями!