С чего начать джуниору? Что он должен знать, что уметь, где приобрести необходимые навыки и практику? Как начать построение карьеры в тестировании?
Что же такое QA?
QA (от англ. quality assurance) — обеспечение качества. QA - это довольно абстрактное понятие. Но в основном этот процесс имеет две цели:
- продемонстрировать разработчикам и заказчикам, что программа соответствует требованиям;
- выявить ситуации, в которых поведение программы является неправильным, нежелательным или не соответствующим спецификации.
QA - это обеспечение качества продукта, причем, в идеальном случае, на всех этапах разработки. Но в первую очередь это понятие конечно же включает в себя тестирование.
Функциональное тестирование.
В большинстве случаев самое первое, с чем придется столкнуться QA Engineer'у это функциональное тестирование: написание тестов по задачам и прохождение этих тестов., прохождение уже написанных, апдейт, заведение багов и прочее. В этом случае QA Engineer - тестировщик. Для этого самое важное - хорошо работающая голова, умение читать задачи и задавать правильные вопросы: "А что если так? А если этак?".
В зависимости от технологии тестировщику могут понадобятся дополнительные специфические навыки. Web разработка, разработка мобильных приложений, ПО: в каждой технологии свои подводные камни.
Но, процесс обеспечения качества не заканчивается на функциональном тестировании, поэтому понятие QA шире, чем тестирование. Здесь мы уходим от банальных тестов по функциональным требованиям и переходим к анализу требований и документации (поиск узких мест в требованиях и реализации), юзабилити тестирование (поиск "косяков" в интерфейсах и функциональности), тестирование производительности и прочее.
Автоматизированное тестирование.
Автоматизация тестирования - отдельная часть. Здесь от компании к компании все по-разному, и роль автотестера может начинаться с "тестера который научился использовать тестовый фреймворк" и заканчиваться "полноценным разработчиком, который автоматизирует то, что ему говорят тестировщики". Требования отличаются соответственно.
Кроме тестирования, хороший QA инженер работает и над самим процессом разработки. Его цель - обеспечивать качество продукта, и если оно страдает из-за косяков в рабочем процессе - их тоже надо выявить и решить.
Что в итоге?
QA-инженер - это тестировщик, который вышел в своей работе за рамки тестирования. QA-инженер работает над качеством продукта не только в плане "требования выполнены - к продакшену готовы", а старается делать продукт лучше во всех отношениях. В первую очередь - для бизнеса, во вторую - для пользователя, в третью - для тех, кто этот продукт делает.
Следовательно, путь QA лучше всего начинать именно с тестирования (кстати говоря, в России понятия QA и тестирования почти всегда тождественны в умах нетестировщиков).
Что важно для тестировщика?
- Способность и желание разбираться в том, как это (продукт\фича\пр) работает сейчас, и как это должно работать.
- Так же стоит приготовиться много говорить "нет, так не пойдет" менеджерам и разработчикам.
- Ну и вообще, смириться с тем, что другие стороны процесса очень часто готовы действовать в ущерб качеству.
Требования к джуниору.
- Представление о процессе разработки: этапы, когда нужно начинать тестировать и все такое.
- Представление о написании тестов: что представляет из себя тест-план, тест-сьют, тест-кейс, тест-степ, Definition of Done, ожидаемый результат и т.д.
- Представление о том, что такое дефект: Severity и Priority дефекты, какие бывают дефекты, из чего состоит описание дефекта, и т.д.
- Хотя бы общее представление о тест-дизайне: что это такое, зачем нужено, какие есть практики.
- Базовые навыки (SQL - селект, апдейт, работа с несколькими таблицами).
Дополнительную литературу, касающуюся всех этих навыков и технологий можно найти здесь: https://proglib.io/p/qa-books/
А ещё, конечно, нужно, чтобы человек умел думать. Будьте готовы к задачкам на логику и к задачкам типа "Есть окно с кнопкой, посылает запрос: напиши тесткейсы" или "Протестируй карандаш".
Комментарии