🧭 Навигация по статье:
- Что делает тестировщик
- Мануальщики и автотестеры
- Может ли новичок стать хорошим QA?
- Как развиваться?
- Градация должности
- Необходимы личные качества
- Что надо уметь
- Как найти работу?
- Плюсы и минусы
- Книги по теме
Тестировщики, инженеры по тестированию, или QA — это люди, которые проверяют, как работает программа или приложение. Они ищут ошибки, смотрят, чтобы программа делала именно то, что задумано, защищают продукт от хакеров, проверяют, как приложение работает на разных устройствах и в разных операционных системах.
Тем, кто не работал тестировщиком, кажется, что это очень просто: понажимал все кнопки подряд, нашёл ошибку, сказал разработчику, и всё. На самом деле тестировщик — это сложная и творческая профессия на стыке IT, UX-дизайна и продуктового менеджмента.
🖥️Что делает тестировщик
Честно говоря, тестировщикам действительно приходится тыкать на все кнопочки и ссылки, заполнять все формы и стараться совершить все возможные ошибки, которые могут прийти в голову пользователю. Без этого не обойтись.
Неполиткорректные разработчики из-за этого когда-то обидно называли тестировщиков «обезьянками-кликальщиками». Термин был так распространён, что Android назвал свой инструмент для автоматизации тестирования MonkeyRunner — в том смысле, что как обезьянка, только быстрее.
Но не думайте, что тестировщики лишь хаотично бьют по клавишам в надежде найти баг, — это непродуктивно. У них есть собственные методы для определения слабых мест программы и быстрого поиска ошибок.
QA придумывают инструкции для тестирования — тест-кейсы. На элементарном уровне это выглядит так: аналитики пишут требования — какие данные должны быть на входе, как они обрабатываются, что должно получиться в результате; тестировщики пишут пошаговые инструкции для проверки программы на соответствие этим требованиям.
Обязан скрупулёзно проверить, что будет, если совершить какое-то действие, и соответствует ли результат ожидаемому.
Но ошибки коварны — в лабораторных условиях они могут себя и не проявить, зато пользователь наткнётся на них после релиза. Поэтому QA придумывают разные стандартные и нестандартные ситуации, чтобы проверить, как поведёт себя программа. Это творческий процесс, для поиска скрытых багов приходится проявлять смекалку и аналитические способности.
Нужно предусмотреть все возможные и невозможные варианты. Что будет, если пользователь введёт цифры вместо букв? А что, если у него компьютер глючный? А вдруг сразу много пользователей будут работать и перегрузят систему?
🦾 Мануальщики и автотестеры
Облегчить работу помогают программы для автоматического тестирования. Автоматизация сокращает время тестирования и уменьшает рутину в работе. В больших проектах без автоматизации не обойтись: там очень много элементарных повторяющихся действий, никакого времени не хватит, чтобы все их проделать.
Всех делят на мануальщиков и автотестеров. Первые ищут ошибки в коде вручную, вторые пишут программы, которые делают это автоматически. Но это очень условное деление. Вы не найдёте автоматизатора, который не умел бы тестировать программу вручную. А многие мануальные тестировщики не любят рутину, поэтому осваивают языки программирования и пишут автоматические тесты. Опытные специалисты могут выполнять работу и мануальщика, и автотестера.
При этом используют разные инструменты для автоматизации, управления тестовым процессом и обеспечения качества продукта. Далее перечислим самые популярные инструменты для разных сфер тестирования.
🧑🏻💻 Функциональное тестирование:
- Selenium WebDriver — для автоматизации веб-приложений.
- Appium — для автоматизации тестирования мобильных приложений.
- JUnit, TestNG, PyTest — фреймворки для написания и выполнения функциональных тестов
🧑🏽💻 Безопасность приложений:
- Apache JMeter — для тестирования производительности веб-приложений.
- LoadRunner — инструмент для нагрузочного тестирования различных типов приложений.
👨🏻💻 Нагрузочное тестирование:
- Apache JMeter — для тестирования производительности веб-приложений.
- LoadRunner — инструмент для нагрузочного тестирования различных типов приложений.
👩🏻💻 API-тестирование:
- Postman — для тестирования запросов к API сервисов.
- REST Assured — фреймворк для автоматизации тестирования REST API на языке Java.
Тестирование мобильных приложений:
- Appium — для автоматизации тестирования на платформах iOS и Android.
- Xcode UI Test, Espresso — инструменты для тестирования интерфейса приложений.
Тестирование баз данных:
- SQL Server Management Studio, Oracle SQL Developer — для выполнения тестовых SQL-запросов.
- DbUnit — фреймворк для подготовки тестовых данных и проверки состояния базы данных.
Ручное тестирование:
- TestRail — для управления тестовыми кейсами и отслеживания дефектов в ПО.
- TestLink — для управления тестовой документацией и требованиями.
🚧 Может ли новичок стать QA?
Порог входа довольно низкий. Чтобы стать тестировщиком, не требуется техническое образование. Главное, чтобы человеку была интересна сфера IT и хотел развиваться в этом направлении. Об этом говорит в своём интервью на hh руководитель департамента обеспечения качества ПО Veeam Software Игорь Кацев.
Опрашивали тестировщиков из РФ и СНГ по поводу образования. Оказалось, что в профессию приходят разные люди: технари, гуманитарии, экономисты, юристы, люди с высшими и люди без диплома вообще.
🧮 Как развиваться?
Путей для карьерного роста много. Некоторые начинают с тестирования, чтобы потом уйти в разработку, но это не единственный вариант — можно развиваться и внутри профессии.
Младший специалист тестирует программы вручную по готовым тест-кейсам. Чтобы из «обезьянки» стать мидлом, нужно развиваться: досконально изучать проект, знать язык кода и основы автоматического тестирования.
Если джуниор хорошо себя зарекомендует, то через 3 года получит повышение и станет мидлом. Будет самостоятельно составлять тест-кейсы и заполнять документацию.
Ещё через год-полтора успешный мидл может претендовать на должность старшего специалиста (Senior QA Engineer). Его круг задач расширяется: сеньор планирует работы по тестированию, контролирует работу джунов.
Лет через пять можно стать тимлидом — руководителем команды. От тимлида требуются профессиональные компетенции, навыки менеджмента, умение решать сложные задачи. Так происходит карьерный рост специалиста по вертикали.
Часто предпочитают горизонтальное развитие, например в рамках определенной специализации:
- Security-тестировщики — проверяют безопасность программы.
- Performance-тестировщики — тестируют, как она ведёт себя при возрастающей нагрузке.
- Usability-тестировщики — проверяют, насколько с ней удобно работать.
🪜 Градация должности
Все должны знать основу и уметь тестировать вручную. Писать документацию, тестовые сценарии, генерировать идеи где и как искать баги, как улучшить качество, коммуницировать с командой — это все хороший фундамент, на котором строится уже вся карьерная лестница.
Карьера, как и любого другого специалиста в IT, начинается с Junior позиции (450$-770$). На данном этапе у нет много практического опыта, ему поручают простые задачи, на которых набивает руку.
Если попадаете в компанию, учитесь, выполняете задания, то долго сидеть на начальном уровне вы не будете.
Развиваясь дальше в компании, вы переходите на уровень Middle. У вас уже будет больше опыта, вы будете качественнее и быстрее выполнять свою работу. Рост от Junior до Middle (1000$-1900$) у вас может занять от 6 мес. о 1,5 г., при условии, если вы будете проявлять себя, предлагать улучшения и активно принимать участие в проекте.
Дальше, проработав до 3 лет, можно стать Senior (2100$-3200$). На этой должности вы можете реализовывать любую техническую задачу в области тестирования на проекте. Но мелкие задачи как правило делегируются на Junior специалистов. И вы сможете больше времени уделять аналитике и более креативным задачам. Средняя зарплата на этой позиции 2500$ в месяц.
Дальше есть Team Leader (от 2500$ до 4100$) — это руководитель. Им становятся после позиции Senior, но бывает, что люди у которых прошлый опыт работы связан с руководством и управлением могут стать руководителем команды и на позиции Middle. Ну и конечно Team Leader зарабатывают больше, чем Senior. До этой позиции можно дорасти за 3-5 лет.
Если у вас тяга к программированию, вы можете стать тестировщиком-автоматизатором и начать писать скрипты, которые выполняют большой объём рутинного тестирования. Спрос на автоматизаторов сейчас высок поэтому зарплата может вырасти в полтора-два раза.
Также хотел бы поделится интересным, востребованным и финансово выгодным направлением Security testing — тестирование безопасности веб-приложений. Это все, что касается утечки секретной информации, баз данных, воровства и прочего связанного с уязвимостями ПО. Компании совсем не готовы отбиваться от хакеров, но они готовы щедро платить за безопасность и качество продукта.
Еще есть должность — тестировщик игр. Использует фундаментальные понятия тестирования, принципы и техники, но только для тестирования игр.
При этом могут переходить из игровых компаний в компании занимающиеся не игровым софтом и возвращаться обратно.
Также легко переключаются с тестирования сайтов на тестирование мобильных приложений, десктоп-версий и вообще разных видов софта.
🔑 Необходимы личные качества
Кроме того, в тестировании важны личные качества. Вот список основных, без которых точно не обойтись:
- Усидчивость и настойчивость — чтобы терпеливо искать дефекты. Тестировщик уверен, что программ без ошибок не бывает, бывают лишь плохо диагностированные.
- Критическое мышление, умение анализировать информацию.
- Внимание к мелочам, максимальная дотошность, чтобы постоянно интересоваться: «А что будет, если нажать сюда? А если ввести другой символ?»
- Коммуникабельность и умение работать в команде: приходится постоянно взаимодействовать с разработчиками, дизайнерами, бизнес-аналитиками, представителями заказчика.
- Терпение и самообладание, потому что разработчики не слишком любят исправлять ошибки. Иногда приходится не раз и не два напоминать о найденном баге. Должен быть настойчивым, но при этом уметь сохранять хорошие отношения в команде.
- Ответственность и здоровый перфекционизм, чтобы постоянно стремиться улучшить качество разрабатываемого продукта.
- Умение чётко формулировать свои мысли, чтобы грамотно составлять планы и тест-кейсы. Если нашёл ошибку, должен подробно и понятно описать, при каких условиях она возникает, чтобы разработчики могли быстро её исправить.
- Стремление развиваться — осваивать новые методики тестирования, чтобы оставаться востребованным. Нужно постоянно читать техническую литературу, участвовать в конференциях и семинарах, смотреть видеокурсы.
Что надо уметь
Требуется:
- Основы тестирования, его видов и методов;
- Составлять тест-кейсы, тест-планы;
- Знание языка запросов SQL, умение работать с базами данных;
- Знание языков программирования;
- Знание систем контроля версий: Git, CVS и тому подобных.
Кроме того, владеть инструментами ручного и автоматического тестирования.
Это могут быть:
- Системы для создания тест-кейсов и отслеживания ошибок;
- Файловые менеджеры, текстовые и XML-редакторы;
- Генераторы тестовых данных и другие.
Для автоматизации тестов понадобятся системы тестирования веб-приложений, программы для функционального и нагрузочного тестирования.
Потребуется английский язык — для чтения и заполнения технической документации.
🔁 Как найти первую работу
Поиск работы и подготовка к собеседованию выглядит примерно так же, как и для любого другого специалиста. За тем лишь исключением, что найти её чуть легче, чем, скажем, джависту или программисту на C++. Поэтому QA считается трамплином для входа в IT.
Изучите основы тестирования
По большому счёту, в начале у вас есть 2 пути. №1 — изучать тестирование самостоятельно по книгам, статьям в интернете и бесплатным курсам. №2 — приобрести курс, в котором весь материал упакован и структурирован, ваши работы проверяет куратор, а на выходе помогут с трудоустройством (правда, не везде и не всегда).
И первый, и второй пути могут привести к успеху. Но даже если учитесь на платных, не ограничивайтесь 1 источником: читайте статьи и книги по тестированию, смотрите видео на YouTube. На этом этапе задача — узнать всё о тест-кейсах, типах тестирования, процессе разработки ПО и усвоить базовые термины и понятия.
Научитесь работать с инструментами
Изучите основные инструменты тестирования, такие как Selenium WebDriver, Jira, Postman. Это позволит вам лучше понимать, как проходит тестирование на практике, и повысит привлекательность вашего резюме.
➡ Плюсы и минусы
✅ Получение базовых навыков доступно любому человеку, который интересуется IT.
✅ Востребованность профессии.
✅ Широкие возможности. Тестирование изучено не полностью, поэтому творческие люди имеют шанс для реализации своего потенциала – создания методологии, написания курса и т.п.
✅ Свобода в работе. Не обязательно быть профессиональным разработчиком ПО и сидеть в офисе. Могут работать из дома или на фрилансе, самостоятельно выбирая заказы.
✅ Совмещать обучение и работу.
✅ При должном усердии можно доработать до менеджера продукта.
❌ Высокая ответственность. Если после сдачи проекта в нём обнаружатся ошибки, то отвечать за них будет тестировщик. После него работу никто не проверяет – последнее звено перед сдачей проекта.
❌ В первые годы будет много похожих задач. Кому-то не хватит разнообразия и творчества.
❌ Руководители не замечают труд специалистов. Задача – находить ошибки в работе у команды разработки. И их будут устранять тоже другие люди.
❌ Много срочных заказов. Зачастую просят поработать над проектами, которые будут сдаваться в короткие сроки. Из-за этого придётся перерабатывать сверх графика дома или в офисе.
📖 Книги по теме
Ниже книги, которые подойдут для начинающих. Только базовая информация в доступной подаче.
- «Искусство тестирования программ» от Гленфорда Майерса, Тома Баджетта, Кори Сандлер. Эту книгу можно назвать классикой. Выпускается с 1979 года.
- «Дневник охотника за ошибками» от Тобиаса Клейна. В книге начинающие специалисты найдут множество реальных кейсов. Автор расскажет о примерах, когда специалисты искали ошибки в разных типах продуктах. Книга даёт систематизированные знания по тестированию.
- «Software Testing» от Рона Паттона. Книга на английском языке, которая по полочкам разложит всю информацию о тестировании. Автор использует художественные приёмы и отходит от научного стиля для того, чтобы читателям было легче воспринимать информацию.
- «Fundamentals of Software Testing» от Хомеса Бернарда. Анг. книга, которая расскажет всё о профессии. Здесь читателей ждёт не только информация о технической части работы, но и о менеджерских и организационных.
- «Как тестируют в Google» от Джеймса Уиттакера, Джейсона Арбона и Джеффа Каролло. Книга будет полезна тем, кто решил себя связать с QA-тестированием. Технический директор Google подробно расскажет о всех этапах тестирования продукта в его компании.
Помимо литературы мы подготовили несколько полезных ресурсов, где они смогут познакомиться с тонкостями будущей профессии.
- Radio QA – русскоязычный подкаст, в котором общаются тестировщики, решают насущные.
- Python Testing – уже англоязычный подкаст, посвящённый тестированию на языке программирования Python.
- Software-Testing.RU. Тестирование и Качество ПО – русскоязычный портал с профессиональными материалами, небольшими статьями, которые будут полезны опытным и начинающим.
- QA Intelligence – сайт на английском языке с полезными статьями.