Как стать qa-инженером

Будущее тестировщика

  • Разработка программного обеспечения — логичный и не самый сложный путь для тех, кто увлечётся языками программирования и захочет не только ковырять чужой код и готовый проект, но и создавать что-то внутри команды.
  • Руководитель проекта. Отличное знание проекта в целом, понимание потребностей и требований клиентов — прямой путь к этой точке.
  • Скрам мастер — интересный разворот, который у тестировщиков хорошо удаётся благодаря опять же знаниям проекта в целом и умениям жёстко планировать сроки работ.
  • Бизнес-аналитик, внедренец — денежные, но не столь технические должности для ребят с прокачанными коммуникативными навыками.

Другие классификации видов тестирования

Чаще всего используется разбиение на три уровня, это

  1. модульное тестирование,
  2. интеграционное тестирование,
  3. системное тестирование.

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

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

Иногда используются также некоторые другие термины, такие, как «компонентное тестирование», но я предпочитаю выделять именно эти три, по причине того, что технологическое разделение на модульное и системное тестирование не имеет большого смысла. На разных уровнях могут использоваться одни и те же инструменты, одни и те же техники. Разделение условно.

Если посмотреть на какое-нибудь типичное веб-приложение, то можно заметить, что оно представляет собой своеобразную матрешку.

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

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

Библиотеки состоят из классов, классы состоят из методов, на стороне баз данных тоже есть пакеты, состоящие из хранимых процедур.

Само по себе приложение тоже может являться частью какой-то более крупной информационной системы.

В этой матрешке мы должны понять, где, на каком уровне у нас должно находиться модульное тестирование, а на каком должно находиться системное тестирование. И найти еще место для интеграционного.

Глядя на эту матрешку мы можем понять, что разделение на системное и модульное тестирование является чисто условным.

То есть у нас система состоит из каких-то модулей. Модули в свою очередь состоят из других более мелких модулей. Эти мелкие модули состоят еще из более мелких, и так далее.

 И так, получаем в результате:

Классификацию по целям удобно выполнять с использованием «магического квадрата», который был изначально придуман Брайаном Мариком и потом улучшен Эри Тенненом.

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

По вертикали — чем выше располагается вид тестирования, тем больше внимания уделяется некоторым внешним проявлениям поведения программы, чем ниже он находится, тем больше мы внимания уделяем ее внутреннему технологическому устройству программы.

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

В частности, в этот квадрат можно легко вписать такие термины как приемочное тестирование, Acceptance Testing, модульное тестирование именно в том понимании, в котором оно чаще всего употребляется в литературе. Это низкоуровневое тестирование с большой, с подавляющей долей программирования

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

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

Так вот, исходя из классификации по целям, модульное тестирование у нас оказывается в левом нижнем квадранте, а все остальные квадранты — это системное тестирование.

Курсы для QA инженеров на LinuxTrainingCenter

LinuxTrainingCenter предоставляеют обучение для QA Engineer и предлагает пройти следующие курсы:

  • Курс администрирования linux LPIC-1 и Курс администрирования linux LPIC-2  – это база для дальнейшей работы в любой IT специальности. Практически все программные продукты (особенно их серверные части, с которым возникает большинство проблем у QA инженеров) пишутся для Linux. Как QA инженер, Вы должны уметь поставить, проверить что процесс запущен, убедиться что процесс работает без ошибок, а если ошибки есть – найти их причину и т.д. Из нашего опыта, если QA инженер не обладает минимальными знаниями в Linux, он становиться головной болью для всех команд. Поэтому, без знания и навыков работы в Linux будет крайне затруднительно пройти собеседование. Дополнительный бонус от изучения Linux – вся современная микросервисная архитектура приложений базируется на docker, kubernetes и т.д , но основа каждого контейнера – это Linux с установленными внутрь пакетами и запущенным приложением. Зная Linux, вы всегда сможете зайти внутрь контейнера и найти причину ошибок.
  • Курс GIT для начинающих. Начальный навык работы с GIT даст Вам возможность тестировать различные бранчи и девелоперские фичи и фиксы до их релиза.

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

В совокупности, пройденные у нас курсы, дадут для современного QA специалиста представление и понимание о процессе непрерывной интеграции CI и существенно повысят шансы трудоустройства.

Какие бывают

В ИТ-среде в связи с тестированием и качеством принято три обозначения:

QA — quality assurance, самый главный по качеству;

QC — quality control, контролёр качества;

Tester — тестировщик.

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

QA — это тот, кто думает о качестве продукта в целом, причём не только о конечном коде, но и всего процесса разработки. Например:

Как понять пользовательские сценарии, в которых вероятнее всего возникнут ошибки? Как их собрать? Как систематизировать? Как ничего не упустить? (Например, как понять, какие именно предметы люди могут догадаться засунуть в микроволновку, и как защититься от идиотов, которые засунут туда динамит?)

Как соединить запросы людей, требования бизнеса и реальные возможности продукта с точки зрения качества? Что если наш продукт совсем не делает то, чего пользователи могут ожидать? Например, если они будут сушить в микроволновке кошку — это чья проблема? Будем ли мы с этим что-то делать?

Кто, как и в каком порядке будет исправлять ошибки? Как мы будем повторно тестировать места с ошибками?

Что и как тестировать от версии к версии программы, чтобы это было достаточно быстро, но не в ущерб качеству?

Можно представить, что QA — это директор по качеству, главный человек на пути у багов. Он не менее важен, чем главный архитектор или ИТ-директор. Многие его функции могут пересекаться с функциями других ИТ-директоров.

QC — это тот, кто сфокусирован на тестировании самого продукта:

Что именно тестируем? Какие функции, кнопки, состояния, сценарии?

Какие результаты тестирования нам нужны? Какие исходы правильные, а какие — ошибки?

Как автоматизируем тесты? Что нужно обязательно пройти ручками?

Как синхронизировать работу нескольких тестировщиков? Как распределить задачи, области, слои?

Можно представить, что это такой главный бригадир тестировщиков. Его работа — чтобы тесты шли ровно и чётко, без проблем. Разумеется, очень полезно, если он умеет непосредственно тестировать.

Тестировщик — это тот, кто тестирует продукт: проходит его ручками или пишет автоматические тесты; описывает баги; общается с разработчиком по поводу этих багов; заново тестирует исправленное.

Варианты карьеры QA-тестировщика

В QA-тестировании существуют общепринятые названия специальностей на английском языке. Это навыки и умения с технической стороны – hard skills. Рассмотрим карьерный рост в соответствии с этими названиями:

  1. Trainee QA Engineer (стажёр) — начинающий специалист, имеющий только теоретическую базу без опыта работы.
  2. Junior QA Engineer (новичок) — сотрудник с опытом работы в должности QA-тестировщика до 6 месяцев. Такому инженеру нужно иметь представление о процессе разработки, написании тестов, что такое дефект и как с ним работать.
  3. QA Engineer (QA-тестировщик) — специалист, с опытом работы более 6 месяцев. Владеет навыками написания сценариев тестирования, проведения тестирования продукта, составления отчетов по обнаруженным ошибкам, анализа результатов и улучшения показателей, отслеживания правок и оптимизация этапов разработки. Может обучать сотрудников из предыдущих пунктов.
  4.  Senior QA Engineer (старший QA-тестировщик) — опытный программист с высоким уровнем квалификации. Помимо самостоятельного выполнения задач, обучает сотрудников и берёт на себя ответственность за выполнение более сложной работы. Знает и умеет использовать разные виды тестирования.
  5. Lead Software Testing Specialist (ведущий инженер) —более 5 лет профессионального опыта, может руководить группой инженеров, оценивает риски, составляет сроки и уровни бюджетирования, определяет варианты тестирования и координирует его процесс.
  6. Разработчик — поработав в тестировании некоторое время и получив необходимый опыт, некоторые специалисты уходят в разработку программного обеспечения.

7 ДНЕЙ БЕСПЛАТНОГО ДОСТУПА К КУРСАМ И ИНТЕНСИВАМ ОТ SKILLBOX

Тем, кто любит общение и взаимодействие с коллегами подойдет развитие по типу soft skills:

  • Менеджер — работает с командой, ставит задачи подчинённым и осуществляет контроль за их выполнением.
  • Бизнес-аналитик — посредник между заказчиком и командой, проводящей тесты.

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

What is Quality Control?

Quality control popularly abbreviated as QC. It is a Software Engineering process used to ensure quality in a product or a service. It does not deal with the processes used to create a product; rather it examines the quality of the “end products” and the final outcome.

The main aim of Quality control is to check whether the products meet the specifications and requirements of the customer. If an issue or problem is identified, it needs to be fixed before delivery to the customer.

QC also evaluates people on their quality level skill sets and imparts training and certifications. This evaluation is required for the service based organization and helps provide “perfect” service to the customers.

Знания и умения

Что нужно знать будущему QA-инженеру для успешной работы? Прежде всего ему понадобится теория. Кандидат на эту должность может подробно рассказать:

  • что собой представляет тестирование ПО и зачем его применяют;
  • о существующих разновидностях тестирования;
  • о баге и его жизненном цикле;
  • о документации, которая заполняется в процессе выполнения тестов.

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

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

Кроме того, инженер должен уметь видеть создаваемое ПО глазами конечного потребителя. Это помогает повысить удобство его использования (юзабилити), а значит и качество.

Инструменты для QA-инженеров

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

  • Selenium – Бесплатный инструмент, который используется для автоматизированного тестирования web-приложений. Поддерживает все известные браузеры разных операционных систем: Windows, Linux, Mac, а также позволяет писать сценарии тестирования на основных языках программирования. Однако, selenium имеет ограниченный функционал и предназначен только для тестирования веб-приложений.
  • Katalon Studio – также бесплатный инструмент, который используется для автоматизированного тестирования web и мобильных приложений. Подходит для новичков и для опытных тестировщиков. Поддерживает систему CI – технология непрерывной интеграции. Однако, Katalon Studio не выдает детальных отчетов, поддерживает небольшое кол-во языков программирования и позволяет запускать несколько тестов сразу.
  • UFT – платный инструмент, который применяется для написание тестов, и также используется для автоматизации тестирования программного обеспечения за счет поддержки скриптов. Позволяет тестировать большое кол-во различных приложений. Главное преимущество UFT в том, что здесь поддерживается запись действий пользователя, что позволяет экономить время на написание новых сценариев тестирования.
  • IBM Rational Functional Tester – инструмент для автоматизации процесса тестирования приложений HTML, Java, Dojo, Ajax, Microsoft Windows, Microsoft .NET, Microsoft Silverlight, Microsoft Visual Basic, Siebel, Flex, GEF и PowerBuilder, которые выполняются в ОС Microsoft Windows и Linux. Здесь, так же, можно записывать и воспроизводить действия пользователей, а также сценарии для тестирования новых компоновок приложения или ПО. Но полноценное функционирование раскрывается только в IBM среде.
  • TestComplete – еще один инструмент для автоматизированных тестирований десктопных, веб и мобильных приложений. Поддерживает большое количество языков программирования такие, как VBScript, JScript, DelphiScript, C++Script, C#Script, и тестируемых приложений .NET, Java, Visual C++, Visual Basic, Delphi, C++Builder. Также позволяет записывать и воспроизводить действия пользователей и выполнять различные виды тестирования.

На микроволновках

Допустим, в компании решили создать бытовую микроволновку.

Продакт-менеджер:
Коллеги, нам нужно устройство, в котором люди смогут разогревать блюда, но без нагревательного элемента. Чтобы работала быстро. Размер такой-то. Нужна дверца. Обязательно таймер.

Разработчик:
Для этого подходят микроволны. Потребуется сделать вращающуюся платформу и фарадееву клетку.

Продакт:
Ничего не понял, делайте.

Инженер по тестированию:
Постойте!

Все:
Что?

Инженер по тестированию:
От какого напряжения будет работать? Какая будет защита от перепадов? А если включить в розетку вдвое менее мощную? Что там можно будет греть, а что нельзя? Что если включить с открытой дверцей? Что будет, если греть воду? Что если греть камень? А сталь? А кота? А динамит? А если поджечь фитиль? А если туда ничего не положить и включить?

Все крепко думают.

Это и есть работа тестировщика: убедиться, что продукт работает нормально в штатных и внештатных ситуациях. По-умному будет так: «Насколько реальное поведение продукта совпадает с ожидаемым и как это отразится на опыте пользователя?»

Подготовка к экзамену

англоязычный вариант конспектарусский доступен на сайте rstqbFoundations of Software Testing: ISTQB CertificationSoftware Testing: An ISTQB-ISEB Foundation GuideISTQB Foundation Exam Preparation GuideISTQB Glossary of Testing Termsавторизированные тренеры

  1. Основы тестирования.
    В этом разделе изучаются основы тестирования. Здесь объясняется, что такое тестирование и почему оно необходимо, к чему может привести наличие дефектов в ПО, рассказывается о целях тестирования на разных стадиях жизненного цикла ПО. Приводятся 7 принципов тестирования, отдельная глава посвящена психологии тестирования и кодексу этики тестировщика.
  2. Место тестирования в жизненном цикле разработки ПО.
    В этом разделе рассказывается о моделях разработки ПО (V-модель, итеративно-инкрементные модели), об основных уровнях тестирования и их взаимосвязи (компонентное, интеграционное, системное и приёмочное тестирование), о типах тестирования (функциональное/нефункциональное, структурное, подтверждающее и регрессионное тестирование), об особенностях тестирования в период сопровождения.
  3. Статические методы тестирования.
    В разделе рассказывается о методах статического тестирования:
    — рецензирование, здесь рассказывается о типах рецензирования (неформальное, сквозной контроль, технический анализ, инспекция), о ролях и обязанностях — применительно к каждому типу, о факторах успешного проведения рецензирования;
    — статический анализ с помощью инструментальных средств.
  4. Методы проектирования тестов.
    Рассказывается о процессе разработки тестов основанных на спецификациях (это методы «чёрного ящика», сюда входят эквивалентное разбиение, анализ граничных значений, тестирование таблицы решений и таблицы переходов, тестирование по сценариям использования), на структуре (это методы «белого ящика», сюда входит тестирование операторов и покрытия, тестирование альтернатив и покрытия, а также другие методы, которые основаны на структуре ПО) и на основе опыта. Объясняется, как происходит выбор методов тестирования.
  5. Управление тестированием.
    Рассказывается об организации процесса тестирования и почему важна независимость тестирования, о задачах руководителя тестирования и обычного тестировщика, о планировании тестирования (критерии входа/выхода, оценка трудозатрат тестирования), о мониторинге прогресса и контролировании тестирования, об управлении конфигурацией/версиями, о возможных рисках тестирования (риски проекта, риски продукта), об управлении инцидентами.
  6. Инструментальные средства поддержки тестирования.
    В этом разделе рассказывается о типах инструментов, применяющихся в процессе тестирования, их классификация (инструменты для управления тестированием и тестами: инструменты управления тестированием и требованиями, средства управления конфигурацией; инструменты статического тестирования: инструменты рецензирования, статического анализа, моделирования; инструменты для работы с тестовыми спецификациями: инструменты проектирования тестов, подготовки тестовых данных; инструменты выполнения тестов и протоколирования: инструменты выполнения тестов, интегрированной среды модульного тестирования, тестовые компараторы, инструменты измерения покрытия и тестирования безопасности; инструменты для тестирования производительности и мониторинга: инструменты для тестирования производительности, нагрузочного/стресс-тестирования и мониторинга; инструменты оценки качества данных). Далее идет речь об эффективности использования инструментальных средств, о возможных выгодах и рисках, об основных принципах внедрения новых инструментов тестирования в организации.

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

пошаговое руководство

План в двух словах для начинающих:

  1. обучение
  2. практика на биржах для фрилансеров
  3. поиск постоянной работы в фирме.

Пошаговое руководство для тестировщика

Техническое образование приветствуется, но не является обязательным условием. Достаточно быть уверенным пользователем ПК.

Начинаем с обучения. Новичку предлагаются такие варианты:

  • платные курсы – в онлайн или оффлайн-формате;
  • курсы от IT-компаний с последующим трудоустройством.
  • самостоятельное обучение – найти подборку бесплатных уроков и книг;

Новичок может начать изучать тестирование например по книжке «Тестирование DOT COM» автор Роман Савин. Литература ориентирована на начинающих и в оригинале написана на русском языке, что облегчи усвоение материала.

В интернете нет дефицита бесплатных материалов по тестированию, но без контроля преподавателя есть риск пропустить важные материалы. С другой стороны, платные курсы не гарантируют, что вы получите знания «под ключ».

Что делать? Не переставать учиться, отслеживая новости про грядущие вебинары и онлайн курсы. Подписывайтесь на тематический Telegram канал.

Следующий шаг — практика: регистрируемся на биржах для фрилансеров. Популярные платформы для тестировщиков — Test IO, uTest, Upwork, Bugfinders.

В сети действует более 20 платформ для тестировщиков-фрилансеров, большинство из которых — зарубежные.

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

  • Лучшие сайты для изучения английского языка
  • Курсы
  • Приложения
  • Сериалы
  • Игры

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Конечно, это не все типы тестов, которые используются в процессе разработки программного обеспечения. Но знание этих основных категорий поможет вам лучше ориентироваться в теме 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-специалиста включает в себя:— Написание тест-кейсов, тестирование, документирование ошибок (в зависимости от фазы проекта);— Проверка баг-трекинговой системы на предмет появления исправленных ошибок;— Стенд-ап митинги;— Изучение требований, их уточнение у заказчика;— Активное общение с разработчиками;— Оформление тестовой документации.

Testing and Debugging

Testing − It involves identifying bug/error/defect in a software without correcting it. Normally professionals with a quality assurance background are involved in bugs identification. Testing is performed in the testing phase.

Debugging − It involves identifying, isolating, and fixing the problems/bugs. Developers who code the software conduct debugging upon encountering an error in the code. Debugging is a part of White Box Testing or Unit Testing. Debugging can be performed in the development phase while conducting Unit Testing or in phases while fixing the reported bugs.

Previous Page
Print Page

Next Page  

Какие бывают

В ИТ-среде в свя­зи с тести­ро­ва­ни­ем и каче­ством при­ня­то три обо­зна­че­ния:

QA — quality assurance, самый глав­ный по каче­ству;QC — quality control, кон­тро­лёр каче­ства;Tester — тести­ров­щик.

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

QA — это тот, кто дума­ет о каче­стве про­дук­та в целом, при­чём не толь­ко о конеч­ном коде, но и все­го про­цес­са раз­ра­бот­ки. Напри­мер:

Как понять поль­зо­ва­тель­ские сце­на­рии, в кото­рых веро­ят­нее все­го воз­ник­нут ошиб­ки? Как их собрать? Как систе­ма­ти­зи­ро­вать? Как ниче­го не упу­стить? (Напри­мер, как понять, какие имен­но пред­ме­ты люди могут дога­дать­ся засу­нуть в мик­ро­вол­нов­ку, и как защи­тить­ся от иди­о­тов, кото­рые засу­нут туда дина­мит?)Как соеди­нить запро­сы людей, тре­бо­ва­ния биз­не­са и реаль­ные воз­мож­но­сти про­дук­та с точ­ки зре­ния каче­ства? Что если наш про­дукт совсем не дела­ет то, чего поль­зо­ва­те­ли могут ожи­дать? Напри­мер, если они будут сушить в мик­ро­вол­нов­ке кош­ку — это чья про­бле­ма? Будем ли мы с этим что-то делать?Кто, как и в каком поряд­ке будет исправ­лять ошиб­ки? Как мы будем повтор­но тести­ро­вать места с ошиб­ка­ми?Что и как тести­ро­вать от вер­сии к вер­сии про­грам­мы, что­бы это было доста­точ­но быст­ро, но не в ущерб каче­ству?

Мож­но пред­ста­вить, что QA — это дирек­тор по каче­ству, глав­ный чело­век на пути у багов. Он не менее важен, чем глав­ный архи­тек­тор или ИТ-директор. Мно­гие его функ­ции могут пере­се­кать­ся с функ­ци­я­ми дру­гих ИТ-директоров.

QC — это тот, кто сфо­ку­си­ро­ван на тести­ро­ва­нии само­го про­дук­та:

Что имен­но тести­ру­ем? Какие функ­ции, кноп­ки, состо­я­ния, сце­на­рии?Какие резуль­та­ты тести­ро­ва­ния нам нуж­ны? Какие исхо­ды пра­виль­ные, а какие — ошиб­ки?Как авто­ма­ти­зи­ру­ем тесты? Что нуж­но обя­за­тель­но прой­ти руч­ка­ми?Как син­хро­ни­зи­ро­вать рабо­ту несколь­ких тести­ров­щи­ков? Как рас­пре­де­лить зада­чи, обла­сти, слои?

Мож­но пред­ста­вить, что это такой глав­ный бри­га­дир тести­ров­щи­ков. Его рабо­та — что­бы тесты шли ров­но и чёт­ко, без про­блем. Разу­ме­ет­ся, очень полез­но, если он уме­ет непо­сред­ствен­но тести­ро­вать.

Тести­ров­щик — это тот, кто тести­ру­ет про­дукт: про­хо­дит его руч­ка­ми или пишет авто­ма­ти­че­ские тесты; опи­сы­ва­ет баги; обща­ет­ся с раз­ра­бот­чи­ком по пово­ду этих багов; зано­во тести­ру­ет исправ­лен­ное.

What Is Quality Assurance?

Quality assurance is a way to avoid mistakes in the project’s product or service, and thus prevent problems for your stakeholders. It’s the part of quality management that focuses on maintaining the integrity of the product or service, which gives stakeholders the confidence that their quality requirements will be met. It is, therefore, a foundational pillar of project management.

The Difference Between Quality Assurance and Quality Control

The difference between quality assurance and quality control is subtle but significant, although both terms are often used interchangeably to describe the quality management of the project’s product or service.

Get real-time data for better quality management with ProjectManager’s project dashboards. Try it for free!

The difference is a matter of where the focus occurs in a project. Quality control is more concerned with quality earlier in the project process. Assurance, though, is more about the implementation of inspection and structured testing throughout every phase of the project.

Quality assurance uses a quality system that is set up to implement administrative and procedural tasks, which create goals for the product or service of the project. This provides a systematic measurement and comparison with a standard, along with a monitory of processes and a feedback loop to make sure no errors pass through production. Quality control, however, is primarily just focused on process output.

Principles of Quality Assurance

There are two principles to quality assurance. One is “fit for purpose,” meaning the product or service meets its intended purpose. The other is “right first time,” in which any mistakes are immediately dealt with.

With the two above principles in play, the goal is to make the product or service work correctly all the time through the management of the variables in the project. To do so, quality assurance involves the management of the quality of raw materials, assemblies, products and components; services related to production; and the management, production and inspection process.

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.

GeekBrains. «Факультет тестирования ПО»

Свои курсы тестировщика онлайн предлагает и эта образовательная школа.

Первый называется «Факультет тестирования ПО».

Он подойдет:

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

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

Во второй четверти обучающие осваивают:

  • Инструменты API-тестирования
  • Подходы к тестированию
  • Консоль разработчика в браузере
  • Юзабилити и многое другое

Длительность обучения – год. Занятия проводятся дважды в неделю. Стоимость до 16 сентября от 2 907 руб./мес. Предлагается рассрочка на 36 месяцев. Вы получаете в портфолио 5 проектов, диплом об окончании курса и гарантию трудоустройства после обучения.

Добавить комментарий

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