Connect with us

Профессии IT

Что такое QA, QC, тестирование и кто такой тестировщик

QA,QC
314

Что такое QA, QC, тестирование и кто такой тестировщик

 

Большинство не различает между собой термины Quality Assurance (QA), Quality Control (QC) и просто Тестирование, считая их синонимами, по этому определимся с терминами.

 

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

 

Quality Assurance engineer — это специалист по обеспечению качества, деятельность которого направлена на улучшение процесса разработки ПО, предотвращение дефектов и выявление ошибок в работе продукта.

Quality Assurance включает в себя Quality Control наряду с другими процессами по улучшению качества работы компании.

 

Quality Control (QC) Контроль качества — это часть комплекса QA в процессе разработки ПО, которая отвечает за анализ результатов тестирования, поиск ошибок и их устранение. Действия, проводимые над продуктом в процессе разработки, для получения информации о его актуальном состоянии: насколько продукт готов и соответствует ли он требованиям качества в каждый конкретный промежуток времени. QC ориентирован на проверку конкретного продукта, в него входят различные процессы, такие как анализ кода, технические обзоры, анализ дизайна, тестирование(Test Management, Test Analysis, Test Design) и прочее.

Говоря другими словами, Quality Assurance гарантирует, что процесс поставлен правильно и дает предсказуемый результат, в то время как Quality Control гарантирует, что продукт удовлетворяет указанному набору требований. Насколько эффективно работает отдел продаж предприятия, тоже входит в компетенцию QA.

Специалисты QA создают и реализуют различные тактики для повышения качества на всех стадиях производства: подготовка и установка стандартов, анализ качества, выбор инструментов, предотвращение ошибок и постоянное усовершенствование процесса.

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

Еще более узкая специальность в рамках QA/QC — тестировщик ПО, который проверяет готовый продукт на наличие ошибок (багов) и несоответствие требованиям, и затем документирует найденные дефекты и пути их воспроизведения.

Тестирование программного обеспечения (Software Testing) — одна из техник контроля качества, включающая в себя активности по планированию тестовых действий, дизайну тестов, выполнению этих тестов и анализу полученных данных. Тестирование — это уже непосредственно процесс проверки результатов работы на соответствие установленным требованиям. А тестировщик — это специалист, который занимается такой проверкой. Он тестирует компоненты продукта или весь продукт целиком на предмет ошибок или неточностей разработки.

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

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

 

Специализацию тестировщиков можно разделить по направлениям: тестирование безопасности, производительности, юзабилити, а также по методам написания тестов: ручное и автоматизированное тестирование.

Сейчас большинство компаний устроено таким образом, что тестировщиками в них работают в основном сотрудники на начальном этапе карьеры — то есть это junior-специалисты по тестированию. Они выполняют проверку софтов по готовым тест-кейсам. Специалисты более высокого уровня (тест-аналитики, автотестеры, менеджеры по тестированию) помогают им на других этапах разработки.

QA-тестирование различается по степени доступа программиста к исходному коду проверяемого сервиса:

  • Стратегия «белого ящика» (модульное) — тестирование с доступом к коду – данные о внутреннем устройстве продукта известны. Программу можно разбить на части (модули) и исследовать на ошибки каждую из частей системы. Таким образом, осуществляется модульное тестирование.
  • Стратегия «чёрного ящика» — тестирование без доступа к коду. Программа исследуется только с внешней стороны, знания о внутренней системе продукта отсутствуют. Проверка проводится только со входами и выходами. Такой способ тестирует выполнение ПО своего функционала, производительность системы и работоспособность нового кода.
  • Стратегия «серого ящика» — тестирование с частичным доступом к коду. Программист знаком со структурными данными исследуемого продукта, но выполняет проверку на основе пользовательского уровня. Кодировка тестирования прописывается согласно знаниям алгоритма программы.

Тестировщику следует быть внимательным в работе с большими объёмами данных, а также уметь подстраиваться под различные задачи и быстро переключаться между ними.

4 основные роли:

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

Для каждой исследуемой системы подходит определённый вид тестирования:

  1. Функциональное тестирование — изучение реестра опций отдельных компонентов, системы. Проверка основана на функционале, выполняющемуся системой. Этот вид тестирования отвечает на вопрос — что делает программа и для чего она нужна?
  2. Нагрузочное тестирование — оценка устойчивости кода системы на нагрузку большого количества данных. Учитываются такие показатели, как скорость выполнения операций, количество пользователей на платформе, приемлемая работоспособность приложения при больших нагрузках.
  3. Автоматизированное тестирование —проверка в автоматическом режиме. Разработчик создаёт и оптимизирует проверочный код для такого режима. Используется для ускорения процессов тестирования.
  4. Юзабилити тестирование — проверка комфортности использования интерфейса для пользователя. Разработчик выясняет, насколько система удобна в работе и соответствует ли всем ожиданиям. Тестируются сайты, приложения для смартфонов, компьютеров и планшетов, бизнес-процессы.
  5. Конфигурационное тестирование — исследование работоспособности программы на платформе, ПК, драйверах. Проверяется взаимодействие продукта с конфигурациями среды. Также исследуется функциональность системы для пользователя этой среды.
  6. Тестирование безопасности — проверка продукта на анализ угроз, связанных с вирусами и хакерскими атаками. Основная задача тестировщика — максимально обезопасить проверяемый продукт.
  7. Игровое тестирование — исследование игры на всевозможные ошибки. Игру и ее части нужно проходить большое количество раз. Чаще всего, исправления одной ошибки ведёт к другой. Если игра имеет версии не только на компьютере, но и на смартфоне, планшете — проверку необходимо осуществлять и для этих устройств.

 

Что нужно знать тестировщику:

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

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

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

Карьерный рост:

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

 

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

 

Нажмите что бы оставить комментарий

Ответить

Ваш адрес email не будет опубликован.

Лучшие сервисы стриминга музыки в 2019 году

Сервисы

Телевидение Wink Ростелеком: Samsung LG, Sony, Phillips, Android TV

Ростелеком

Ноутбуки Asus не видят жесткий диск. Автоматический вход в BIOS при старте

Гаджеты

LG WEB OS: приложения, обновления, настройка, проблемы со звуком

Гаджеты

Advertisement Яндекс.Метрика

Digital2.ru - Тренды, Профессии IT, WEB- разработка, Вакансии, Автоматизация, Цифровая экономика
Свободное копирование и распространение материалов с сайта Digital2.ru
разрешено только с указанием активной ссылки на Digital2 как на источник.
Copyright 2018 - 2020 © All rights reserved

OPGIO.COM

Connect