Тестирование — это кропотливый труд. Однако новичкам найти полезные ресурсы бывает сложнее, чем отыскать баг. Решили помочь и попросили коллег-экспертов из Selectel поделиться рекомендациями.
Python-библиотека Requests
Одно из ключевых преимуществ библиотеки — простота. При тестировании бэкенда с помощью Requests можно написать много тестов для проверки API.
С ее помощью удобно работать с HTTP-запросами, тестировать методы POST, GET, PUT, DELETE и сравнивать получаемые ответы. При этом можно проверить возвращаемые сервером данные (response), в том числе код ответа. Это обеспечивает покрытие и негативными, и позитивными сценариями.
Искусство тестирования программ
Ключевые преимущества — хорошая структура и множество примеров. Для новичков книга поможет сформировать первичную базу знаний. Однако как и в случае с изданием «Компьютерные сети», профи могут периодически обращаться к подобным изданиям как к справочнику.
Труд Гленфорда Майерса содержит описание классических принципов тестирования мобильных и интернет-приложений, проектирования тестов. Помимо прочего, из книги вы узнаете, как применять коллективный подход при разработке и тестировании приложений.
Инструмент автотестирования на Python
Инструмент Tox позволяет подготовить и настроить среду для тестирования с помощью конфигурационного файла tox.ini. При запуске создает виртуальные окружения (с учетом указанных версий Python), устанавливает зависимости и запускает тесты.
Тренажер CSS diner
Полезно перепроходить и новичкам, и профи. Вы научитесь выбирать селекторы в автотестах и избегать длинных конструкций.
Перед пользователем на экране предстает группа HTML-элементов: прыгающих яблок, тарелок и бенто. Чтобы убрать любой из предметов, нужно написать подходящий CSS-селектор.
Rally и Tempest
Инструменты, с которыми работаю достаточно давно. В связке они обеспечивают достаточное и актуальное покрытие системы.
Tempest — обширная база тестов на Python для компонентов OpenStack. При этом с каждым релизом последнего тесты актуализируются. Также можно установить дополнительный готовый фреймворк или написать свой, чтобы расширить базу тестов.
С помощью Rally можно запускать эти тесты, создавать окружения для верификации, тестировать производительность и генерировать графические отчеты. Инструмент позволяет запустить полный набор тестов или отдельные наборы.
Узнать, как мы автоматизировали тестирование OpenStack с помощью Rally и Tempest →
Сети — это база
«Компьютерные сети»
Сети пригодятся во многих сферах IT, тестирование — не исключение. В книге простым языком описываются базовые термины, ключевые сетевые протоколы и технологии. Подойдет для студентов и начинающих специалистов.
Для состоявшихся специалистов издание может стать подробным справочным материалом, который пригодится в сложной ситуации. Авторы разбирают в книге вопросы сетевой безопасности, беспроводной передачи данных, сетей TCP/IP и не только.
Курс «Как работают сетевые протоколы»
В Академии Selectel есть бесплатный образовательный курс — «Как работают сетевые протоколы». В нем подробно рассматриваем сетевую модель OSI и ряд самых часто используемых протоколов. Всего 12 материалов, на знакомство с которыми уйдет около трех с половиной часов.
Курс будет интересен тем, кто только начинает работать с кластерами, что-то слышал о Kubernetes, но никогда с ним не работал и хочет разобраться в теме. Все статьи и инструкции можно изучать в своем темпе и любом порядке.
Интересные материалы от экспертов
Как тестировать Kubernetes
Kubernetes — ключевой инструмент для оркестрации контейнеров на рынке, поэтому его тестирование требует особого подхода. Для тривиальных сценариев можно использовать kubectl или Sonobuoy. Однако для сложных интеграционных тестов, которые работают с Kubernetes API, понадобятся кастомные решения. Артем, инженер по тестированию в Selectel, рассказал о настройке таких тестов с помощью Python.
Узнать, как тестировать кластеры Kubernetes→
Как провести юнит-тестирование приложений с БД
Сегодня многие приложения используют трехуровневую архитектуру с БД в слоях данных. Юнит-тесты упрощают поддержку продукта, но когда в архитектуре присутствует база данных, часто приходится искать нестандартные решения.
Разработчик Владимир делится методами и инструментами, которые используют при разработке продуктов Selectel. Автор рассматривает способы тестирования с Python 3, PyTest и SQLAlchemy, но подходы можно адаптировать для других инструментов.
Узнать больше о юнит-тестировании приложений с БД →
Как решить проблему с остаточными ресурсами
Автоматизация тестирования — важная часть работы с облаками, но всегда есть свои нюансы. Одна из проблем — «подвисшие» ресурсы после тестов, которые занимают проектные квоты и влияют на стабильность пайплайна. Валентина, разработчик по тестированию в Selectel, поделилась, как решить эту задачу с помощью инструмента Tempest Cleanup.
Узнать с какими трудностями столкнулись, как их преодолевали и что получилось →
Советы начинающим тестировщикам
Не бойтесь негативного опыта и отказов — они тоже важны. Порефлексируйте и проанализируйте, что пошло не так, чтобы использовать это как мотивацию для роста. Учение на ошибках поможет вам быстрее развиваться в профессии и становиться более ценным специалистом. Помните, что каждый опыт, даже неудачный, — это шаг вперед!
Всегда полезно изучать официальную документацию — так вы лучше поймете продукт и сэкономите время. На старте многие пренебрегают этим. Также мне помогает поддерживать навыки программирования платформа LeetCode, где можно решать задачи по кодированию.