Чем занимается QA Engineer
Как тестировать баги.
Любое программное обеспечение, сайт или приложение требует проверки качества перед запуском в релиз. Это связано с тем, что программисты не всегда понимают, как пользователь будет взаимодействовать с продуктом, а также не могут предусмотреть все нестандартные ситуации в его работе. Тогда на помощь приходит Quality Assurance Engineer (QA).
Вместе с Ириной Петренко, QA Lead в Billie и лекторкой курса QA Manual, и Тарасом Карпенко, Software Developer в NewStore Inс и лектором курса QA Automation, разбираемся, на что обращать внимание, чтобы стать QA.
Тестируем как пользователь
Ирина: «Задача QA — быть амбассадором качества в ежедневной работе команды. Роль QA не ограничивается фазой тестирования, он должен очень хорошо знать продукт и поддерживать команду критическим взглядом на систему, с которой работает.
QA должен помочь команде доставить качественный продукт конечному пользователю».
Ключевой скил QA — умение писать документацию. Виды документации:
- спецификация — техническое описание продукта;
- test plan — общий план по тестированию продукта;
- checklist — список функционала, который нужно проверить;
- test case — описание действий для проверки отдельных функций продукта;
- use case — сценарии взаимодействия с продуктом;
- баг-репорт — описание бага и шагов, которые его вызвали.
QA готовит и передает отчеты разработчикам, а те вносят правки. После — еще раз проверяют сценарии, которые вызвали ошибку. И так до тех пор, пока продукт не будет отвечать требованиям. Чтобы понимать готовность продукта, нужно иметь четкие аcceptance сriteria — критерии, которым должен соответствовать конечный продукт. Acceptance criteria не могут быть двоякими и описывают только успешный или провальный результат. Например, функция восстановления пароля пользователя или сбрасывает его, или нет.
Ирина: «В работе QA важнее всего гибкость и критичность мышления, умение находить нестандартные кейсы. Не забываем про внимание к деталям, дотошность и стрессоустойчивость. Также важно уметь дебажить и работать с базами данных. Если вы талантливый QA, но не можете понять, почему происходит ошибка, и донести это разработчику, работать будет сложнее».
Виды QA
Тестировать продукт можно как вручную — manual, так и с помощью кода — automation. В первом случае QA должен повторять действия, которые может совершить пользователь. В случае с automation QA пишется код (тесты), который покрывает определенный функционал продукта и работает без участия человека.
Плюсы QA automation:
- скорость — код работает быстрее, чем ручное повторение действий пользователя;
- масштабируемость — легко проверить, как продукт поведет себя с увеличением количества пользователей;
- повторяемость результатов — код выполняется всегда одинаково и не может ошибиться в сценарии.
Тарас: «Автоматизация лучше справляется с любым видом тестирования, где можно четко описать требования:
- тестирование отдельных модулей;
- функциональное UI End-to-End тестирование всего приложения;
- тестирование производительности;
- тестирование поведения на разных платформах».
Ирина: «Масштабируемость и тестирование производительности — то, что не проверяется вручную. Ручное тестирование проигрывает автоматическому по времени и надежности при повторяемости. Тестирование технически сложных сценариев предпочтительно автоматизировать».
Если мы говорим про технические навыки, то QA automation должен знать язык программирования (например, Java или Python), разбираться в тестовых фреймворках (Selenium), уметь работать с базами данных и системами контроля версий (Git).
Тарас: «Для QA automation важнее всего:
- уметь составлять тестовые сценарии. Встречаются тесты, которые выполняют множество действий, но не приносят пользы.
- уметь находить общий язык с техническими и нетехническими специалистами.
- учить новые инструменты. Например, компании могут использовать разные инструменты сборки (Maven или Gradle).
- уметь строить эффективные алгоритмы. Чем больше в компании тестов, тем дольше они выполняются. Поэтому время каждого теста критично.»
Разработка без manual QA
Автоматизированное тестирование не может полностью заменить ручное. QA automation повышает стоимость разработки и специалиста, так как автоматизатор должен знать больше, чем мануальщик. Проблема еще в том, что автотесты не могут покрыть все потребности продукта и не получится стать QA automation, не имея опыта QA manual.
Ирина: «Незаменимость ручного тестирования — в его “человечности”. Exploratory testing, UX testing — это то, что нельзя автоматизировать. Продукты с пользовательским интерфейсом невозможно полностью покрыть автотестами».
Тарас: «Встречаются компании, в которых QA manual выполняют всю работу над acceptance criteria, пишут тестовые сценарии, согласуют их. QA automation только переводят тестовые сценарии в программный код. Но таких компаний все меньше. С приходом Agile в разработку все чаще требуются Agile QA. Чаще всего это 1–2 QA на команду из 5–8 разработчиков. QA занимается всем, вплоть до анализа результатов автоматизированных тестов. Опыт QA manual — must have».