Тестировщик ПО: недопрограммист или высокооплачиваемая специальность? Тесты в процессе разработки программного обеспечения Где учат на тестировщика.

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

Тестирование программного обеспечения является неотъемлемой частью цикла разработки программного обеспечения.

Что такое тестирование программного обеспечения?

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

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

Методика тестирования

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

3) Системное тестирование

4) Приемочные испытания

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


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

Системное тестирование

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

Приемочные испытания

Это последний тест, который проводится перед передачей программного обеспечения клиенту. Он проводится, чтобы гарантировать, что программное обеспечение, которое было разработано отвечает всем требованиям заказчика. Существует два типа приемо-сдаточных испытаний - то, которое осуществляется членами команды разработчиков, известно, как внутреннее приемочное тестирования (Альфа-тестирование), а другое, которое проводится заказчиком, известно, как внешнее приемочное тестирования.

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

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

Тестирование методом черного ящика

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

Тестирование методом белого ящика

Тестирование методом "Белого ящика", в отличие от "черного ящика", учитывает внутреннее функционирование и логику работы кода. Для выполнения этого теста, тестер должен иметь знания кода, чтобы узнать точную часть кода, имеющую ошибки. Этот тест также известен как White-box, Open-Box или Glass box тестирование.

Тестирование методом серого ящика

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

Нефункциональные тесты

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

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


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


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

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

Тесты в процессе разработки программного обеспечения

Каскадная модель использует подход "сверху-вниз", независимо от того, используется ли она для разработки программного обеспечения или для тестирования.

Основными шагами, участвующими в данной методике тестирования программного обеспечения, являются:

  • Анализ потребностей
  • Тест дизайна
  • Тест реализации
  • Тестирование, отладка и проверка кода или продукта
  • Внедрение и обслуживание

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

Agile Model

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

Rapid Application Development (RAD). Методология быстрой разработки приложений

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

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

Спиральная модель

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

Rational Unified Process (RUP). Рациональный унифицированный процесс

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

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

Вы хотите освоить профессию, потребность в специалистах которой уже велика сейчас, а с каждым днем будет становиться всё острее?
И при том такую, работа по которой возможна удаленно, находясь в любой точке мира?
Тогда обратите внимание на информацию о специальности «»

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

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

Тестер занимается тем, что проверяет - всё ли работает в продукте как нужно. Разработчики шутят, что идеальный тестер найдет такую комбинацию кнопок, края приведет к краху программы. Но всегда лучше, чтобы новый продукт «крякнул» до выпуска, чем когда им будут пользоваться массово.
О явном случае такого «недотестирования» мы все могли слышать не так давно в новостях, когда, согласно озвученной СМИ версии, наш спутник сошел с орбиты из-за «ошибки в программном обеспечении» - а это потерянные миллиарды бюджетных денег. И это не только российская беда – в США ошибка в преобразовании типа данных стоила руководству Шаттла 300 млн долларов.

Непосредственные разработчики программ – заказчик, программист, дизайнер – смотрят на свое творение со своих точек зрения. Взгляд «замыливается», продукт видится идеальным и безупречным. И тут появляется тестер ПО! Его работа – найти нестыковки, неудобства, как явные, так и неявные ошибки. И если возможно, оценить разрабатываемый продукт в целом – соответствует ли он ожиданиям и потребностям.

Тестировщик программного обеспечения – профессия, которая крайне нужна рынку. Но дело в том, что в ВУЗах тестеров не готовят, институтская программа не успевает за развитием рынка. И это проблема острая и будет актуальна долго. Это специальность, став профессионалом в которой, можно еще многие годы обеспечить семью не только «куском хлеба», но и «маслом».

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

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

Преимущества профессии «Тестировщик ПО»

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

2. Не критичен возраст начала освоения профессии – можно начать даже в 40 лет и старше, было бы желание.

3. Как уже говорилось – не важно место жительства. Правда, это касается только рядовых сотрудников – чтобы стать руководителем проекта или аналитиком, вам все-таки нужно работать очно и жить в городе, где есть представительство компании.

4. Высокий уровень оплаты. Даже начинающий тестер без опыта работы, работающий несколько часов в день, может рассчитывать на оклад от 15000 рублей.

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

6. Постоянный спрос на специалистов. Сейчас ситуация складывается даже так, что можно начать обучение и практически сразу же найти работу. Наберите сами в любом поисковике название вакансии «тестировщик ПО» и посмотрите результаты. Можно найти как удаленную работу для стажера, так и офисную вакансию.

7. Престижность профессии. Работая в ИТ-отрасли, вы будете чувствовать себя современным человеком.

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

Как мы уже говорили, ограничений на пол или возраст здесь нет. Главное ваша дотошность, любопытство и внимательность. Нужно всегда сомневаться в работе разработчика, системного аналитика, всегда считать то ошибка есть. При проведении тестов тестировщик их выполняет неоднократно, часто это работа монотонная и требует усидчивости. А женщины часто могут дать фору мужчинам в отношении этих качеств.
Но также надо и понимать, что вы работаете в команде с другими тестировщиками, разработчиками, руководителем проекта, аналитиками. Умение идти на контакт и слышать чужое мнение – обязательное качество.
А после нахождения ошибки надо убедить разработчика и начальство, что это ошибка и её надо исправить! Доказать, что она есть, подтвердив документальными записями хода работ. Проявить настойчивость и умение убеждать.

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

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

Как стать тестировщиком программного обеспечения?

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

Тестировщиков учат основным понятиям, видам и техникам (исследовательское и нефункциональное тестирование, тестирование безопасности, удобства использования или производительности). Рассказывают о системах управления тестированием (TestLink).

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

Скачайте книгу о профессии "Тестировщик программного обеспечения"

Чтобы окончательно принять решение – подходит вам работа тестировщиком программного обеспечения или нет, СКАЧАЙТЕ замечательную книгу Романа Савина «Тестирование dot com» (формат djvu, размер 2М).
Эта книга - остроумное изложение теории и практические советы для начинающих, а также реальные наблюдения из жизни тестировщика-практика. Книга целиком базируется на личном опыте освоения - с нуля - профессии тестировщика и многолетней работы автора в этом качестве в интернет-компаниях США.

Вот отрывок из этой книги по которому вы оцените легкость и наглядность изложения информации :

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

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

Разбор ситуации.
1. Ожидаемый результат – девушка умеет готовить
Фактический результат – утро без завтрака
2. Ожидаемый результат – знания по тестированию
Фактический результат – знания по кулинарии
3. Ожидаемый результат – яичница будет приготовлена
Фактический результат – еще одно утро без завтрака

Определение:
Баг – это отклонение фактического результата от ожидаемого результата.

Успехов вам в освоении профессии Тестировщик программного обеспечения!

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

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

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

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

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


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


  • он должен уметь организовывать свою работу в соответствии с требованиями;
  • тестировщик должен уверенно работать с ПК;
  • не лишним будет навык работы с документацией, так как её нужно будет заполнять на основе каждого тестирования;
  • нужно уметь писать так называемые баг или дефект репорты — документы, в которых описывается ситуация, повлёкшая за собой ошибку в программе, указываются причины и ожидаемый результат;
  • также нужно уметь описывать сам процесс проверки или, по-другому, шаги, необходимые для проверки, то есть создавать тест-кейсы;
  • положительно скажется на поиске работы знание английского языка;
    Этот фактор на сегодняшний день играет важную роль во многих профессиях.
  • тестировщик желательно должен уметь работать с HTML (язык разметки документов в интернете)/CSS (язык описания внешнего вида документа), XML (также язык разметки документов наряду с HTML) и SQL (язык программирования, применяемый для управления базами данных);
  • специалист должен хотя бы на базовом уровне уметь работать с автоматизацией тестирования, с такими программами Silk Test или Rational Robot.


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


Несмотря на то, что профессия в данный момент очень актуальна, Вы не сможете найти ни один ВУЗ, где бы обучали именно на тестировщика ПО. Поэтому самое основное образование для тестировщика — это самообразование.

Хорошо, если у Вас за плечами уже есть законченный технический институт со специальностью «Прикладная математика», «Информационные технологии» или что-то подобное. Но если Вы учились в гуманитарном ВУЗе, не обязательно идти получать второе высшее техническое образование. Это займёт много времени и, принципе, не оправдано.

Научиться всем тонкостям тестирования Вы сможете самостоятельно на онлайн курсах, вот некоторые примеры:

  • «Быстрое тестирование» (Р. Калбертсон, К. Браун, Г. Коб)
  • «Тестирование программного обеспечения» (С. Канер, Д. Фолк, Е. Кек Нгуен)

Чем отличительно обучение на тестировщика программного обеспечения? Вы можете, не выходя из дома, изучить теорию, понять азы тестирования и даже приступить к практике. Всё в режиме online.

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

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


Итак, вот Вы выучились на тестировщика ПО. С чего же начать? Конечно, с поиска вакансий. Самое первое, что приходит в голову, это поиск работы на таких платформах как:

Также можно проштудировать биржи фриланса. Вот некоторые из них:

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

  1. Вы можете устроиться работать бесплатно на небольшой проект. Там Вы пройдёте обучение, что очень полезно, попробуете себя в практике. Такие проекты обычно не требуют от специалиста много времени (около 1 часа в день), но дают тот необходимый опыт.
  2. Мы же сами каждый день сидим в интернет на разных сайтах. Так что же мешает протестировать эти самые сайты? Никто не говорит о нагрузочном тестировании, но функциональное и тестирование удобства пользования провести вполне можно. Тем более, если Вы часто заходите на этот сайт, тестировать его должно быть легче.
    Если Вы в ходе тестирования нашли ошибки, правильным решением будет написать об этом создателям сайта. Понятно и чётко распишите найденные проблемы, причём в начало ставьте наиболее важные, спросите у адресата, корректно ли Вы это сделали, возникли у него какие-либо вопросы или нет. Письмо пишите уважительно, критика должна быть конструктивной и направленной на сайт, а не на создателя.
    Возможно, таким образом Вы даже сможете найти себе работу!
  3. Помимо сайтов можно тестировать мобильные приложения. Опять же, берите те, которыми пользуетесь и ищите ошибки, недоработки. Конструктивный отзыв также можно отправлять разработчикам приложений. Если Вы всё опишите правильно, без наездов, то, возможно, Ваш отзыв примут во внимание и исправят некоторые недочёты.
  4. Если совсем никак не получается найти баги на своих любимых сайтах, Вы можете посетить специальные сайты для тестировщиков, находящихся в общем доступе.


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

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

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

Недостатки:

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

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


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

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

Начинающий специалист может рассчитывать на зарплату от 25 до 45 тысяч руб. Так, проработав 2-3 года и набравшись опыта, тестировщик может смело искать вакансии с заработной платой около 60 000 руб. 5 лет успешной работы вполне смогут приносить доход до 150 000 руб. в месяц. Главное — желание и готовность учиться и развиваться!

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Оплата труда

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

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

Алексей Сёмин

Руководитель отдела тестирования компании Globus, которая занимается разработкой мобильных приложений и сайтов для крупных заказчиков, таких как «Яндекс», «Лаборатория Касперского», ABBYY, Rutube, «СТС Медиа», HeadHunter, «ТНТ Клуб», «Связной Трэвел», «PPF Страхование жизни», VimpelCom и других. Более шести лет в профессии. Прошёл весь путь от junior-тестировщика до руководителя отдела.

Мой путь тестировщика начался с любопытства. С самого детства я занимался сборкой компьютеров и установкой ПО, в ходе работы регулярно возникали вопросы: «Почему не устанавливается? Почему не работает?». В этот момент я подумал, что хочу стать тестировщиком, заниматься выпуском качественного ПО и узнать ответы на все эти вопросы.

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

Собеседование

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

Например, задаём необычные вопросы, чтобы посмотреть, как мыслит человек:

  • Самолёт вылетает из точки А в 17:00, а прилетает в точку Б в 19:00. При этом находится в полёте три часа. Почему такое может быть?
  • Как сделать так, чтобы, получив обновлённое приложение, конкуренты не смогли узнать его новые функции?

Будьте готовы и к самому обычному заданию - протестировать простой предмет: лист бумаги, карандаш, сетевой фильтр и тому подобное.

Также для собеседования будет полезно:

  1. Изучить виды тестирования: функциональное и исследовательское тестирование, автоматизированные тесты (включая инструменты для него), нагрузочное и стресс-тестирования, smoke-тестирование.
  2. Дополнительно почитать о приёмочном тестировании и его критериях.
  3. Если мы говорим о тестировании веб-приложений, то это браузерная консоль и её работа, количество и версии браузеров, разрешения мониторов, инструменты тестирования вёрстки (pixel perfect).
  4. Если мы говорим о мобильных приложениях, это виды платформ, эмуляторы, monkey testing. Не забудьте о планшетах.
  5. Изучить виды баг-трекеров. Самые популярные: Jira, BugZilla, RedMine, Mantis. Посмотрите, как они работают, в чём их особенность.
  6. В перспективе - инструменты Jmeter, Postman, Charles. Они не очень сложны в освоении на базовом уровне.

Первый рабочий день

Первый рабочий день проходит стандартно: выдают компьютер, который нужно настроить, установить рабочие программы. Системный администратор готовит доступы к почте и корпоративным внутренним программам.

Не стоит спрашивать, где установить Skype, использовать в нём ник со школьных времён gangsta_666 или забавную картинку. Используйте в нике сочетание имени и фамилии, например ivansmirnov или smirnovivan, поставьте свою обычную фотографию.

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

Первое задание

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

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

Коллеги будут удивлены, если составите чек-лист в виде , например в Xmind.net .

Чек-лист для тестирования Pokémon GO

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

Первый баг в трекер

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

Тема

В ней описывают проблему несколькими словами. Лучше, если она будет начинаться с отрицания: «не работает», «не происходит», «неправильно» и прочее. Например: «Не происходит синхронизация с сервером на iPhone 6», «Не работает воспроизведение видео в Nexus 5».

Сценарий

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

Дополнительно можно приложить скриншоты с указанием мест, на которые стоит обратить внимание (можно использовать приложения Joxi , LightShot и другие), для более сложновоспроизводимых багов - записать видео. Когда наберётесь опыта, можете снимать и прикладывать логи.

В конце сценария указывается среда, в которой проводилось тестирование: версия приложения, прошивка девайса (Android 6.0.1, iOS 9.3.2). Если это веб-приложение, дополнительно укажите версию браузера.

Назначение бага

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

Проставление критичности

Виды критичности багов в большинстве трекеров представлены следующим списком:

Immediate (Blocker)

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

Crit - Urgent

Критическая ошибка, нарушена ключевая бизнес-логика. Проблема приводит к временному падению сервера или приложения без возможности её решения. Устранение проблемы необходимо для тестирования.

High

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

Normal

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

Low

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


Самообучение

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

  • «Тестирование DOT COM», Роман Савин - очень полезное пособие, практически настольная книга начинающего тестировщика. Содержит в себе львиную долю знаний для того, чтобы начать тестировать и успешно отвечать в ходе собеседования на вопросы, касающиеся технико-теоретической части.
  • «Как тестируют в Google» - более глубокая книга, описывающая организацию процессов, различные стратегии и подходы к тестированию. Книга помогает понять, что такое качество, как и на каких этапах на него можно влиять.
  • «A Practitioner’s Guide to Software Test Design», Lee Copeland - в книге расписаны виды тестирования как «белым», так и «чёрным» ящиком. Перечислены различные техники тестирования, а также то, как ими пользоваться и когда лучше применять. В книге можно найти интересную статью об исследовательском тестировании, которая очень полезна для начинающих тестировщиков.

Коллеги, напишите в комментариях названия интересных книг для тестировщиков. Уверен, всем будет полезно.

Заключение

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

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

В продолжение темы:
Ленточный фундамент

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

Новые статьи
/
Популярные