Искусство тестирования: роль и задачи тестировщика программного обеспечения

Разработчики игр и ПО

Что такое тестирование

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

Тестирование

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

Определение слова “тестирование” имеет много значений. Рассмотрим основные:

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

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

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

Плюсы и минусы профессии тестировщика

Начнем с плюсов работы. Многие выбирают индустрию программного обеспечения для построения карьеры не просто так — есть несколько действительно интересных плюсов.

Плюсы работы QA и QC

1. Высокий спрос. Хорошие тестировщики всегда находят работу. Потребность в них остро испытывает разработка, тестирование и поддержка. Каждая IT-компания в России и мире всегда нуждается в команде тестировщиков, которые могли бы сопровождать, тестировать и поддерживать программное обеспечение. Работа в тестировании помогает учиться, расти, получать деньги. А ещё — вы сможете добиться значительных успехов в качестве разработчика программного обеспечения, если захотите переквалифицироваться в него будущем.

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

3. Фактор денег. QA- и QC-специалисты получают хорошие деньги. Чем больше они работают и чем больше их опыт, тем больше они зарабатывают.

4. Работа в качестве фрилансеров. У тестировщиков есть возможность работать в качестве фрилансеров. У них также есть возможность работать на компанию на удаленных должностях.

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

6. Возможность работать за границей. QA и QC получают шанс работать за границей. На них есть постоянный спрос у компаниЙ из США, Великобритании, Швейцарии, Германии, Франции, Японии и Канады.

Минусы работы QA и QC

Давайте ознакомимся с минусами этой профессии:

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

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

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

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

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

6. Отсутствие социальной активности. Высокое давление может лишить вас семьи, родственников, друзей и знакомых. 

Остались вопросы?
Укажите ваши данные, и мы вам перезвоним

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

Тестировщику нужно знать и уметь, в зависимости от сферы:

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

  • Знание теоретических основ тестирования, практик и инструментов
  • Опыт подготовки тестовых моделей для тестирования нового функционала
  • Умение грамотно описывать тестовую модель и дефекты
  • Знание техник тест-дизайна и умение применять их на практике
  • Багтрекинговые системы и системы управления тестированием (HP ALM, Atlassian Jira или аналогичные): разработка тестов, кроссировка требований с тестами и работа с дефектами)
  • Знание SQL (написание запросов средней сложности, на уровне join), опыт работы с СУБД PostgreSQL/MS SQL Server/Oracle
  • Хорошее представление о тестировании SOAP веб-сервисов, опыт работы с XML
  • Тестирование REST веб-сервисов

Web-тестировщик

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

Тестировщик игр

  • Опыт тестирования игровых приложений (iOS, Android)
  • Знание систем багтрекинга (предпочтительно Atlassian JIRA)
  • Понимание процесса разработки и жизненного цикла ПО
  • Хорошее знание письменного и устного русского языка (умение грамотно составлять и редактировать текстовые описания, продуктивно и конструктивно вести беседу)
  • Большой игровой опыт на мобильных устройствах
  • Владение программными продуктами: Android Studio, Xcode, Atlassian JIRA, Microsoft Office
  • Усидчивость, скрупулезность, внимательность, ответственность, умение работать в команде и быстро решать поставленные задачи

Тестировщик программного обеспечения – кто это такой

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

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

Профессия появилась сравнительно недавно, и многие вообще не представляют, что делают тестировщики. Однако год от года становится все популярнее, поскольку digital-проектов становится больше и востребованность таких специалистов на рынке IT растет.

Что делают тестировщики

Тестировщики проверяют продукт, программисты – фиксят баги*.

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

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

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

Обязанности тестировщика

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

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

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

Задача регрессионного тестирования — проверить, что в ранее работоспособной функциональности не появились ошибки, вызванные изменениями в другой части приложения или среде его функционирования. Дело в том, что при исправлении какого-либо дефекта или добавления новой функциональности есть ненулевая вероятность (по разным данным от 20 до 40%), что появятся новые дефекты там, где их раньше не было. Именно поэтому регрессионное тестирование является неотъемлемым инструментом обеспечения качества и используется практически в любом проекте. 

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

Где учиться профессии тестировщик с нуля

Стать тестировщиком можно несколькими способами:

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

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

Вернемся к ВУЗам. Вот 8 институтов, где вы можете найти программу обучения близкую профессии тестировщика или получить профессию «Тестировщик, QA-инженер» после окончания:

  1. МФТИ.
  2. ДВФУ.
  3. НИТУ МИСиС.
  4. МГЛУ.
  5. ФУ (Финуниверситет).
  6. НИУ ВШЭ.
  7. МГУ им. М. В. Ломоносова.
  8. РЭУ им. Г. В. Плеханова.

Как стать Software Tester 

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

Если вы хотите стать инженером по тестированию ПО без диплома в разработке или смежной области, курсы и буткемпы — ваш шанс. 

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

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

Как стать Quality Assurance

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

Пример программы курсов на обучение QA в одной из онлайн-школ

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

  1. Проверкой методов, используемых в производственных процессах.
  2. Документированием процедур и действий.
  3. Проведением аудитов.
  4. Созданием контрольных списков и стандартов процессов.

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

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

Другие навыки, которые вам понадобятся как специалисту: аналитические способности, стремление к продуктивности, тяга к организованности, внимание к деталям и, конечно, логическое мышление. Остались вопросы?
Укажите ваши данные, и мы вам перезвоним

Остались вопросы?
Укажите ваши данные, и мы вам перезвоним

Мифы про профессию тестировщика

Немного поговорим про мифы профессии тестировщика.

Тестировщики — это подсобные рабочие программиста. Недопрограммисты..

Конечно же, это ошибочное мнение. Часто тестировщики имеют более «продвинутые» знания, чем программисты. И более широкий кругозор. Из тестировщиков часто выходят отличные програмисты. А вот наоборот — редко.

Тестирование — это простой поиск багов

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

Тестировщики мало получают

Ну по началу может и так. Но… продвинутые тестировщики, или точнее QA инженеры, получают зарплаты, сравнимые с зарплатами программистов. Ну Вы и сами это видели немного раньше.

Какие бывают

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

Junior тестировщик

Молодой специалист с опытом тестирования до 6 месяцев

Стоит обратить на него внимание, если нужен сотрудник на базовые задачи или в случае готовности вырастить джуна до уверенного специалиста.Основные задачи:

  • Работа с багтрекером;
  • Написание тест-кейсов и отчетов;
  • Ведение тестовой документации;
  • Сбор информации о продукте;
  • Взаимодействие с командой.

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

Middle тестировщик

Специалист среднего уровня с опытом работы от 1 года до 3 лет. Он может самостоятельно настраивать тестовую среду и работает автономно.

Основные задачи:

  • Разработка тест-кейсов;
  • Участие в обсуждении продукта с командой;
  • Применение разных видов тестирования;
  • Составление чек-листов, тест-плана и баг-репортов;
  • Работа с трекинговыми системами (например, JIRA).

Это уверенный специалист, который может выступать наставником для джунов и новичков в команде.

Senior тестировщик 

Компетентный специалист с опытом работы от 3 лет. Часто выступает тим-лидом и отвечает за работу команды.

Основные задачи:

  • Уверенное использование системам багтрекинга;
  • Анализ процесса разработки и жизненного цикла ПО;
  • Опыт разработки мануальных и автоматических тестовых сценариев; 
  • Автоматизированное тестирование;
  • Работа с базами данных, SQL.

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

Обязанности QA инженера

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

Контроль и поиск проблем

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

Тестирование

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

Анализ

Данные, полученные в процессе проверок, анализируются. Обнаруженные недочеты классифицируются и заносятся в базу.

Саппорт

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

Документирование дефектов

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

Дополнительные пункты

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

  • Понимание, организация и проведение разных уровней тестирования (от модульного до приемочного).
  • Знание языков программирования, на которых ведется разработка продукта (JavaScript, Java, Python, PHP, C#, C++ и т.д.).
  • Умение работать с системами отслеживания ошибок (bug tracking systems).
  • Иметь навыки работы со средствами автоматического тестирования (каким, например, является Selenium для Java).
  • Коммуникация с клиентами, разработчиками, аналитиками, другими тестировщиками.
  • Знание иностранного языка (обычно английского) на уровне, позволяющем читать и заполнять техническую документацию.

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

Ответственность за результат

Оценка результата работы происходит по количеству найденных дефектов и степени их критичности

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

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

Тестировщик VS разработчик: что выбрать?

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

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

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

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

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

Станьте Fullstack-разработчик на Python и найдите стабильную работу на удаленке

Подробнее

Какие качества, навыки и инструменты необходимы тестировщику?

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

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

Усидчивость. Приходится выполнять большой объем рутинных операций и тщательно следить за малейшими ошибками.
Критическое мышление

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

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

Технические навыки и инструменты, которыми должен владеть тестировщик:

  • Основы программирования и редакторов кода: VScode, Pytest, Gitlab, XML, CSS, JavaScript.
  • Знание ключевых систем управления проектами в разработке — Waterfall, Scrum и Kanban.
  • Представление о том, как создаются пользовательские интерфейсы — в плане разработки, UX UI-дизайна.
  • Работа с системами баг-трекинга (обнаружения ошибок): Redmine, Jira.
  • Знание инструментов мониторинга HTTP/HTTPS-трафика.
  • Навыки работы с базами данных — такими, как MySQL, PostgreSQL, MS SQL.
  • Навыки составления тест-планов и тест-кейсов с помощью TestRail, Zephyr, TestLink и других сервисов.
  • Знание особенностей всех популярных ОС и браузеров — мобильных и десктопных.
  • Представление о клиент-серверной архитектуре.
  • Умение работать с системами контроля версий — например, CVS или Git.
  • Умение работать с системами автоматического тестирования веб-приложений, тестирования нагрузки и функционала — такими, как HP-UFT, Sahi, Selenium.
  • Хороший технический английский.
Rate article