Кто такой тестировщик и как им стать с нуля

Так работали всегда

Эта фраза обычно означает наличие продукта, уже работающего на продакшене или только готовящегося зарелизиться, но написанного без модульных и интеграционных тестов. Без страховочной сети из тестов, изменения вносятся долго, дорого и с большим количеством новых багов. Такой проект в мире разработки принято называть “легаси”. 

Компания понимает, что обойтись без страховочной сети нельзя, поэтому создается QA-отдел, который обычно не обеспечивает качество продукта, а лишь контролирует его. С QA-отделом разработчик может спокойно заниматься любимым делом — писать код, ведь ответственность за качество теперь несет выделенный отдел! Происходит классическое “перебрасывание кода через стену” в отдел тестирования:

Прохождение каждого тест-кейса ручное, поэтому процесс тестирования занимает много времени. Количество тест-кейсов в регрессии по естественным причинам постоянно растет, и принимается решение о создании внутри QA-отдела команды автоматизации.

Так как новоиспеченная команда набиралась из-за необходимости ускорить цикл регрессии, который состоит из black-box тестов, то и автоматизация происходит на уровне black-box: через GUI или API. Автоматизация через GUI наиболее болезненная и дорогостоящая из-за хрупкости и низкой скорости тестов, но зачастую начинают именно с нее. 

Тем временем, факт создания новой команды никак не влияет на команду разработки: она все также продолжает отдавать в тестирование некачественный продукт, игнорируя написание модульных и интеграционных тестов. Учитывая огромное количество black-box сценариев, находящихся в очереди на автоматизацию, получаем анти-паттерн тестирования Ice-Cream Cone, в котором количество самых медленных и самых дорогостоящих GUI-автотестов намного больше количества дешевых и быстрых модульных и интеграционных тестов.

Нестабильных и медленных по своей природе GUI-автотестов с каждым релизом становится все больше, а значит больше ресурсов уходит на их поддержку, что ведет к расширению команды автоматизации. Департамент обеспечения качества растет, но не обеспечивает должный рост качества выпускаемого продукта. Вы действительно хотите так работать всегда? 

Из каких блоков состоит стандартное интервью

Сначала — представить компанию, описать процессы, рассказать про команду и ожидания от будущего коллеги. Сразу скажу, в этой части люблю оставлять «ловушки»: о чём-то сознательно не рассказываю, чтобы на этапе вопросов от кандидата ему было, о чём спросить, а мне — можно было углубиться в подробности.
Дальше — очередь кандидата: его опыт, контекст применения инструментов, методик. Как часто они в компании релизили, что делали, зачем, почему. На этом этапе меньше интересует рассказ про продукты. Иногда люди уходят в дебри, говорят про тонкости реализации архитектуры их приложений

Это здорово, но самое важное для меня — инструменты, подходы, решения различных кейсов.
Следующий этап — собственно решение кейсов. У меня есть своё собрание вопросов, которые использую для разных профилей: для мобильных тестировщиков одни, для специалистов по бэкенду — другие, для кроссфункциональных тестировщиков — третьи

Завершает обязательный этап с вопросами от кандидата. Есть такое понятие как инвертированное собеседование. Это для меня как интервьюера круче всего. Когда создается впечатление, что не ты собеседуешь, а тебя собеседуют: задают вопросы, как устроен процесс разработки, что с CI/CD, как у вас автотесты, а какой фреймворк, зачем, почему… В этот момент понимаешь, что специалисту не всё равно, он вовлечён, а еще понимаешь, что его волнует. И для себя делаешь пометки: например, человек больше смотрит вширь. Очень важно, чтобы человек задавал вопросы, которые помогали бы ему подстраховаться от ошибок, которые он совершил на прошлом месте. Если человек рассказывает, почему ушёл из прошлой компании и на собеседовании не подкладывает себе соломки под ту же причину — для меня это тревожный звонок.
Под конец — оргвопросы. Зарплатные ожидания: всегда прошу озвучить кандидатов минимум, исходя из базовых потребностей — дети, семья, ипотека. И максимум: если у человека есть адекватная профессиональная оценка собственных навыков, компетенций по рынку — это здорово. По возможности я стараюсь прямо давать кандидатам обратную связь, чтобы у них было понимание, как всё прошло. Хотелось бы, чтобы собеседования проходили в таком свободном формате — это позволяет расстаться на позитивной ноте, даже если конкретно сейчас кандидат на место не подходит. У меня много примеров, когда с кандидатами расстались по причине «сейчас не время», и спустя какой-то период мы с ними работаем.

Quality Assurance Testing

Testing is the process used to execute a system of quality assurance. It is used to detect the problems in a product or service. The importance of testing is obvious: the product or service that is completed improperly is going to dissatisfy the stakeholder, but there can also be safety issues that will put people in harm’s way if not addressed.

Testing requires the following:

  • Analysis and definition
  • Design architecture and description
  • Coding a logic analysis
  • Change and configuration management
  • Testing and standard compliance
  • Release management and release control

The difference between quality assurance and testing is that quality assurance is about the activities designed to make sure the project is conforming to the expectations of the stakeholders, while test is a process to explore a system to find defects. Testing is focused on system inspection and finding bugs, with a product orientation and corrective activity. Testing’s aim is to control the quality, while quality assurance is to assure the quality.

Почему люди хотят стать тестировщиком?

Тестировщиками становятся даже те, у кого за плечами гуманитарное образование или опыт работы в другой сфере. Знание теории и умение работать с программами обязательны, но учатся этому на курсах или самостоятельно.

Тестировщик ПО в SmartSeeds, в прошлом учитель, военный и работник метрополитена, подчеркивает: 80% успешного обучения — самообразование. Это книги, вебинары, видео уроки на YouTube.

Из продавца компьютерной техники — в тестировщика: делимся мотивирующим видео от блогера Стаса Пешкура. Стас подчеркивает: нужно подготовиться к тому, что первое место работы даст не заработок, а опыт, который пригодится для вхождения в айти-среду.

Главные причины, по которым выбирают профессию тестировщика:

  • достойная зарплата (от $600-700 и выше);
  • долгосрочная перспектива карьерного продвижения;
  • возможность быстро переключиться с фриланса на постоянную работу в офисе.

Тестировщик уровня Middle и выше осваивает популярные языки программирования, прокачивает уровень своего английского. Это хорошее подспорье для дальнейшей переквалификации или подъема на новую ступеньку.

Какие типы или виды тестирования используются в QA процессе?

Теперь, когда мы понимаем, что представляет собой процесс QA, давайте поговорим о различных типах тестов, используемых при тестировании программного обеспечения. Да, их очень много. Но волноваться не стоит. Как только вы поймёте, по каким принципам тесты делятся на группы, вы легко сможете в них ориентироваться.  

Функциональные и нефункциональные тесты

Основные категории тестов — это функциональные и нефункциональные тесты.

При функциональном тестировании мы проверяем, работает ли приложение должным образом. Другими словами, мы проверяем, соответствует ли фактический результат ожидаемому результату.

В нефункциональном тестировании мы проверяем, как наше приложение работает в различных условиях. Нагрузочные тесты, тесты безопасности, стрессовые тесты и тесты удобства пользования — все они попадают в эту категорию.

Знание исходного кода

Если тестировщики знают исходный код до тестирования, речь идет о тестировании “белого ящика” (white box testing). В противном случае мы имеем дело с тестированием “черного ящика” (black box testing), когда тестировщики оценивают только поведение приложения, не зная его внутреннего устройства. Тестирование “серого ящика” (grey box testing) представляет собой комбинацию этих двух подходов. Тестировщикам предоставляется ограниченная информация о внутренней структуре системы.

Подход к выполнению тестов

Некоторые тесты выполняются людьми, и мы говорим о ручном тестировании. При этом подходе тестировщики выполняют тестовые сценарии и создают отчеты о результатах.

Другие тесты выполняются компьютерами. Инженеры по автоматизации тестирования создают сценарии автоматического тестирования и пишут код, который многократно проверяет программное обеспечение на наличие ошибок. Здесь мы имеем дело с автоматическим тестированием.

У каждого из этих подходов есть свои плюсы и минусы. Они дополняют друг друга. Например, ручное тестирование лучше подходит для проверки небольших изменений. Во время ручного тестирования тестировщики часто могут найти такие проблемы, которые остались бы незамеченными, если бы они полагались только на автоматизированные тесты. Ручное тестирование не требует глубоких знаний языков программирования и его достаточно легко освоить. 

В то же время, при работе над большими приложениями, тестирование без использования автоматических тестов может занять слишком много времени. Мы также не можем исключить вероятность человеческих ошибок.

Для каждого отдельно взятого проекта QA специалисты определяют идеальный баланс между ручным и автоматическим тестированием.

Фаза разработки программного обеспечения

Мы разделяем тесты на модульные, интеграционные, системные — в зависимости от того, на каком этапе цикла разработки программного обеспечения находится команда.

Вот еще несколько типов тестов, с которыми вы часто будете сталкиваться в публикациях:

Дымовые тесты (smoke tests) предназначены для проверки базовой функциональности приложения. Это быстро выполнимые тесты, с помощью которых тестировщики следят за тем, чтобы основные функции системы работали правильно.

Регрессионные тесты (regression tests)  помогают проверить, работает ли приложение так, как оно должно работать, после внесения каких-либо изменений, например исправления дефектов.

Нагрузочные тесты (load tests) необходимы для проверки приложения как при средней, так и при пиковой нагрузке.

Кроссбраузерное / кроссплатформенное тестирование помогает анализировать поведение приложения в различных браузерах и системах.

Конечно, это не все типы тестов, которые используются в процессе разработки программного обеспечения. Но знание этих основных категорий поможет вам лучше ориентироваться в теме QA.

Уровни квалификации тестировщиков

Trainee

Начинающий тестировщик без практического опыта. Как правило, это студент, который проходит обучение в IT-компаниях. После обучения его могут трудоустроить, в зависимости от показанных результатов.

Junior QA Engineer

Младший специалист с опытом работы от 1 до 8 месяцев. Он примерно понимает, что такое тест-план, тест-кейс, тест-сьют, тест-степ, тест-дизайн, Definition of Done. Junior QA Engineer имеет представление о дефектах Severity и Priority, также обладает базовыми навыками работы с SQL.

Middle QA Engineer

Уверенный среднячок с опытом работы до 3-4 лет. Мидл тестировщик умеет работать самостоятельно, может обучать Trainee и Junior. 

Senior QA Engineer

Профессиональный и скилованный тестировщик, который выполняет сложнейшие задачи широкого спектра. В работе использует различные виды тестирования. 

QA Team Lead 

Ведущий QA-тестер, который отлично разбирается в технической стороне тестирования и умеет работать с командой. Он принимает участие в написании технической документации, набирает людей в команду проекта, координирует и контролирует её. 

QA Functional Manager

Функциональный менеджер управляет тестированием конкретного проекта и командой тестировщиков.

Если сильнее углубиться в профессию QA Engineer, можно выделить у тестировщиков несколько разновидностей:

  • Automation QA Engineer. QA-автоматизатор делает тесты по скриптам для автоматизации тестирования. 
  • Manual QA Engineer. Выполняет тестирование вручную. Он не пользуется программами, а самостоятельно воспроизводит все действия, которые будет делать пользователь в приложении. 
  • Quality Control Specialist. QC-специалист проводит анализ результатов тестов и следит за выявлением и удалением багов в приложении.

How ProjectManager Helps with Quality

Quality is about tracking and communication. If you don’t recognize an issue the moment it shows up in your project, it will quickly turn into a problem that will threaten the quality of your deliverable. The award-winning software from ProjectManager can help. It’s designed to monitor every phase of your project and respond quickly when issues arise.

Real-Time Updates for Better Tracking

How you get your data is just as important as when you get it. If your information is vague or rigid, you might not see what you need to know in order to resolve an issue. ProjectManager has that covered, too, with easy one-click reporting that can be filtered to show just the data you want. These reports are also populated with live data, so it’s the best of both worlds.

Not that you want to be generating reports all the time. Is there a way to keep track of the project’s progress quickly and simply? Yes. ProjectManager has a real-time dashboard that is constantly being fed with live data to report on the tasks, costs and other project metrics.

ProjectManager’s dashboards are easy to read and vital for quality assurance.

Once people are informed, then you have Gantt charts to formulate your plan, assign team members and track their progress. ProjectManager gives you quality assurance from the start to the finish of your project.

The tracking of quality assurance and its testing requires a software that can collect real-time data and provide managers with easy-to-read reports. ProjectManager is a cloud-based project management tool with features such as real-time dashboards that record and reflect changes as they occur. See how it can help your quality assurance and testing by taking this free 30-day trial.

Для чего необходимо обеспечение качества

Конечный продукт выпускается на рынок с высокой конкуренцией — будь-то мобильные приложения, операционные системы или игры. После официального релиза программа обязательно должна работать безупречно, чётко и быстро. Если до выпуска максимально не выявить все ошибки, можно поплатиться репутацией. Даже при условии быстрой отладки, пользователи не дадут второй шанс разработчикам и будут использовать более качественные сервисы. Идеальных приложений не существует, но можно сделать их максимально совершенными с помощью QA-тестирования.

Ежедневные советы от диджитал-наставника Checkroi прямо в твоем телеграме!

Подписывайся на канал Подписаться

Difference between Quality Control and Quality Assurance?

Sometimes, QC is confused with the QA. Quality control is to examine the product or service and check for the result. Quality Assurance in Software Engineering is to examine the processes and make changes to the processes which led to the end-product.

Quality Control Vs Quality Assurance

Examples of QC and QA activities are as follows:

Quality Control Activities Quality Assurance Activities
Walkthrough Quality Audit
Testing Defining Process
Inspection Tool Identification and selection
Checkpoint review Training of Quality Standards and Processes

The above activities are concerned with Quality Assurance and Control mechanisms for any product and not essentially software. With respect to software

  • QA becomes SQA ( Software Quality Assurance)
  • QC becomes Software Testing.

Преимущества и недостатки профессии

Чем, помимо заработной платы, привлекательна работа QA-инженера? Одно из самых приятных преимуществ заключается в осознании собственной причастности к созданию и улучшению IT-продукта, которым будут пользоваться тысячи или даже миллионы людей.

Кроме того, к плюсам относят возможность близко знакомиться с новейшими технологиями в тестировании и разработке. Если вы захотите сменить профессию, но при этом оставаться в IT-сфере, должность QA – оптимальное место, с которого удобно присматриваться к новому направлению.

Недостаток у QA-инженера лишь один – монотонность обязанностей, касающихся ручного тестирования и обновления документации. Справедливости ради отметим, что скучно может быть только в начале работы. По мере расширения круга задач работа становится гораздо динамичнее.

Описание профессии

Quality assurance engineer – специалист, который отвечает за качество готового IT-продукта. Его работа сводится к оптимизации разработки ПО, обнаружению ошибок в его функционировании и предотвращению дефектов.

Процесс обеспечения качества продукта состоит из трех последовательных компонентов-этапов: тестирование ПО, QC (Quality Control) и QA (Quality Assurance). Тестирование предполагает проверку с целью поиска ошибок и несоответствий выдвигаемым требованиям. Обнаруженные дефекты обязательно фиксируются в документации, где также отражается путь их воспроизведения. Затем наступает очередь QC – тщательного анализа полученных результатов и удаления задокументированных погрешностей. И наконец QA – финальная стадия, которая предусматривает обеспечение правильности и предсказуемости работы продукта в целом.

В профессии QA-инженера сочетаются 4 направления работы:

  • Аналитик проверка требований к продукту на степень полноты, однозначность, отсутствие противоречий и так далее;
  • Проектировщик создание тестов на основе выдвигаемых заказчиком требований, планирование конфигурации, необходимой для выполнения тестирования;
  • Исполнитель проведение тестов, документирование обнаруженных ошибок и создание пошаговой инструкции по их воспроизведению;
  • Менеджер планирование и контроль этапов работы, связанной с тестированием (определение сроков, создание рабочего графика, учет требований заказчика в тестах, раздача задач сотрудникам и общение со стейкхолдерами).

Если в штате компании тестировщик – отдельная должностная единица, QA-инженеру нужно четко знать, когда он приступит к работе, чтобы успеть разработать к этому моменту для него план тестирования и специальную документацию. Тестировщик знает продукт от А до Я, поэтому сразу определяет, что в нем не работает совсем, а что функционирует с погрешностями. Кроме того, он может выяснить, в чем заключается причина ошибки или как минимум понимает, где ее найти.

Разграничить эти две должности сложно, да и на практике это, как правило, один и тот же человек. Хотя в теории тестировщик должен заниматься исключительно тестированием готового продукта, а инженер – работать над повышением качества ПО в общем.

С чего начинали нагрузочное тестирование в Miro

  1. Несколько человек занимались НТ часть своего времени.
  2. Мы использовали JMeter как наиболее популярное решение. У нас был свой плагин для WebSocket, так как ключевой функционал Miro связан с работой с досками и требует очень быстрого клиент-серверного взаимодействия, как в играх. Кстати движок, с которого много лет назад начинала компания, был как раз игровым. Это с самого начала дало высокую интерактивность и скорость отклика.
  3. Наш кластер был prod-like. К счастью, у нас был IaC. Нельзя сказать, что IaC — это серебряная пуля, сложности с ним тоже есть, но без него сложности с ростом масштаба становятся фатальными препятствиями.
  4. Один достаточно объёмный и сложный WebSocket&HTTP API тест.

QA должны иметь автономию и авторитет

Друг, который занимался тестированием высоконагруженных серверов, рассказал мне историю. В одной большой компании начали проверять новую версию системы и обнаружили, что не хватает записей в логах, позволяющих понять, что происходит в определённом наборе сценариев. Разработчиков попросили их добавить. Но у тех обычно горят дедлайны и спринты забиты под завязку — обещали сделать, но в рамках своих приоритетов. Проверить систему было нельзя, и моему другу пришлось идти к начальству — просить, чтобы надавили на разработчиков и они добавили три строчки логов.

Это неправильно. Тестировщикам требуется непоколебимый авторитет: когда они что-то говорят, все должны внимательно слушать и немедленно исполнять. QA-специалисты должны влиять на процессы и присутствовать на всех совещаниях на стадиях планирования и разработки. К их мнению стоит прислушиваться на всех этапах проектирования.

От редакции: Приведённый пример — в большей степени о взаимодействии отделов. Так будет происходить в любой организации, где есть деление на отделы с внутренней приоритезацией задач. Руководитель отдела расставил очередность, а тут приходит запрос от другого отдела. Никто не возьмётся за чужую задачу, пока руководитель не внесёт её в список задач отдела.То есть решение не столько в том, чтобы тестировщик напрямую ставил задачи программистам, сколько в том, чтобы урегулировать это на уровне процессов: передачи информации от отдела к отделу и приоритезации, которая оговаривается заранее. Потому что хотелки тестировщиков не всегда критически важные.

Задачи и обязанности

Основная задача 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 основные роли:

  • Test Analyst — занимается статическим тестированием требований: проверяет, насколько они полны, однозначны, непротиворечивы etc;
  • Test Designer — создает набор тестов на базе требований, планирует конфигурации, необходимые для тестирования;
  • Test Executor — выполняет заранее подготовленные тесты, документирует найденные ошибки и шаги их воспроизведения;
  • Test Manager — скорее управленец, чем инженер. Планирует и контролирует работы, связанные с тестированием: оценки сроков, работу над планом-графиком, контроль покрытия требований тестами, постановку задач членам команды, коммуникацию со стейкхолдерами).

В Украине различия между должностями QA и тестировщика смазаны, и на практике это одно и то же. Хотя теоретически тестировщик тестирует продукт как результат, а QA работает над обеспечением процессов, которые могут повысить качество ПО в целом.

В круг обязанностей QA-инженера входит:— Анализ и уточнение требований с заказчиком или бизнес-аналитиками;— Планирование процесса тестирования;— Написание тест-кейсов (сценариев тестирования);— Тестирование функционала;— Идентификация проблемных мест, внесение их в трэкинговую систему;— Обсуждение фиксов с разработчиками;— Отслеживание жизненного цикла ошибок;— Ре-тест починенных дефектов;— Анализ тестирования;— Оптимизация процесса тестирования;— Анализ процессов работы в команде;— Улучшение процессов;— Ведение тестовой документации.

Типичный рабочий день QA-специалиста включает в себя:— Написание тест-кейсов, тестирование, документирование ошибок (в зависимости от фазы проекта);— Проверка баг-трекинговой системы на предмет появления исправленных ошибок;— Стенд-ап митинги;— Изучение требований, их уточнение у заказчика;— Активное общение с разработчиками;— Оформление тестовой документации.

Quality Assurance Approaches

  • Failure Testing: Also referred to as stress testing, failure testing is a way to push a product to its limits by increasing vibration, temperature, humidity, etc., to expose inherent weaknesses, and then use those findings to improve the product to uphold a higher standard.
  • Statistical Control: This type of quality assurance is based on analyses of objective and subjective data to track quality data, and then chart it against a common cause variance.
  • Total Quality Management: Here the quality of the product is dependent on the participating constituents, some sustainable and controllable, others not. If the specification does not match its true quality requirements, then the quality is not guaranteed.
  • Models and Standards: This is an international standard that has general requirements for competence. There are tests to carry out, 15 management requirements and 10 technical requirements, in a laboratory that is accredited.
  • Company Quality: This concept came about in the 1980s and focuses on all departments approaching quality lead by management to develop a quality improvement process. This is done through controls, job management, process, performance, knowledge, skills and experience, integrity, confidence and infrastructure.
Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector