Лекция
Привет, сегодня поговорим про спеациальность qa, обещаю рассказать все что знаю. Для того чтобы лучше понимать что такое спеациальность qa, тестировщик, введение в тестирование , настоятельно рекомендую прочитать все из категории Качество и тестирование программного обеспечения. Quality Assurance..
Quality Assurance engineer — это специалист по обеспечению качества, деятельность которого направлена на улучшение процесса разработки ПО, предотвращение дефектов и выявление ошибок в работе продукта.
Основная задача QA — обеспечение качества. QA-инженер фокусирует внимание на процессах разработки ПО, улучшает их, предотвращает появление дефектов и проблем (Makes sure you are doing the right things, the right way).
Процесс обеспечения качества состоит из таких этапов:
— проверка требований к продукту;
— оценка рисков;
— планирование идей по улучшению качества продукта;
— планирование тестирования;
— анализ результатов тестирования;
Внутри процесса QA выделяют процесс Quality Control — контроль качества продукта. QC-специалисты анализируют результаты тестирования и отвечают за выявление и уничтожение дефектов в продукте (Makes sure the results of what you have done is what you expected).
Еще более узкая специальность в рамках QA/QC — тестировщик ПО, который проверяет готовый продукт на наличие ошибок (багов) и несоответствие требованиям, и затем документирует найденные дефекты и пути их воспроизведения. Тестирование — это один из этапов обеспечения и контроля качества.
Есть 4 основные роли:
«QA должен точно понимать, в какой момент за дело возьмется тестировщик, и успеть подготовить к этому времени план тестирования, тестовую документацию, тестовое окружение».
«Тестировщик знает, как система работает, где она не работает, и где работает не так, как задумано. Он умеет определить, чем вызвана ошибка, или хотя бы знает, где это искать. Чем тестировщик опытней, тем более тяжелой и интересной ему кажется работа».
В Украине различия между должностями QA и тестировщика смазаны, и на практике это одно и то же. Хотя теоретически тестировщик тестирует продукт как результат, а QA работает над обеспечением процессов, которые могут повысить качество ПО в целом.
«Если бы мы говорили о медицине, то QA занимались бы профилактикой, а тестировщики — диагностикой. Но так сложилось, что эти две разные профессии стали синонимами. Даже в тест-планах для иностранных заказчиков тестировщиков записывают как QA Engineers».
В круг обязанностей QA-инженера входит:
— Анализ и уточнение требований с заказчиком или бизнес-аналитиками;
— Планирование процесса тестирования;
— Написание тест-кейсов (сценариев тестирования);
— Тестирование функционала;
— Идентификация проблемных мест, внесение их в трэкинговую систему;
— Обсуждение фиксов с разработчиками;
— Отслеживание жизненного цикла ошибок;
— Ре-тест починенных дефектов;
— Анализ тестирования;
— Оптимизация процесса тестирования;
— Анализ процессов работы в команде;
— Улучшение процессов;
— Ведение тестовой документации.
«Хороший инженер по качеству понимает логику продукта и досконально знает проект: требования, текущее состояние дел. Об этом говорит сайт https://intellect.icu . Возможно, ему придется отвечать на уточняющие вопросы девелоперов, которые знают только свой кусок задачи и смежные области».
Типичный рабочий день QA-специалиста включает в себя:
— Написание тест-кейсов, тестирование, документирование ошибок (в зависимости от фазы проекта);
— Проверка баг-трекинговой системы на предмет появления исправленных ошибок;
— Стенд-ап митинги;
— Изучение требований, их уточнение у заказчика;
— Активное общение с разработчиками;
— Оформление тестовой документации.
«Утро — ревизия тасков, что за ночь упало или собралось. День — подготовка и запуск компиляций, анализ результатов автоматических тестов, оформление тикетов и т.п. Вечер — перезапуск компиляций и обновление статусов тасков в баг-трекере».
Привлекает QA-инженеров возможность улучшать качество продукта и при этом осваивать разные технологии и вникать в детали продукта.
«Нравится возможность реализовать свой перфекционизм без ущерба для социальной жизни».
Некоторые опрошенные отмечают, что интерес к работе усиливается со временем: сначала не понятно, что делается и для чего, а потом приходит понимание и желание брать на себя сложные задачи.
«Эта профессия требует наличия и постоянного применения аналитических способностей. Она не дает расслабиться и умственно деградировать, а заставляет постоянно изучать новые технологии и области знаний».
Не последнее место занимает и возможность приобщиться к миру высоких технологий и больших зарплат. Некоторые инженеры по качеству пришли к своей профессии, потому что хотели в IT, а порог входа на QA ниже, чем на программиста. Некоторые считает работу QA более интересной и разнообразной, чем работу разработчика.
«Пошел в QA, потому что интересуюсь IT, но не хочу быть программистом. Мне больше нравится разбираться в чем то, искать ошибки, особенно в логике, которые BA и девы могли пропустить».
«Тестировщик должен быть умнее программиста... Ну, по крайней мере, хитрее!».
«Мышление программистов и тестировщиков „заточено“ по-разному. Программист ищет короткий путь решения, достигает цели — и после этого стремится уже к новым задачам. А тестировщик обстоятельно выверяет неучтенные моменты, проверяет разные комбинации».
Главный минус — монотонная составляющая работы, особенно в начале карьеры. Сюда относят прохождение тест-кейсов при ручном тестировании и работу с документацией.
«Недостатками, скорее всего, можно назвать большую часть рутинной работы, которою нужно делать обязательно».
Инженеров по качеству не обучают в университетах (исключение: на нескольких факультетах КПИ читают посвященный тестированию полугодовой курс). Будущие QA приобретают знания на курсах или же самостоятельно.
«Если программисты со школьного возраста или начальных курсов института интересуются какой-то отраслью технологий и начинают развиваться в этом направлении (писать первые боты для игр, взломщики аккаунтов, сайты), то про тестирование я никогда такого не слышал. В стиле — „Вот я с 11-го класса тестирую приложения и получаю от этого кайф“. Достаточно иметь аналитические способности, немного внимательности и смекалки. Ну, и, конечно, разбираться в компьютерных технологиях, и прочесть хотя бы пару книг по тестированию».
Чтобы стать QA, нужно понимать цикл разработки ПО, изучить теорию и основные инструменты тестирования, иметь хороший уровень английского.
«Подавляющее большинство вакансий требуют знания English. Часто крупные компании берут джуниоров со знанием английского, отказывая кандидатам с большим опытом, но без знания языка».
Базовые знания теории тестирования — это умение ответить на вопросы:
— что такое тестирование и для чего оно нужно;
— какие бывают виды тестирования;
— что такое баг, и каков его жизненный цикл;
— какая документация используется при тестировании.
«Прочитать несколько книг и много статей, форумов на эту тему. Желательно изучить какой-то язык программирования, а также HTML, SQL, CSS etc. Это позволит качественней делать свою работу и быстрее двигаться по карьерной лестнице».
QA ответственен за улучшение качества процесса разработки, а потому должен обладать некоторыми навыками и других членов команды:
Также необходимо умение смотреть на продукт с точки зрения конечного пользователя.
«Профессия QA обязывает понимать все технические аспекты и цели бизнеса, а также уметь правильно общаться с заказчиками/менеджерами/девелоперами. Не бойтесь задавать вопросы, начиная с „А что, если?“. Очень часто это спасает часы, а то и дни разработки для всей команды».
Если говорить о личностных качествах, то необходимо:
— Иметь широкий IT-кругозор и тягу к изучению нового;
— Уметь общаться — качество коммуникации в команде разработки напрямую влияет на качество создаваемого ПО;
— Быть внимательным к деталям, усидчивым, ответственным и настойчивым;
— Обладать аналитическими способностями, уметь моделировать и работать с абстракциями;
— Иметь критический или даже «деструктивный» склад ума, направленный на нахождение ошибок;
— Отличать муху от слона.
«Из навыков — удачливость: если спотыкаетесь на ровном месте, то вам в тестировщики».
Среди перспектив профессионального развития можно выделить 3 направления:
Получив достаточное количество опыта, можно дорасти до менеджера проекта и затем развиваться как управленец (senior project manager —> CTO). Также сейчас открыто множество курсов по обучению QA, так что основную работу можно совмещать с преподаванием или консультированием.
«А был случай, когда девушка-QA ушла работать в театр актрисой».
Тестирование программного обеспечения (Software Testing) - проверка соответствия между реальным и ожидаемым поведением программы, осуществляемая на конечном наборе тестов, выбранном определенным образом. [IEEE Guide to Software Engineering Body of Knowledge, SWEBOK, 2004] В более широком смысле, тестирование - это одна из техник контроля качества, включающая в себя активности по планированию работ (Test Management), проектированию тестов (Test Design), выполнению тестирования (Test Execution) и анализу полученных результатов (Test Analysis).
Верификация (Verification) - это процесс оценки системы или ее компонентов с целью определения удовлетворяют ли результаты текущего этапа разработки условиям, сформированным в начале этого этапа[IEEE]. Т.е. выполняются ли наши цели, сроки, задачи по разработке проекта, определенные в начале текущей фазы.
Валидация (Validation) - это определение соответствия разрабатываемого ПО ожиданиям и потребностям пользователя, требованиям к системе [BS7925-1].
План Тестирования (Test Plan) - это документ, описывающий весь объем работ по тестированию, начиная с описания объекта, стратегии, расписания, критериев начала и окончания тестирования, до необходимого в процессе работы оборудования, специальных знаний, а также оценки рисков с вариантами их разрешения.
Тест дизайн (Test Design) - это этап процесса тестирования ПО, на котором проектируются и создаются тестовые случаи (тест кейсы), в соответствии с определенными ранее критериями качества и целями тестирования.
Тестовый случай (Test Case) - это артефакт, описывающий совокупность шагов, конкретных условий и параметров, необходимых для проверки реализации тестируемой функции или ее части.
Баг/Дефект Репорт (Bug Report) - это документ, описывающий ситуацию или последовательность действий приведшую к некорректной работе объекта тестирования, с указанием причин и ожидаемого результата.
Тестовое Покрытие (Test Coverage) - это одна из метрик оценки качества тестирования, представляющая из себя плотность покрытия тестами требований либо исполняемого кода.
Детализация Тест Кейсов (Test Case Specification) - это уровень детализации описания тестовых шагов и требуемого результата, при котором обеспечивается разумное соотношение времени прохождения к тестовому покрытию
Время Прохождения Тест Кейса (Test Case Pass Time) - это время от начала прохождения шагов тест кейса до получения результата теста.
Надеюсь, эта статья об увлекательном мире спеациальность qa, была вам интересна и не так сложна для восприятия как могло показаться. Желаю вам бесконечной удачи в ваших начинаниях, будьте свободными от ограничений восприятия и позвольте себе делать больше активности в изученном направлени . Надеюсь, что теперь ты понял что такое спеациальность qa, тестировщик, введение в тестирование и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Качество и тестирование программного обеспечения. Quality Assurance.
Ответы на вопросы для самопроверки пишите в комментариях, мы проверим, или же задавайте свой вопрос по данной теме.
Комментарии
Оставить комментарий
Качество и тестирование программного обеспечения. Quality Assurance.
Термины: Качество и тестирование программного обеспечения. Quality Assurance.