Тестировщик запускает программу и проверяет, тестировщик как она работает, определяет время отклика, выясняет, насколько сильно ПО нагружает память и процессор. Проведение регрессионного тестирования при внесении изменений в код. Проведение тестов, анализ результатов и составление отчетов о багах и аномалиях. Сбор и документирование процедур ручного и автоматизированного тестирования.
BI (business intelligence) — тестировщик, который работает с большими объёмами данных. В некоторых компаниях есть целые отделы performance-тестирования — контроля производительности ПО и нагрузок на приложения. Usability-тестировщики проверяют, насколько продукт удобен в использовании и привлекателен для пользователя. Тестировщик программного обеспечения играет ключевую роль в обеспечении качества продукта. Его основная задача – прорабатывать различные сценарии использования программы, чтобы убедиться в ее корректной работе даже в нестандартных ситуациях. Например, он проверяет, как система реагирует на ввод большого количества символов в поисковую строку или на попытку купить все товары с сайта одновременно.
Профессия тестировщика требует широкого спектра знаний и навыков. Чтобы успешно работать в этой сфере, специалист должен обладать как техническими (хард-скиллы), так и личностными (софт-скиллы) качествами. Затем тестировщик переходит на тестовый сервер, где проводит основную часть своей работы. Например, при тестировании интерфейса интернет-магазина он может выполнять шаги, описанные в баг-репортах, чтобы убедиться в исправлении ранее обнаруженных ошибок. Параллельно он проверяет смежные функции, чтобы удостовериться, что новые изменения не повлияли негативно на другие части системы.
Ребята надеялись, что именно я со своим небольшим опытом С# создам им проект с автотестами с нуля. Один из них был в тестировании уже более 10 лет, но не хотел вникать в автоматизацию, так как не верил, что сможет разобраться. Спросить совета было не у кого и пару недель я провела в поисках оптимального решения именно для нашего проекта. Оторваться было невозможно, было так интересно, что я занималась этим почти все выходные и свободные вечера.
Плюс в том, что в этом случае вы сами выбираете, сколько времени уделить учёбе, какую тему изучить, а какую оставить на потом. Минус — если появились вопросы о каких-либо нюансах тестирования, то задать их некому. Пользователи могут дать информацию, но нет гарантий, что она будет полностью соответствовать текущим ожиданиям рынка. В целом для тестирования важна не только системность, но и творческий подход к задачам, поскольку пользователи могут мыслить нестандартно.
Он был очень сложным и разобраться до конца у меня не получилось. С большим трудом я начала писать самые простые автотесты, в основном копируя и соединяя куски из других похожих тестов. Даже после нескольких курсов по C# я понимала очень мало. С одной стороны, можно отдать мобильные тесты мобильным разработчикам, но у них свои задачи, им нужно делать новый функционал, а автотесты будут лежать месяцами и ждать своей очереди. В своей команде я сразу же после выпуска фичи пишу тесты на всех платформах по порядку, оставаясь в контексте проверок. Иногда я копирую тест, написанный под iOS в Android‑проект, и так как шаги те же самые, нужно только написать код на нужном языке.
Все, что делает тестировщик, помогает компаниям создавать удобные и рабочие ИТ-продукты. Горизонтальное развитие означает расширение спектра навыков, которыми обладает специалист. Например, тестировщик может освоить языки программирования или научиться создавать пользовательские интерфейсы. Это поможет ему не ограничиваться только тестированием, лучше понимать коллег по команде и брать на себя дополнительные обязанности для увеличения дохода.
Хорошо развитые навыки общения и совместной работы помогут эффективно общаться с разработчиками и другими заинтересованными сторонами. А теперь, что касается материалов для изучения; к их выбору следует подойти максимально ответственно. Не берите с первого дня толстые книги, они дают глубокие и фундаментальные знания, но для старта достаточно и поверхностных. Начните с простого, чтобы у вас появилось представление о том, как происходит разработка и тестирование. Это поможет заполнить пробелы и начать углубляться в основы.
Потом начали появляться UI‑тесты на Java+Selenium и первые автотестеры. В основном ими становились ручники, которые выучили основы программирования, или будущие разработчики, которые начинали как автоматизаторы. Если тестируется какой-то технический инструмент с жёсткими заранее известными правилами работы, например база данных, то автотесты с большой долей вероятности смогут покрыть 99% ошибок. Статическое тестирование может быть ручным и автоматизированным. Можно написать другую программу, которая проверяет качество кода и документацию на соответствие требованиям, указанным тестировщиком. Однако ключом к продвижению является постоянное развитие — если вы думаете о работе в качестве автоматического тестировщика, не ждите, пока вы научитесь программированию.
Объем навыков, необходимых современному претенденту на должность QA-инженера, серьезно вырос. А автоматизаторам нужно научиться писать скрипты — специальные программы, имитирующие действия пользователей. В проверке такого ПО есть своя специфика, связанная с более жесткими требованиями к интерфейсу.
Специалисты по тестированию могут развиваться в своей сфере как по вертикали, так и по горизонтали. Тестировщик, в свою очередь, фокусируется на выполнении тестов для выявления дефектов в конкретной версии продукта. С первого занятия погрузитесь в практику и сможете начать зарабатывать уже через 6 месяцев. Если джуниор хорошо себя зарекомендует, то через 2–3 года получит повышение и станет мидл-инженером.
Ниже поговорим о том, что пригодится инженеру по тестированию. Например, вы хотите заказать пиццу и заходите в фирменное приложение. Собираете корзину, нажимаете кнопку «Заказать», но вместо формы с контактными данными вы видите главную страницу, а заказ в корзине не сохранился. В итоге вы остались без еды, а местная пиццерия — без значительной части выручки, ведь та же проблема возникла и у других пользователей.
Обязанности QA-инженера включают в себя стратегическое планирование и управление процессами обеспечения качества. Тестировщик же занимается непосредственным тестированием продукта. Выбрать первый язык вам помогут вакансии — определите, какой ЯП требуется чаще и беритесь за него. А еще спрашивайте на собеседованиях, есть ли у работодателя программы обучения и менторства. Со знаниями основ языка вас могут взять на вакансию fullstack QA, где нужны ребята с навыками автоматизации, постепенно вы наберетесь опыта.
Или, навык “умение задавать правильные вопросы” очень важен для Тест аналитика, но не так критичен для Авто тестировщика. Тест менеджер (Test Manager) — отвечает за выполнение задач по тестированию и контролирует процесс. Разрабатывает тест-планы, может помогать со стратегией тестирования. Как вы могли заметить, “тестирование” — это только одна из частей большого процесса тестирования. Определяются цели тестирования и подход к их достижению, учитывая специфику проекта или задачи.
Синтаксис Java похож на C# и я решила пройти курс Java + Selenium от Udemy. И о, чудо, на этот раз я понимала каждое предложение лектора. С двадцатого раза до меня наконец дошло, вспомнились уроки из курсов, сложилась единая картинка. Этот подход мне нравится тем, что тестов не так много, и я успеваю написать их в рамках спринта, где создается фича. Так не копится бэклог неавтоматизированных фичей, которые мы снова и снова вынуждены проверять руками и тратить на это кучу времени. Получается одна удобная инструкция, которой можно пользоваться многократно.