1. Введение в профессию: жизненный цикл ПО, цели тестирования и психология QA-инженера
Введение в профессию: жизненный цикл ПО, цели тестирования и психология QA-инженера
Добро пожаловать в курс «Основы тестирования ПО: Путь с нуля до Junior QA»! Вы стоите на пороге увлекательной профессии, которая сочетает в себе аналитику, творчество, технические навыки и детективное чутьё.
Многие новички считают, что работа тестировщика заключается в том, чтобы просто «тыкать кнопки» и ломать программы. Это один из самых распространенных мифов. На самом деле, тестирование — это искусство исследования, обеспечения качества и предотвращения катастроф.
В этой первой статье мы разберем фундамент, на котором строится вся IT-индустрия: чем на самом деле занимаются QA-инженеры, как создаются программы и почему исправление ошибки может стоить как чашка кофе или как новый автомобиль, в зависимости от того, когда вы её нашли.
QA, QC и Testing: Давайте разберемся в терминах
В вакансиях вы часто будете видеть аббревиатуру QA (Quality Assurance). Но также существуют понятия QC (Quality Control) и просто Testing (Тестирование). Часто их используют как синонимы, но это не совсем верно. Представьте себе матрешку или вложенные круги.
!Иерархия понятий обеспечения качества
1. Testing (Тестирование)
Это самый узкий круг. Это процесс проверки системы на соответствие требованиям. Суть: Вы берете программу, выполняете определенные действия (тест-кейсы) и сравниваете полученный результат с ожидаемым. Пример: Вы нажали кнопку «Купить», и товар должен попасть в корзину. Если он не попал — тест провален.2. QC (Quality Control — Контроль качества)
Это уровень выше. QC включает в себя тестирование, но также занимается анализом результатов. Это набор действий, направленных на проверку готовности продукта. Суть: QC отвечает на вопрос: «Соответствует ли продукт требованиям качества прямо сейчас?». Это поиск дефектов до того, как продукт попадет к пользователю. Пример: Проверка кода, ревью документации, запуск тестов.3. QA (Quality Assurance — Обеспечение качества)
Это самый широкий круг, охватывающий весь процесс разработки. QA — это превентивные меры. Суть: QA отвечает на вопрос: «Как нам выстроить процесс так, чтобы ошибки вообще не появлялись?». Это настройка процессов, выбор инструментов, обучение команды. Пример: Внедрение стандартов кодирования, улучшение процесса постановки задач, чтобы программисты сразу понимали, что от них требуется.> QA — это про процесс. QC — это про продукт. Тестирование — это про конкретные проверки.
Жизненный цикл программного обеспечения (SDLC)
Программы не появляются из воздуха. Они проходят долгий путь от идеи до удаления с сервера. Этот путь называется SDLC (Software Development Life Cycle).
Понимание SDLC критически важно для тестировщика, потому что вы должны знать, когда и что вам нужно делать.
!Основные этапы жизненного цикла разработки ПО
Этапы SDLC:
Цена ошибки: Почему тестировать нужно рано?
Существует «Золотое правило тестирования»: чем позже найдена ошибка, тем дороже её исправить.
Представьте, что ошибка допущена в требованиях (аналитик забыл написать, что кнопка «Купить» должна быть активна только для зарегистрированных пользователей).
* Если QA нашел это на этапе требований: Аналитик просто дописывает одну строчку в Word. Цена: 5 минут работы. * Если ошибку нашли на этапе дизайна: Дизайнеру нужно перерисовывать макеты состояний кнопки. Цена: 1 час работы. * Если ошибку нашли на этапе разработки: Программисту нужно переписывать логику. Цена: 4 часа работы. * Если ошибку нашли после релиза: Пользователи не могут купить товар, бизнес теряет деньги, репутация падает, нужно срочно выпускать патч (исправление). Цена: Тысячи долларов и нервы всей команды.
!Экспоненциальный рост стоимости ошибки
Цели тестирования
Зачем мы вообще это делаем? «Чтобы найти баги» — самый популярный, но не единственный ответ.
Основные цели тестирования:
> Важно: Цель тестирования — не доказать, что багов нет (это невозможно), а показать наличие багов и снизить неопределенность.
Психология QA-инженера
Хороший тестировщик отличается от плохого не знанием инструментов, а складом ума.
1. Деструктивное vs Конструктивное мышление
Разработчик — творец. Он строит «здание» и любит его. Тестировщик должен посмотреть на это здание и подумать: «А что будет, если я пну эту несущую стену? А если начнется землетрясение?». Но ваша цель — не разрушить ради разрушения, а разрушить сейчас, чтобы оно не рухнуло потом на пользователей. Это конструктивная деструктивность.2. Критическое мышление
Не верьте на слово. — «Я починил этот баг, проверяй», — говорит разработчик. — «Я проверю», — думает QA, и проверяет не только этот баг, но и то, не сломалось ли что-то соседнее.3. Дипломатия и коммуникация
Никто не любит, когда ему указывают на ошибки. Ваша работа — сообщать людям плохие новости («Твой код не работает»).Правила хорошего тона QA: * Критикуй продукт, а не личность. Не «Ты допустил ошибку», а «В модуле авторизации найдена ошибка». * Будь объективен. Оперируй фактами, логами и скриншотами, а не эмоциями. * Мы в одной лодке. Разработчик и Тестировщик — не враги. У вас одна цель: качественный продукт.
4. Любопытство
Хороший QA — это ребенок, который спрашивает «А почему?». Почему программа ведет себя так? А что если я введу сюда -1? А если я отключу интернет в момент загрузки?Резюме
Сегодня мы заложили первый камень в фундамент вашего образования.
* QA — это процесс обеспечения качества, QC — контроль качества, а Тестирование — непосредственная проверка. * SDLC — это жизнь программы от идеи до релиза. Тестировщик нужен на каждом этапе. * Чем раньше найдена ошибка, тем дешевле её исправить. * Тестировщик — это не враг разработчика, а лучший друг качества.
В следующей статье мы погрузимся в виды тестирования и узнаем, чем «Черный ящик» отличается от «Белого», и почему не всё можно автоматизировать.