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

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

8 июня 2022 г.

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

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

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

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

Начальный уровень: ручное тестирование

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

* Вы должны знать приложение как пользователь. Вам нужно будет знать, как понять предметную область приложения и как использовать интерфейс. Например, если вы работаете над программным обеспечением для логистики, вам потребуется знание некоторых основных понятий и терминологии этой отрасли. * Аналитические навыки — то, как вы сообщаете об ошибке, имеет большое значение. «Что-то не так» сложнее понять, чем «как пользователь X, я делаю A, затем B, затем отменяю C на полпути, и на экране 1 мы получаем значение M, когда я ожидал T». * Письмо — о каждой найденной ошибке вам нужно будет сообщить команде разработчиков. Ваше общение будет осуществляться, скорее всего, с помощью текстовых сообщений, электронных писем или тикетов. Если вы хотите узнать несколько вещей, которые помогут вам лучше общаться в письменной форме, имейте посмотрите эту статью.

Хорошо, что все эти навыки необходимы для любой должности в сфере ИТ.

Приемочное тестирование

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

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

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

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

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

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

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

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

Автоматическое тестирование

Автоматизированное тестирование — это еще один шаг вперед по сравнению с формализованными сценариями тестирования. Здесь вы пишете сценарии в виде исполняемого кода. В контексте Интернета вы часто слышите, как их называют сквозными (E2E) тестами, потому что цель состоит в том, чтобы протестировать все, от внешнего интерфейса до внутреннего.

Автоматизация тестирования позволяет использовать сильные стороны компьютеров:

* они обеспечивают более быстрое время выполнения * им никогда не бывает скучно * они очень точны

В обмен на это ваша работа переходит от просмотра приложения к поддержке набора автоматических тестов.

В своей карьере я в основном работал над интерфейсом JavaScript, но также много занимался автоматизацией тестирования. Иногда это сложно, например:

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

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

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

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

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

Процесс

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

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

Инструменты

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

* Slack — приложение для обмена сообщениями в команде * Jira — программа для отслеживания ошибок * GitLab — хостинг-провайдер git * Google Meet — онлайн-встречи

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

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

Возможность наставничества

Хорошая компания должна быть заинтересована в поддержке вашего профессионального роста. Если вам повезет, у вас будет возможность установить отношения наставничества внутри компании, например:

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

Параметры выполнения

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

Программирование

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

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

Роли в разработке продукта

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

* Управление продуктом * продукт разработан * UX-дизайн

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

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

Скрам-мастер

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

Проблема с поставками

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

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

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


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


Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE