Yadro AQA Meetup & PythonNN
Понятные тесты, плагины к Pytest и open source
Трансляция
Этот митап — совместная инициатива сообщества Python NN и компании-разработчика вычислительной техники YADRO.
Программа
Понятные тесты
Одна из основных проблем тестирования в том, что люди относятся к тестам как к коду второго сорта. Часто используют CTRL+C CTRL+V для написания похожих тестов, не следят за переиспользованием кода, не подготавливают тестовую инфраструктуру проекта. В какой-то момент при любых изменениях проекта поддерживать тесты становится почти невозможно. Их комментируют, удаляют или перестают запускать.
Я покажу базовые правила, которые позволят сделать ваши тесты значительно понятнее и удобнее. Будет просто и практично.
Архитектура автотестов для проекта с open source ядром
Ядро нашей системы хранения данных, движок FrostFS, лежит в открытом доступе на гитхабе, и нам нужно тестировать два продукта с общим функционалом — публичный и коммерческий. Я расскажу, как при таких условиях мы научились:
- Как можно меньше дублировать код и автотесты и сохранять их читаемость.
- Разделять и не показывать в паблике коммерческий функционал.
- Гонять тесты в разных окружениях: докер, железный стенд, виртуальный стенд в облаке.
Вас ждет разбор нескольких решений: “в лоб” с ветвлением логики в тестах, использование keyword-driven testing и собственного фреймворка с плагинами. Я покажу плюсы и минусы каждого подхода.
Обожаю автоматизировать задачи, работаю с Python 2 года, до этого писал автоматизацию и фреймворк для тестирования на C#
Pytest plugins: расширяем функционал тестового фреймворка через плагины
Мы используем pytest как core часть тестового фреймворка. А если возникают интересные задачи, для которых не хватает базового функционала pytest, нас выручают плагины. Я расскажу, как и для чего мы их используем, зачем пишем собственные, а также как использовать одновременно не один, а несколько плагинов. Все это — на примере.
Более 6 лет в Automation QA. Писал тесты на банковское ПО, распределенные базы данных, сервера и системы хранения данных. Участвовал в разработке нескольких фреймворков для автоматизации тестирования.