Egor Fedorov "Behavior-driven development in Python"Fwdays
The goal of the BDD technique is to establish successful communication between customers, business analysts, programmers, and testers for the whole life of the project.
That is why a language was created, in which the expected behavior of the application is described in simple text form, and then through the BDD framework, the text is translated into program code, which could already be used in testing the software product.
Where BDD is applied, software requirements turn into living code, and tests instead of a programming language are written in simple human language.
In this talk, using the automation of website testing as an example, the Behave framework for Python will be shown.
The talk will be about:
writing bdd files;
performing them in behave;
running BDD as tests in pytest;
integrating everything into the CI pipeline.
Презентация рассказывает о том, кто такие девопс инженеры, какие проблемы они решают, когда команда разработчиков может обойтись без них и какие инструменты для этого использовать.
Опенсорс - это программа с открытым исходным кодом, которой можно свободно делиться и использовать в любых проектах. По-сути, это миниатюрный стартап.
Я расскажу, зачем нужно делать такие миниатюрные стартапы и покажу на примере, какие привилегии дает разработка OSS. Так же уточним, на каких вещах будет продуктивнее всего фокусировать свое внимание.
Слайды с одноименного доклада на IT Global Meetup 2015, прошедшего в Санкт-Петербурге 6 июля.
Тезисы:
* Контроль за качеством кода - это необходимая процедура при работе нескольких человек в одной команде над продуктом из более чем сотни строк. Зачем это нужно? Каждый пишет код по-своему, ожидает понимания от остальных участников команды, но в жизни этого не происходит.
* Недостатки разнобоя в стиле написанного кода: увеличивается время ревью, усложняется внесение правок кем-либо кроме автора кода, увеличивается вероятность пропустить глазами ошибку.
* Основные шаги к решению этой проблемы: создание единого свода правил по оформлению кода (style guide), согласование процедуры разрешения конфликтных ситуаций относительно разночтений этих правил, устранение человеческого фактора в процессе оценки через автоматизацию.
* Что из экосистемы Питона может помочь? При составлении style guide можно взять за основу PEP8 и PEP257, дополнив их принятыми в команде конвенциями (какие кавычки использовать для строк и докстрингов, и т.д. и т.п.). Автоматизировать проверки можно как с помощью уже готовых утилит (pep8, flake8, pylint), так и написав свои с помощью встроенного в язык инструментария (модули ast, tokenizer, сторонние библиотеки для работы с кодом).
* Где производить проверки? Есть несколько возможных этапов:
- IDE разработчика
- Локальная VCS (working copy)
- Общая VCS
- Сервер Continous Integration.
В идеале проверки должны быть на каждом этапе, но при этом как можно меньше затруднять обычный рабочий процесс. Здесь стоит задуматься, какая комбинация из этих этапов лучше всего впишется в стиль разработчки команды.
* Если же нет достаточных ресурсов или проект находится
Спросите любого программиста и он честно вам ответит, что 90% процентов его времени уходит на поиск ошибок. Подпишусь под этим и я, сменивший за долгие годы множество языков и фреймворков. Действительно, "человеку свойственно ошибаться". Так что же делать, если из человека это свойство не выбить? Как сократить это бездарно потраченное время?
Тот же программист вам и ответ: "отлаживать, конечно". Это искуство сродни магии, доступно всем и покоряется немногим. Но к счастью, помимо проверенной временем практики "вставь сюда print" к услугам питонистов целый зоопарк инструментов.
В этом докладе я постараюсь обобщить самые частые практики отладки, описать их плюсы/минусы и как они соотносятся с Python. Кроме этого, мы совершим обзорный экскурс по экосистеме и посмотрим, чем можно помочь себе в этой нелегкой борьбе. Для особенных эстетов мы рассмотрим техники получения информации из уже запущенного кода. Buckle up!
======
Ссылки
======
Python Debugger Uncovered
https://www.youtube.com/watch?v=2sEPipctTxw
How I built a power debugger out of the standard library and
things I found on the internet
https://www.youtube.com/watch?v=g8kF9tuYZ6s
Architecture of Open Source Applications: GDB
http://www.aosabook.org/en/gdb.html
Advanced Python Debugging Techniques Using GDB
https://www.youtube.com/watch?v=rB9rPdMRxIA
pdb – Interactive Debugger
https://pymotw.com/2/pdb/
bdb — Debugger framework
https://docs.python.org/2/library/bdb.html
В своем докладе я поделюсь опытом использования сервера непрерывной интеграции Jenkins, который мы подняли для справочного и картографического API и проекта Онлайн.
Сделаю упор на следующих моментах:
— Jenkins — быстрый старт, как за час сделать свой первый билд.
— Возможности Jenkins: сборка проекта из репозитория, запуск тестов, создание отчётов.
— Расширение функционала: Pipeline (упорядочение сборок), Violations (красивая статистика), E-mail-плагин, плагин от Чака Нориса и пр.
— Опыт использования в веб-проектах 2ГИС.
Egor Fedorov "Behavior-driven development in Python"Fwdays
The goal of the BDD technique is to establish successful communication between customers, business analysts, programmers, and testers for the whole life of the project.
That is why a language was created, in which the expected behavior of the application is described in simple text form, and then through the BDD framework, the text is translated into program code, which could already be used in testing the software product.
Where BDD is applied, software requirements turn into living code, and tests instead of a programming language are written in simple human language.
In this talk, using the automation of website testing as an example, the Behave framework for Python will be shown.
The talk will be about:
writing bdd files;
performing them in behave;
running BDD as tests in pytest;
integrating everything into the CI pipeline.
Презентация рассказывает о том, кто такие девопс инженеры, какие проблемы они решают, когда команда разработчиков может обойтись без них и какие инструменты для этого использовать.
Опенсорс - это программа с открытым исходным кодом, которой можно свободно делиться и использовать в любых проектах. По-сути, это миниатюрный стартап.
Я расскажу, зачем нужно делать такие миниатюрные стартапы и покажу на примере, какие привилегии дает разработка OSS. Так же уточним, на каких вещах будет продуктивнее всего фокусировать свое внимание.
Слайды с одноименного доклада на IT Global Meetup 2015, прошедшего в Санкт-Петербурге 6 июля.
Тезисы:
* Контроль за качеством кода - это необходимая процедура при работе нескольких человек в одной команде над продуктом из более чем сотни строк. Зачем это нужно? Каждый пишет код по-своему, ожидает понимания от остальных участников команды, но в жизни этого не происходит.
* Недостатки разнобоя в стиле написанного кода: увеличивается время ревью, усложняется внесение правок кем-либо кроме автора кода, увеличивается вероятность пропустить глазами ошибку.
* Основные шаги к решению этой проблемы: создание единого свода правил по оформлению кода (style guide), согласование процедуры разрешения конфликтных ситуаций относительно разночтений этих правил, устранение человеческого фактора в процессе оценки через автоматизацию.
* Что из экосистемы Питона может помочь? При составлении style guide можно взять за основу PEP8 и PEP257, дополнив их принятыми в команде конвенциями (какие кавычки использовать для строк и докстрингов, и т.д. и т.п.). Автоматизировать проверки можно как с помощью уже готовых утилит (pep8, flake8, pylint), так и написав свои с помощью встроенного в язык инструментария (модули ast, tokenizer, сторонние библиотеки для работы с кодом).
* Где производить проверки? Есть несколько возможных этапов:
- IDE разработчика
- Локальная VCS (working copy)
- Общая VCS
- Сервер Continous Integration.
В идеале проверки должны быть на каждом этапе, но при этом как можно меньше затруднять обычный рабочий процесс. Здесь стоит задуматься, какая комбинация из этих этапов лучше всего впишется в стиль разработчки команды.
* Если же нет достаточных ресурсов или проект находится
Спросите любого программиста и он честно вам ответит, что 90% процентов его времени уходит на поиск ошибок. Подпишусь под этим и я, сменивший за долгие годы множество языков и фреймворков. Действительно, "человеку свойственно ошибаться". Так что же делать, если из человека это свойство не выбить? Как сократить это бездарно потраченное время?
Тот же программист вам и ответ: "отлаживать, конечно". Это искуство сродни магии, доступно всем и покоряется немногим. Но к счастью, помимо проверенной временем практики "вставь сюда print" к услугам питонистов целый зоопарк инструментов.
В этом докладе я постараюсь обобщить самые частые практики отладки, описать их плюсы/минусы и как они соотносятся с Python. Кроме этого, мы совершим обзорный экскурс по экосистеме и посмотрим, чем можно помочь себе в этой нелегкой борьбе. Для особенных эстетов мы рассмотрим техники получения информации из уже запущенного кода. Buckle up!
======
Ссылки
======
Python Debugger Uncovered
https://www.youtube.com/watch?v=2sEPipctTxw
How I built a power debugger out of the standard library and
things I found on the internet
https://www.youtube.com/watch?v=g8kF9tuYZ6s
Architecture of Open Source Applications: GDB
http://www.aosabook.org/en/gdb.html
Advanced Python Debugging Techniques Using GDB
https://www.youtube.com/watch?v=rB9rPdMRxIA
pdb – Interactive Debugger
https://pymotw.com/2/pdb/
bdb — Debugger framework
https://docs.python.org/2/library/bdb.html
В своем докладе я поделюсь опытом использования сервера непрерывной интеграции Jenkins, который мы подняли для справочного и картографического API и проекта Онлайн.
Сделаю упор на следующих моментах:
— Jenkins — быстрый старт, как за час сделать свой первый билд.
— Возможности Jenkins: сборка проекта из репозитория, запуск тестов, создание отчётов.
— Расширение функционала: Pipeline (упорядочение сборок), Violations (красивая статистика), E-mail-плагин, плагин от Чака Нориса и пр.
— Опыт использования в веб-проектах 2ГИС.
Никита Шультайс. "Система управления версиями git"Egor Stremousov
Основные тезисы выступления:
- организация репозитория,
- ветвление,
- базовые команды,
- работа в одиночку и в команде.
После выступления прошла бурная дискуссия, обмен опытом и приятное общение с профессионалами.
Илья Биин: Организация совместной работы Go и Python-based сервисов в Ostrovo...Yandex
Мой доклад – о том, как мы пришли к решению об использовании Go в своём проекте и что из этого получилось. Ostrovok.ru по своим целям — классический стартап. Мы с вами поговорим об особенностях выбора технологий для стартапов, о преимуществах и недостатках Go в проектах такого типа, о его интеграции в имеющуюся инфраструктуру и о том, какие ключевые ниши для Go можно выделить.
Плюсы и минусы Go для разработчиков на C++, Вячеслав БахмутовYandex
В докладе речь пойдёт о языке Go. Вячеслав расскажет о внутреннем устройстве языка (структуре, оптимизации, сборщике мусора и т.д.), о том, как и почему Go используют в Яндексе и что о нём говорят разработчики на С++. Отдельно Вячеслав остановится на многопоточном программировании и особенностях отладки и профилирования в Go.
Плюсы и минусы Go для разработчиков на C++, Вячеслав БахмутовYandex
В докладе речь пойдёт о языке Go. Вячеслав расскажет о внутреннем устройстве языка (структуре, оптимизации, сборщике мусора и т.д.), о том, как и почему Go используют в Яндексе и что о нём говорят разработчики на С++. Отдельно Вячеслав остановится на многопоточном программировании и особенностях отладки и профилирования в Go.
"Prom.ua shopping cart workflow as a microfrontend", Danylo KazymyrovFwdays
For a long time, the Prom.ua shopping cart was part of a monolith. After migration to SSR there was a need to reuse it and make it a separate application.
In my talk, I will tell about the approach to building interaction between frontend applications and show how we applied it to Prom.ua shopping cart.
Общие технологии между несколькими проектами в ЯндексеYandex
На примере поисковых проектов о том, как получается использовать единые технологии в разных командах при разработке разных проектов, подробнее про особенности и преимущества.
В докладе я рассказываю о практиках, которые мы активно используем в компании Банки.ру. Как мы добились стабильного процесса выкладки изменений на бой. Как мы отслеживаем, что наши изменения действительно приводят к успеху.
The report I talk about practices that we actively use in the Banki.ru company . As we have achieved a stable process calculations of changes in the fight. How do we keep track of our changes do lead to success .
Непрерывная интеграция и автотесты. Сравнительный анализ инструментовCOMAQA.BY
По-настоящему автоматизированными тесты можно назвать только тогда, когда из процесса тестирования полностью исключается человек. В идеале участие человека должно сводиться к просмотру отчетов о результатах автотестирования, которые регулярно приходят ему на почту.
О том, как в компании разрабатываются некоторые OpenSource проекты, как используются внешние OpenSource-решения и каков опыт Яндекса в этом, особенности и получаемая польза.
Никита Шультайс. "Система управления версиями git"Egor Stremousov
Основные тезисы выступления:
- организация репозитория,
- ветвление,
- базовые команды,
- работа в одиночку и в команде.
После выступления прошла бурная дискуссия, обмен опытом и приятное общение с профессионалами.
Илья Биин: Организация совместной работы Go и Python-based сервисов в Ostrovo...Yandex
Мой доклад – о том, как мы пришли к решению об использовании Go в своём проекте и что из этого получилось. Ostrovok.ru по своим целям — классический стартап. Мы с вами поговорим об особенностях выбора технологий для стартапов, о преимуществах и недостатках Go в проектах такого типа, о его интеграции в имеющуюся инфраструктуру и о том, какие ключевые ниши для Go можно выделить.
Плюсы и минусы Go для разработчиков на C++, Вячеслав БахмутовYandex
В докладе речь пойдёт о языке Go. Вячеслав расскажет о внутреннем устройстве языка (структуре, оптимизации, сборщике мусора и т.д.), о том, как и почему Go используют в Яндексе и что о нём говорят разработчики на С++. Отдельно Вячеслав остановится на многопоточном программировании и особенностях отладки и профилирования в Go.
Плюсы и минусы Go для разработчиков на C++, Вячеслав БахмутовYandex
В докладе речь пойдёт о языке Go. Вячеслав расскажет о внутреннем устройстве языка (структуре, оптимизации, сборщике мусора и т.д.), о том, как и почему Go используют в Яндексе и что о нём говорят разработчики на С++. Отдельно Вячеслав остановится на многопоточном программировании и особенностях отладки и профилирования в Go.
"Prom.ua shopping cart workflow as a microfrontend", Danylo KazymyrovFwdays
For a long time, the Prom.ua shopping cart was part of a monolith. After migration to SSR there was a need to reuse it and make it a separate application.
In my talk, I will tell about the approach to building interaction between frontend applications and show how we applied it to Prom.ua shopping cart.
Общие технологии между несколькими проектами в ЯндексеYandex
На примере поисковых проектов о том, как получается использовать единые технологии в разных командах при разработке разных проектов, подробнее про особенности и преимущества.
В докладе я рассказываю о практиках, которые мы активно используем в компании Банки.ру. Как мы добились стабильного процесса выкладки изменений на бой. Как мы отслеживаем, что наши изменения действительно приводят к успеху.
The report I talk about practices that we actively use in the Banki.ru company . As we have achieved a stable process calculations of changes in the fight. How do we keep track of our changes do lead to success .
Непрерывная интеграция и автотесты. Сравнительный анализ инструментовCOMAQA.BY
По-настоящему автоматизированными тесты можно назвать только тогда, когда из процесса тестирования полностью исключается человек. В идеале участие человека должно сводиться к просмотру отчетов о результатах автотестирования, которые регулярно приходят ему на почту.
О том, как в компании разрабатываются некоторые OpenSource проекты, как используются внешние OpenSource-решения и каков опыт Яндекса в этом, особенности и получаемая польза.
Внедрение Аgile в банке ВТБ24, и интеграция UX и UI в процесс разработки инте...Алексей Гореминский
Выступление на конференции AgileDays`2013
1. Типы договоров и их отличия (fix prise, time and material, time and material and resourses
2. Диаграмма взаимодействия с Отделом интернет проектов
3. Порядок работы с требованиями при создании продукта
4. Правила сортировки задач
5. Оценка трудозатрат и сроков, классическая модель оценки
6. Оценка трудозатрат и сроков, оценка майками в стиле "Чака Норриса"
7. Определяем объем задач для релиза
8. Трудозатраты на аналитические задачи
9. Итерация 0 и ее инструменты
10. Персоны - почему модель Agile и Джефа Патона может не работать
11. Персоны в стиле юзабилити
12. Персоны - опыт побед и неудач
13. Сравниваем: техническая документация или прототипы - что лучше?
14. Gridline, Брендбук и Дизайн - рекоммендации и константы
15. Планы. Создать Юзабилити лабораторию
16. Вопросы
Domain Driven Design. Как писать простой код для сложных систем?Dmitry Pavlov
Нельзя просто так взять и написать простой код для сложной системы. Сколько бы мы не продумывали дизайн, наша стройная объектная модель начинает рушиться о суровую реальность требований. Через пару месяцев мы получаем множество неповоротливых объектов с набором полей под все сценарии использования. А ведь, еще вчера код был простой и понятный, архитектура стройна и без костылей. Откуда берется сложность? Как с ней бороться? Или это наш программистский крест? В мастер классе мы разберемся, как Domain Driven Design помогает разрабатывать объектную модель для сложных систем. Почему лучше иметь несколько контекстов использования классов? Почему 2-3 объекта для одной и той же бизнес-сущности это нормально? Почему важно говорить с бизнесом на едином языке и как явно выражать это в коде?
Осторожно, техническая сессия, много кода, боли и холиваров.
My books- Hacking Digital Learning Strategies http://hackingdls.com & Learning to Go https://gum.co/learn2go
Resources at http://shellyterrell.com/classmanagement
The reality for companies that are trying to figure out their blogging or content strategy is that there's a lot of content to write beyond just the "buy now" page.
The document discusses the benefits of exercise for mental health. Regular physical activity can help reduce anxiety and depression and improve mood and cognitive functioning. Exercise causes chemical changes in the brain that may help protect against mental illness and improve symptoms.
Юрий Василевский «Автоматизация в XCode»
Yandex Mobile Camp в Санкт-Петербурге 2012
http://events.yandex.ru/events/yamobcamp/spb-may-2012/
Xcode — основной инструментарий разработки приложений под Mac OS X и Apple iOS. Он обладает широкими возможностями как для редактирования кода, так и для автоматизации задач. Мы обсудим некоторые из аспектов автоматизации (Code Sense, Targets, Services, Help), связанные с нумерацией сборок билдов, форматированием и контролем стиля кода, анализом дублированных участков кода, управлением внешними библиотеками.
Yandex Mobile Camp в Санкт-Петербурге, 30 мая 2012
Юрий Василевский, ведущий разработчик EPAM Systems, Mobile Solutions
Тема: Автоматизация в XCode
Тезисы:
Xcode — основной инструментарий разработки приложений под Mac OS X и Apple iOS. Он обладает широкими возможностями как для редактирования кода, так и для автоматизации задач.
Мы рассмотрим некоторые из аспектов автоматизации (Code Sense, Targets, Services, Help), связанные с нумерацией сборок билдов, форматированием и контролем стиля кода, анализом дублированных участков кода, управлением внешними библиотеками.
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...HappyDev
Матерый enterprise проект с "зоопарком" из разнообразных технологий. Часто меняющаяся команда и требовательный заказчик. Менеджер, активно пытающийся вытянуть проект... Все составляющие для сюжета, достойного Титаника.
Было перепробовано множество практик для улучшения процесса разработки, и больше всего это влияло на нас, разработчиков. В одночасье рушились привычные устои, а новые, не успев прижиться, менялись снова. Разве возможна нормальная работа в такой нервной обстановке?
Автор критически оценит парное программирование, тестирование, code review и прочие практики из мира улучшения разработки, а также расшарит набитые шишки и обнаруженные грабли.
Presentation from https://heisenbug-piter.ru/en/talks/2018/spb/kkw6oivsoywayacggksmk/
Once upon a time, we got a requirement to finish all testing in 2 days despite the number of tests to run. That number grew, and grew, and grew, and now there are tens of millions of them. So this is a story about building a dam against the never-ending flood which turned out to be not that scary. You are very welcome to join and see it for yourself.
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNGDataArt
Дмитрий Лукьяненко, QA Automation рассматривает:
- Selenium IDE;
- Selenium WebDriver;
- Page Obgect Pattern;
- Page Factory Pattern;
- локаторы;
- как построить фреймворк и куда его можно дальше развивать.
Есть такая штука как инструментирование кода. Мало кто знает о ней, даже пользуясь результатами ее применения. Между тем, с инструментированием можно делать много всего интересного и, главное, полезного. Например, это может вам помочь лучше понять код или сделать процесс разработки более эффективным. Примеры инструментирования кода и принципы его работы.
«Continuous Integration — A to Z или Непрерывная интеграция — кто всё сломал?»FDConf
Доклад о том, зачем нужен CI, как он интегрируется в процесс разработки. В докладе есть небольшое демо о весьма известном cloud-based CI сервисе Travis-CI. В процессе демо будет «поломан» билд и затем сразу же починен. Весьма показательно в том плане, что это доказывает простоту всей технологии.
XP Days Ukraine 2014 - Refactoring legacy codeDmytro Mindra
Every programmer has to face legacy code day after day. It might be ugly, it might look scary, it can make a grown man cry. Some will throw it away and try rewriting everything from scratch. Most of them will fail.
Refactoring legacy code is a much better idea. It is not so scary when you take it in very small bites, introduce small changes, add unit tests. When code is refactored and unit tests are added, changes to functinality can be introduced.
We will take an open source C# project and will refactor it showing step-by-step examples of the techniques. This session is full of tips and tricks you can start applying immediately. Although the code is in C#, the same principles can be applied in any language.
Привет, Санкт-Петербург!
В разгар летнего сезона, мы поговорим об историях обновлений,
например, с 6.4 до 7.х, с разными трюками, а также об истории исследования разных регрессий на продуктах Atlassian и других плагинов.
Наша программа будет пополняться, и мы рады к сотрудничеству.
Ждем Вас на встрече в Яндекс Деньгах.
Читабельные отчеты для автоматизации на C# / Gallio / BDDfyDmytro Zharii
Мой доклад про создание читабельных отчетов для автоматизации тестирования на .NET/C# + Webdriver + Gallio Icarus/MbUnit + BDDfy
Доклад был сделан специально для онлайн конференции Auto ConfeT&QA, прошедшей в октябре 2012 года.
http://confetqa.ru/
======================================
См. также:
Gallio Icarus:
http://gallio.org
BDDfy – фреймворк для БыДиДификации кода :)
Страница проекта на Github:
http://teststack.github.com/TestStack.BDDfy/
Описание на английском:
http://www.mehdi-khalili.com/bddify-in-action/introduction
Similar to Рефакторить легаси код? Только с юнит тестами! (20)