650

ТОП-10 терминов в автоматизированном тестировании

Профессия QA-инженера делится на две подотрасли – мануальное и автоматизированное тестирование. И если в мануальном все более или менее понятно, то с автоматическим у начинающих часто возникают вопросы, так что мы решили сосредоточиться именно на этом направлении. Чтобы вам было понятнее, каждый термин мы попытались проиллюстрировать на реальных примерах. А теперь к делу!

Релиз-кандидат, или на английском – Release Candidate (RC)

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

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

Ворота качества или Quality gate

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

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

Трассировка стека или Stack trace

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

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

Журнал или Log

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

Критическое изменение или Breaking change

Довольно интересный термин, часто понимаемый неправильно. Дело в том, что с технической точки зрения критическими считаются изменения, способные полностью нарушить систему автотестов, а вот для конечного пользователя они могут выглядеть совсем незначительными. К примеру, в одних проектах критическим изменением станет существенная перестройка архитектуры кода, а в других – изменение цвета кнопки «Купить» с желтого на зеленый.

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

Регрессивное тестирование или Regression testing

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

Також варто зазначити, що під цим терміном нерідко розуміють підготовку реліз-кандидату, про який ми писали вище. В такому разі Regression testing включає роботи з планування, збору інформації про проведений обсяг і типи тестування, вхідних даних стосовно виконаних тестів, формування баг-репорту, якщо помилки були виявлені, та створення звіту щодо дебагу та повторно тестування.

Нефункциональные требования или Non-functional requirements

Non-functional requirements или сокращенно NFR — это критерии, по которым проводится оценка автоматических тестов. Здесь имеются в виду такие критические показатели как скорость, процент покрытия кода, количество и т.д.

Стратегия ответвления или Branch Strategy

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

Для понимания принципа работы Branch Strategy ее можно сравнить с деревом: каждая «ветвь» кода содержит выполнение конкретной задачи — для этого она ответвляется от основной, а после завершения робот сливается с ней снова.

Рефакторинг кода или Code Refactoring

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

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

К тому же рефакторинг поднимает настроение в команде, ведь всем приятнее пользоваться новыми и эффективными инструментами, чем «ржавыми» старыми.

Стабилизация кода или Code Stabilization

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

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

Выводы

Все перечисленные термины — лишь небольшая часть того, чему вы можете научиться на курсе QA-инженеров в лаборатории SpaceLAB. Так что если вы хотите построить карьеру в индустрии IT и стать профессиональным тестировщиком — следите за нашим телеграмм-каналом, где мы заблаговременно объявляем о наборе в группы. Кстати, обучение проходит полностью бесплатно, а по его завершении у вас есть шанс получить первое место работы по новой специальности в одной из крупнейших IT-компаний Украины.