Что такое тестирование программ и зачем оно нужно

Как стать тестировщиком ПО и с чего начать?

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

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

Название и ссылка на курс

Описание

Обучение профессии с нуля. Занятия проводятся онлайн. Включают теорию и практику. В программе — основы тестирования веб-приложений (форм, полей), обучение техникам тестирования, сценариям, методам автоматизации. Также проходят HTML, CSS, SQL, Java, систему контроля версий Git. Вы научитесь работать в таск-трекерах, использовать шаблоны и многое другое. Более 500 уроков.

Это курс для людей, которые уже занимаются тестированием или разработкой и хотят углубить свои знания в области проверки мобильных приложений на iOS и Android. Обучают ручному и автоматизированному тестированию.

Подходит новичкам, уровень обучения — с нуля. В программе — основы тестирования, инструменты, в том числе автоматизации, язык Java, система контроля версий Git. Отдельные занятия посвящены началу карьеры. На момент подготовки обзора курс проводится совместно с «Альфа-Банком». Лучшие выпускники могут получить приглашение на собеседование в эту компанию.

QA должны иметь автономию и авторитет

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

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

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

Что нужно, чтобы стать тестировщиком?

Несмотря на относительную молодость профессии тестировщика ПО (не более 20 лет), для трудоустройства в QA требуется определённый набор знаний и навыков.

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

Кроме того, необходимо обладать рядом специфических качеств

Например, любознательность, внимание к деталям, усидчивость, коммуникабельность и желание постоянно перепроверять себя

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

Как стать QA-аналитиком

Итак, потолок достигнут, вы проработали мануальным тестировщиком один-два года и ощутили, что ваше предназначение — это именно аналитика, а не DevQA. Предлагаем действовать по такому плану: 

1. Возьмите ознакомительный курс по аналитике и почитайте литературу:

  • К. Вигерс, Д. Битти «Разработка требований к программному обеспечению»;
  • А. Коберн «Современные методы описания функциональных требований к системам»;
  • Д. Леффингуэлл «Принципы работы с требованиями к программному обеспечению. Унифицированный подход».

2. Проанализируйте проект, на котором работаете сейчас.

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

3. Подойдите к менеджеру проекта с конкретным предложением: «Я хочу развиваться как QA-аналитик, в связи с этим готов взять на себя следующие задачи…»

Именно такой подход — самый правильный. Часто сотрудники — и не только из QA — ставят вопрос иначе: «Я хочу развиваться, скажите мне, как». Это плохое начало. 

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

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

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

Итак, аналитика — это путь, открытый мануальному тестировщику при следующих условиях:

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

Обучение на тестировщика ПО

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

  • «Прикладная математика и информатика» (код: 01.03.02);
  • «Информатика и вычислительная техника» (код: 09.03.01);
  • «Информационно-аналитические системы безопасности» (код: 10.05.04);
  • «Информационная безопасность» (код: 10.03.01) и другие технические направления, связанные с информатикой, математикой, защитой цифровой информации и вычислительной техникой.

Профильные ЕГЭ на всех специальностях, связанных с программированием, – математика и информатика. 

Если решили начать свой карьерный путь с ссуза, то рассмотрите направления:

  • «Информационные системы и программирование» (код: 09.02.07);
  • «Компьютерные сети» (код: 09.02.02);
  • «Прикладная информатика (по отраслям)».

Начать обучение в вузе можно после 11 класса, в ссуз абитуриент может поступить, окончив 9 классов.

Курсы

УЦ «Специалист» при МГТУ им. Н. Э. Баумана

На сайте учебного центра доступен большой выбор качественных программ для людей, которые решили стать тестировщиками ПО. Любой курс состоит из теоретических и практических блоков, форма обучения может быть очной или дистанционной. Длительность обучения составляет 16-64 ак. ч., минимальная стоимость – 11850 руб. и выше, что напрямую зависит от выбранного профиля.

Оплата труда

Компании, где можно работать тестировщиком программного обеспечения (по)

Зарплата тестировщика ПО высокая, но ее размер зависит от ряда ключевых факторов:

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

Карьерный рост

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

Профессиональные знания

  1. Методы, используемые при тестировании ПО.
  2. Автоматизация тестирования.
  3. СУБД, SQL, Oracle, IBM Rational Robot.
  4. Базы данных, желательно знание хотя бы одного языка программирования (в приоритете C#, C++, PHP и Java).
  5. Английский язык не ниже Upper-Intermediate.

Преимущества и недостатки професии тестировщика ПО

Преимущества

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

Недостатки

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

Кто такой тестировщик и что он делает?

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

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

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

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

Как правило, процесс тестирования проходит следующим образом:

Вначале тестировщик ПО составляет план по проверке программного обеспечения и пишет сценарии тестов, которые нужно выполнить.

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

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

После доработки ПО проводится серия ретестов, которые направлены на проверку доработок (остались ошибки или нет, появились новые баги или нет).

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

Офлайн-курсы в Москве

23

Специалист.ру

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

Обучение можно проходить очно или в режиме онлайн.

Тестировщик ПО

2

Компьютерная академия «Шаг»

Учебная программа “Тестирование ПО” создана для тех, кто хочет освоить престижную и высокооплачиваемую профессию инженера QA и заложить прочный фундамент для своей карьеры в IT

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

Стань востребованным инженером QA, обучаясь у практиков

3

Easy UM

Тестирование — один из самых важных этапов подготовки программного продукта к релизу.

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

Тестировщик ПО (QA)

4

Avenue

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

Центр находится недалеко от метро «Семеновская». Программа по тестированию разработана Николаем Глебановым.

АВТОМАТИЗИРОВАННОЕ ТЕСТИРОВАНИЕ

Обучение на тестировщика мобильных приложений

Тестировщиков мобильных приложений обучают на курсах, однако этому процессу предшествует получение дополнительных знаний. Для работы в крупных компаниях и проектах потребуется знание иностранного языка, а также минимум одного языка программирования. В приоритете Swift и Kotlin, однако востребованы специалисты, знающие Java, Python, C# и т. д. Наивысшим спросом пользуются тестировщики мобильных приложений, которые имеют высшее образование по профилям «Прикладная математика и информатика» (код: 01.04.02) или «Прикладная информатика» (код: 09.03.03).

  1. НИТУ «МИСиС».
  2. МГТУ им. Н. Э. Баумана.
  3. РТУ МИРЭА.
  4. РЭУ им. Г. В. Плеханова.
  5. МИЭТ.
  6. МГУТУ им. К. Г. Разумовского (ПКУ).
  7. РАНХиГС.
  8. СПбПУ.
  9. КФУ.
  10. КубГУ.

Краудтестинговые платформы – “ясли для тестировщика”

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

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

А “доход” обычно начисляется в английских тугриках. И в принципе он достаточно неплохой.

Да. Помните. Чем “крупнее” ошибки Вы находите, тем выше Ваше вознаграждение!

Краудтестинговые платформы в основном “буржуинские”. Вот некоторые из них. Часть только на английском (или немецком языках). Часть переведена (не полностью) на русский. Но велика вероятность получения задания на английском языке.

Если Вы работали на одной их них, оцените ниже, какая понравилась больше.

test.io– одна из старейших платформ краудтестинга

www.testbirds.com – есть вариант для русскоязычных пользователей.

www.passbrains.com – еще один сайт для тестирования ПО

www.globalapptesting.com – еще краудтестинговый сайт

ubertesters.com – еще одна (немецкая) платформа для тестирования

testlio.com – еще ловите сайтик для тех, кто ищет работу тестировщика ПО без опыта

www.crowdtesting.ru – и еще. Это уже на русском языке, что является редкостью в мире тестировочных платформ.

Про условия работы на этих сервисах лучше сами посмотрите у них. Заодно и с платформами ознакомитесь.

Возможные места работы

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

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

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

Мануальное (ручное) ― непосредственная проверка работы ПО тестировщиком.

Автоматизированное ― оценка качества программного продукта с применением программных средств (автотесты).

Тестирование производительности (performance testing) ― анализ работы приложений под различными нагрузками.

Функциональное тестирование (functional testing) ― проверка возможности ПО в заданных условиях решать необходимые пользователю задачи.

Тестирование безопасности (security testing) ― определение безопасности ПО: защищено ли оно от атак хакеров, несанкционированного доступа к данным и т. д.

UX-тестирование (usability testing, юзабилити-тестирование) ― исследование логики и удобства использования ПО.

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

Тестировщик — обзор профессии

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

Вот как выглядит работа тестировщика:

  1. Изучение документации по продукту: инструкции и рекомендации от разработчиков и продуктовых аналитиков.
  2. Составление тест-кейсов для тестирования: какие функции нужно проверить и в какой последовательности, с учетом всех возможных сценариев поведения пользователя.
  3. Тестирование.
  4. Сбор и анализ полученных результатов: ошибки, сбои, некорректная работа, уязвимости.
  5. Оформление полученных результатов в виде отчета с рекомендациями для разработчиков.

Тестирование проводят двумя способами:

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

И ручное, и автоматическое тестирование может быть поведенческим или по методу «черного ящика».

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

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

Среди тестировщиков есть разные специалисты:

  • Тестировщики ПО.
  • Тестировщики веб-приложений.
  • Тестировщики мобильных приложений.
  • Тестировщики игр.

По тому, какие именно параметры тестируются, различают:

  • Security-тестировщики — тестируют сервисы и ПО на возможные утечки данные и устойчивость к хакерским атакам;
  • Performance-тестировщики — тестируют продукты при возрастающих нагрузках.
  • Usability-тестировщики — тестируют сервисы на удобство использования.

А сколько же можно заработать на тестировании ПО ?

На фрилансе, то есть на краудфандинговых платформах, ориентируйтесь на сумму от 5 $ до 500 $ в месяц. Как я уже писал выше, “улов” в основном зависит от количества и качества найденных багов. То есть, нередко можно работать, работать и получить кукиш с маслом 🙁

А вот если Вы пойдет работать “в штат”, то тут уже зарплаты более серьезные. Данные на “сейчас” по России

Для специалистов ручного тестирования:

Уровень специалиста Средняя заработная плата
Стажёр (Intern) 33 333 руб.
Младший (Junior) 44 024 руб.
Средний (Middle) 68 031 руб.
Старший (Senior) 107 203 руб.
Ведущий (Lead) 146 428 руб.

Для специалистов автоматизированного тестирования:

Уровень специалиста Средняя заработная плата
Стажёр (Intern) 36 366 руб.
Младший (Junior) 61 486 руб.
Средний (Middle) 88 246 руб.
Старший (Senior) 131 222 руб.
Ведущий (Lead) 201 461 руб.

Так что, все  в Ваших руках. Кстати, в зарубежных компаниях зарплаты выше.

Какие виды тестирования существуют

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

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

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

Есть несколько видов тестирования:

Базовые требования к профессионалу

  • Опыт технической поддержки — это плотное изучение технологий в сжатые сроки, умение понимать проблемы и быстро сопоставлять их с причинами и путями решения + навыки документирования заявок. Отличная почва для старта карьеры тестировщика.
  • Основы программирования — желательно Java, SQL, Python, но сойдёт буквально всё.
  • Знание методологии Agile, умение встроиться в микро-команды. 
  • Основы Linux.
  • Основы архитектуры ПК.
  • Модель OSI и сети (базовое понимание, знание структуры заголовков пакетов и проч.). Практически сразу потребуется свободная работа с утилитой Wireshark.
  • Инструменты управления тестированием — Bugzilla, Jira или любой другой багтрекер.
  • Selenium — инструмент для автоматизации действий веб-браузера. Очень популярный инструмент тестирования. 
  • Желательно — понимание стратегий тестирований чёрного, белого, серого ящиков и осознание того, где вы наиболее хорошо применимы как специалист.
  1. Станьте QA-фрилансером, чтобы выполнять небольшие проекты по ручному тестированию. Платят мало, но вы научитесь мыслить как тестировщик, писать контрольные примеры и сообщать о результатах. 
  2. Если цель — тестирование веба (а это чаще всего), создайте свой кривой-косой, но полноценный сайт без шаблонов и готовых CMS. Так вы поймёте, как среда работает изнутри и будете знать места обитания всех типичных багов.
  3. Найдите программу любого курса по тестированию, ищите по ней материалы и накапливайте теоретическую базу, чтобы успешно пройти первое собеседование.

Требования

Тестировщик программного обеспечения относится к профессии, к которой предъявляется ряд специфических требований. Работодатель определяет их относительно проверяемых проектов и в целом поставленных задач. Из основополагающих выделяют:

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

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