Добавить в корзинуПозвонить
Найти в Дзене

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

Поговорим сегодня о том, что нужно знать, чтобы работать тестировщиком. Вот мой топ: 1. Теория тестирования и тест-дизайн. Это базовые знания, чтобы начать тестировать. То есть вы должны уметь составлять тест-кейсы и чек-листы, а также баг-репорты. Тест-дизайн поможет составлять тест-кейсы так, чтобы на минимальном наборе проверок покрыть все сценарии использования ПО: позитивные и негативные. Теория также поможет оценивать приоритетность и важность проверок, чтобы их можно было комбинировать в условиях ограниченного времени.  2. Архитектура ПО. Хорошо бы понимать, из чего состоит ПО. Что такое фронт, что такое бэк, что такое база данных и как это все взаимодействует. Какие вообще могут быть архитектуры. И главное, что вы, как тестировщик, будете тестировать и в каком порядке.  3. Devtools. Это набор инструментов, встроенных в браузер для проверки работы сайта (веб-приложения). Здесь можно увидеть, как написан сайт, что происходит на нем, когда пользователь что-то нажимает и т.д. Возм

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

1. Теория тестирования и тест-дизайн. Это базовые знания, чтобы начать тестировать. То есть вы должны уметь составлять тест-кейсы и чек-листы, а также баг-репорты. Тест-дизайн поможет составлять тест-кейсы так, чтобы на минимальном наборе проверок покрыть все сценарии использования ПО: позитивные и негативные. Теория также поможет оценивать приоритетность и важность проверок, чтобы их можно было комбинировать в условиях ограниченного времени. 

2. Архитектура ПО. Хорошо бы понимать, из чего состоит ПО. Что такое фронт, что такое бэк, что такое база данных и как это все взаимодействует. Какие вообще могут быть архитектуры. И главное, что вы, как тестировщик, будете тестировать и в каком порядке. 

3. Devtools. Это набор инструментов, встроенных в браузер для проверки работы сайта (веб-приложения). Здесь можно увидеть, как написан сайт, что происходит на нем, когда пользователь что-то нажимает и т.д. Возможностей в нем очень много. Знать его и уметь пользоваться - обязательно для тестировщика.

4. Основый html и сss. html - это язык разметки текста: заголовки, абзацы, ссылки, кнопки - это все элементы html. Css - это стили, на каждый элемент в отдельности или на группу элементов можно задавать разные цвета, размеры, шрифты и пр. Тестировщик должен хотя бы примерно понимать это и уметь тестировать интерфейс в разных браузерах, в разных разрешениях, с разным контентом. 

4. Api. Это программный интерфейс для для взаимодействия разных приложений между собой, например, бэк и фронт. Нужно понимать, как это работает, и уметь его тестировать. Для тестирования Api в первую очередь разберитесь с таким инструментом, как Postman: через него легко отправлять запросы, имитируя, как это отправлял бы сайт на бэк. Сюда же добавим разные форматы данных (json, xml и тд), а также типы данных (число, строка, булево и пр.). 

5. SQL. Это язык запросов к базам данных. Иногда во время тестирования нужно посмотреть базу данных напрямую, например, чтобы проверить, как отработал бэк или правильные ли данные пришли на фронт. Чтобы посмотреть что-то в базе данных, нужно уметь составлять sql-запросы и понимать, как это работает. А иногда протестировать нужно некую логику в самой базе данных, например, изменение в одной таблице может тригерить изменения в другой таблице. Такие кейсы в первую очередь нужно тестировать напрямую в БД, а потом уже с стороны пользователя. 

6. Логи. Умение читать логи для тестировщика важно - иногда без них локализовать ошибку просто не получится. 

В целом из базовых вещей, наверное, и все. Но, чтобы конкурировать на рынке труда, лучше знать больше. 

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

8. Linux. Глубокое знание linux не нужно, но хорошо бы уметь работать в командной строке, это не должно вас пугать. Большинство серверов работают на Linux. Также я бы посоветовала почитать про виртуальные машины и докер-контейнеры. Эти знания не будут лишними.

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

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

11. СI/CD. Это неприрывная интергация и доставка обновлений в ваше приложение. Общее понимание, как это работает, нужно иметь. На некоторых проектах настройка CI/CD ложится на плечи тестировщиков. 

12. TCP/IP. Это стек протоколов для передачи данных по сети. Общие знания в этой области также будут полезными в тестировании. 

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

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