Обязательно ли тестировщикам писать CodeРуководство по навыкам и карьере
⚡ Умное резюме
Тестировщикам не всегда нужно писать код, но знание программирования определяет, насколько успешной может быть карьера в сфере тестирования. Для ручного тестирования код не требуется, в то время как для автоматизированного тестирования и SDET необходимы настоящие навыки программирования.
Следует ли тестировщикам учиться Code?
Очень распространенный вопрос, который возникает в программном обеспечении Тестирование Вопрос, который должен задать кандидат, — должны ли тестировщики писать код? Прежде чем ответить на него, необходимо получить полное представление о различных ролях в сфере тестирования программного обеспечения.
Как правило, контроль качества программного обеспечения делится на две категории:
- Аналитик качества: Аналитик качества проверяет функциональность и полноту тестов. Он проверяет программное обеспечение только после завершения этапа разработки. Эта должность не такая технически сложная, как должность разработчика, и может не требовать написания кода.
- SDET (инженер по тестированию программного обеспечения): С другой стороны, SDET — это специалист, понимающий внутреннее устройство продукта. SDET разбираются в концепциях баз данных и языках программирования, а также участвуют в проектировании продукта, проектировании данных и пользовательских интерфейсов. SDET работают на этапе разработки и требуют знаний в области программирования. Поэтому роль SDET более сложна, поскольку она сочетает в себе работу разработчика и работу тестировщика. Автоматизированные тестировщики (использующие такие инструменты, как...) QTP и Selenium) также могут быть классифицированы как SDET.
На приведенной ниже диаграмме показано сравнение этих двух вариантов. tracks, показывающие, на каком этапе разработки находится каждый из них.
Таким образом, исходя из роли тестировщика, можно определить, требуются ли знания в области программирования. Давайте ответим еще на несколько вопросов, связанных с этим.
Качества хорошего тестировщика
Методология тестирования программного обеспечения варьируется в зависимости от потребностей и спецификаций программного продукта. Хороший специалист по контролю качества или тестировщик программного обеспечения играет важную роль в завершении процесса тестирования, независимо от его типа. тип тестирования проект этого требует.
К качествам хороших тестировщиков относятся:
- Хорошее знание предметной области
- Хорошее логическое мышление
- Хорошие знания и навыки программирования.
Знание предметной области и логическое мышление являются обязательными для каждого тестировщика. Однако навыки программирования сильно различаются в зависимости от роли, что и рассматривается в следующем разделе.
Какой уровень знаний в области программирования необходим тестировщику?
Написание кода и его отладка — это работа разработчика. Тогда возникает вопрос: зачем вообще тестировщикам нужны знания в области программирования?
Рассмотрим некоторые причины, по которым умение программировать становится необходимым для тестировщиков. Приведенная ниже иллюстрация суммирует области применения этих знаний.
Тестирование программного обеспечения, по сути, включает в себя два подхода: Ручное тестирование и Автоматизация тестированияНа продвинутом уровне тестирование можно классифицировать как тестирование «белого ящика», «черного ящика» или «серого ящика». Различные методы тестирования требуют от тестировщиков разного набора навыков.
- Во время выступления Испытание черного ящикаДля тестирования не требуются знания программирования. Тестировщик просто проверяет программное обеспечение, вводя данные, а затем проверяя результат.
- Тестирование белого ящикаТестирование, или тестирование, управляемое кодом, требует знания кода. Знание таких концепций программирования, как... C, С#, C++ и концепции СУБД может быть полезным
- Тестирование методом «серого ящика» Находится посередине между этими двумя крайностями: тестировщик обладает частичными знаниями о внутренней структуре, поэтому чтение кода полезно, даже если его написание не всегда требуется.
- Для работы в области автоматизированного тестирования или тестирования методом «белого ящика» тестировщикам необходимы хорошие знания программирования. Это связано с тем, что автоматизированное тестирование включает в себя анализ покрытия операторов, покрытие кода и т. д. цикломатическая сложностьИ для понимания всех этих концепций необходимы хорошие знания программирования и баз данных.
- SQL (Structured Query Language) — иногда тестирование требует проверки базы данных. Поэтому тестировщикам необходимы базовые знания команд SQL, таких как SELECT, CREATE и UPDATE.
- SQL-инъекция — SQL-инъекция Это один из методов взлома баз данных путем внедрения нежелательных команд. Хорошее знание... JavaСценарий и SQL Использование этих команд может оказаться полезным для предотвращения подобных угроз безопасности программного обеспечения.
- Гибкое тестирование — В гибком тестировании вся команда отвечает за качество программного обеспечения. На протяжении всего гибкого процесса тестировщик работает с одним или несколькими программистами над написанием тестов. Поэтому для создания автоматизированного теста тестировщикам крайне важно знать код.
Важные советы для аналитика по обеспечению качества программного обеспечения
- Знание ручного тестирования, а также языков программирования, таких как... JavaСценарий Это повысит ваши навыки тестирования.
- В качестве тестировщика вам следует приобрести базовые знания языков программирования, таких как... Java и VBScriptЭто не обязательно, но очень ценно. Знание SQL и концепций СУБД также является хорошей практикой.
- Научитесь читать стек tracи журнал сборки. Чтение кода — это более простая задача, чем его написание, и это уже само по себе делает его необходимым. прецедент отчеты гораздо точнее.
Помимо перечисленного, существует несколько общих навыков, которые пригодятся каждому аналитику по контролю качества программного обеспечения:
- Общительность
- Аналитическое мышление
- уместность
Умение программировать в сфере тестирования программного обеспечения помогает аналитику или тестировщику качества на протяжении всей карьеры. В следующем разделе это требование рассматривается для каждой роли.
Сравнение ролей, требующих программирования, и ролей, не требующих его.
На вопрос «Нужно ли тестировщикам уметь программировать?» нет однозначного ответа, потому что «тестировщик» — это не одна конкретная профессия. В таблице ниже показано соответствие распространенных ролей в тестировании уровню программирования, который реально требуется для каждой из них.
| роль тестировщика | Типичная работа | Необходимый уровень программирования |
|---|---|---|
| Ручной/функциональный тестировщик | Разрабатывает и выполняет тестовые сценарии, сообщает о дефектах. | Ничто |
| разведочный / тестировщик удобства использования | Незапланированное расследование, обратная связь от пользователей. | Ничто |
| Тестировщик предметной области/бизнес-процессов | Проверяет бизнес-правила на соответствие спецификациям. | Ничто |
| Тестировщик баз данных | Проверяет сохраненные данные, соединения и правила целостности. | Только SQL |
| тестировщик API | Создает утверждения запроса и ответа на основе JSON или XML. | Базовый |
| Тестировщик автоматизированных систем | Пишет и поддерживает скрипты на SeleniumДраматург или Cypress | Intermediate |
| тестировщик производительности | Скрипты загружают сценарии и сопоставляют динамические значения. | Intermediate |
| СДЭТ | Разрабатывает фреймворки, тестовые среды и конвейеры непрерывной интеграции. | Уровень разработчика |
Воспринимайте таблицу как карьерную лестницу, а не как стену. Большинство тестировщиков начинают с позиций, не требующих написания кода, а затем спускаются вниз по мере роста уверенности в своих навыках программирования. Ничто не мешает опытному тестировщику, работающему вручную, оставаться в верхних рядах на протяжении всей карьеры, но именно в нижних рядах обычно располагаются бюджеты на автоматизацию и должности старших специалистов.
Какие языки программирования следует изучить тестировщику?
Тестировщикам не нужны все языки программирования. Обычно достаточно двух: одного универсального языка для автоматизации и SQL для проверки данных. Приведенное ниже сравнение показывает, в чем преимущества каждого варианта.
| Язык | Где это помогает тестировщику | Почему выбирают это |
|---|---|---|
| Python | Selenium а также сценарии для драматургов, наборы тестов PyTest, проверка данных. | Простейший синтаксис, самый быстрый путь к первому работающему тесту. |
| Java | Selenium с TestNG or JUnit, Appiumкорпоративные структуры | Наиболее востребованный запрос в крупных организациях |
| JavaСценарий / TypeScript | CypressДраматург, тестирование интерфейса и компонентов. | Соответствует языку, который уже используется тестируемым приложением. |
| SQL | Проверка бэкэнда, подготовка и завершение тестовых данных. | Полезно даже в тех сферах, где автоматизация браузера никогда не требуется. |
| Сценарии оболочки | Анализ логов, настройка среды, этапы выполнения задания CI. | Небольшие усилия, немедленная отдача изо дня в день. |
По возможности выбирайте язык, который уже использует ваша команда разработчиков. Совместное использование языка означает совместную проверку кода, общие библиотеки и разработчиков, которые могут помочь, если тест сломается. Тестировщик, свободно владеющий одним языком и хорошо знакомый с SQL, покрывает подавляющее большинство задач по автоматизации.
Как начать обучение Code в качестве тестировщика
Освоение программирования параллельно с полноценной работой по тестированию — это вопрос последовательности, а не таланта. Описанные ниже шаги позволяют перейти от полного отсутствия навыков программирования к созданию поддерживаемого набора автоматизированных тестов, не отказываясь при этом от повседневного выполнения тестов.
Шаг 1) Изучите основы языка. Для чтения и написания тестового скрипта достаточно переменных, условных операторов, циклов, функций и коллекций. Теория объектно-ориентированного программирования может подождать.
Шаг 2) Добавьте SQL на раннем этапе. Несколько операторов SELECT с объединениями и условиями WHERE позволяют проверить, что именно хранит приложение, что значительно повышает точность отчетов об ошибках.
Шаг 3) Автоматизируйте одну скучную задачу. Преобразовать один повторяющийся регресс Проверьте скрипт. Одного работающего теста хватает на большее, чем на месяц обучающих уроков.
Шаг 4) Изучите не только инструмент, но и структуру тестирования. Утверждения, фикстуры, настройка и завершение работы, а также отчеты имеют большее значение, чем простое использование программы записи. Именно здесь скрипты превращаются в полноценный набор инструментов.
Шаг 5) Используйте систему контроля версий. Вносите тестовый код в Git так же, как это делают разработчики. RevПросмотр различий в коде также помогает тестировщикам научиться читать код, используемый в рабочей среде.
Шаг 6) Подключите пакет программ к конвейеру обработки данных. Тесты, которые запускаются автоматически при каждой сборке, приносят пользу; тесты, которые запускаются только на ноутбуке, — нет. Этот шаг приводит тестирование в соответствие с более широкой системой. жизненный цикл тестирования программного обеспечения.
Для освоения автоматизации потребуется от трех до шести месяцев постоянной практики. Процесс обучения намеренно поэтапный, поэтому каждый шаг приносит ощутимые результаты перед началом следующего.


