Netpeak Group продолжает серию образовательных мероприятий — #NetpeakTalks в Одессе.
В рамках этих встреч у тебя будет возможность обсудить с практикующим спикером наболевшие темы, связанные с R&D, дизайном, менеджментом, интернет-маркетингом, QA, Customer Success, аналитикой и др. (все темы от встречи к встрече не повторяются и отличаются друг от друга).
Тема#3: Масштабируемое приложение на PHP
Краткий план:
1. Теория принципов и паттернов проектирования.
2. Примеры использования принципов и паттернов в коде (разберём какие "плюшки" даёт каждый случай).
3. Важность слабосвязанного кода (IoC).
4. Как "под капотом" работают IOC контейнера.
_____________________
Информацию об этом и следующих мероприятиях ты можешь отследить:
FaceBook: https://www.facebook.com/NetpeakTalks/
Телеграм: https://t.me/netpeaktalks
__________
Плейлист с выступлениями на YouTube: https://www.youtube.com/playlist?list=PL8LIMl0TjrcDtSS_lM5jqH-huK5FCq44A
__________
TMPA-2015: The Application of Static Analysis to Optimize the Dynamic Detecti...Iosif Itkin
The Application of Static Analysis to Optimize the Dynamic Detection of Race Conditions
Yakov Roskoshnyy, Dmitry Tsitelov, Vitaly Trifanov, Roman Elizarov,Saint Petersburg State University of Information Technologies, Mechanics and Optics, Saint Petersburg
12 - 14 November 2015
Tools and Methods of Program Analysis in St. Petersburg
Netpeak Group продолжает серию образовательных мероприятий — #NetpeakTalks в Одессе.
В рамках этих встреч у тебя будет возможность обсудить с практикующим спикером наболевшие темы, связанные с R&D, дизайном, менеджментом, интернет-маркетингом, QA, Customer Success, аналитикой и др. (все темы от встречи к встрече не повторяются и отличаются друг от друга).
Тема#3: Масштабируемое приложение на PHP
Краткий план:
1. Теория принципов и паттернов проектирования.
2. Примеры использования принципов и паттернов в коде (разберём какие "плюшки" даёт каждый случай).
3. Важность слабосвязанного кода (IoC).
4. Как "под капотом" работают IOC контейнера.
_____________________
Информацию об этом и следующих мероприятиях ты можешь отследить:
FaceBook: https://www.facebook.com/NetpeakTalks/
Телеграм: https://t.me/netpeaktalks
__________
Плейлист с выступлениями на YouTube: https://www.youtube.com/playlist?list=PL8LIMl0TjrcDtSS_lM5jqH-huK5FCq44A
__________
TMPA-2015: The Application of Static Analysis to Optimize the Dynamic Detecti...Iosif Itkin
The Application of Static Analysis to Optimize the Dynamic Detection of Race Conditions
Yakov Roskoshnyy, Dmitry Tsitelov, Vitaly Trifanov, Roman Elizarov,Saint Petersburg State University of Information Technologies, Mechanics and Optics, Saint Petersburg
12 - 14 November 2015
Tools and Methods of Program Analysis in St. Petersburg
QA Fest 2014. Алексей Лупан. Не тест-кейсы красят тестировщика, а...QAFest
- Цепочка документов, которые принуждают тестировщика создавать тест-кейсы;
- Как жить, когда до тест-кейсов "не хватает дыхания";
- В чем разница между "функцией" и "функциональной возможностью", и что из этого требует внимания тестировщика
Евгений Сафронов "Тестирование. точка зрения разработчика"DataArt
Что прежде всего объединяет тестировщика и разработчика? Работа в одной команде и общая цель — качественный и завершенный программный продукт.
Мы рассмотрим различные мнения и подходы к тестированию.
Познакомимся с различными видами тестирования, которые может выполнять программист, работая над продуктом. Разберем несколько интересных примеров Unit-тестирования, поговорим о востребованных и эффективных на сегодняшний день практиках.
TMPA-2015: Automated Testing of Multi-thread Data Structures Solutions Lineri...Iosif Itkin
Automated Testing of Multi-thread Data Structures Solutions Linerializability
Anton Evdokimov, Dmitry Tsitelov, Roman Elizarov, Vitaly Trifanov, Saint Petersburg State University of Information Technologies, Mechanics and Optics, Saint Petersburg
12 - 14 November 2015
Tools and Methods of Program Analysis in St. Petersburg
TMPA-2015: Standards and Standartization in Program Engineering. Why Would Yo...Iosif Itkin
Standards and Standartization in Program Engineering. Why Would You Care?
Nikolay Pakulin, ISP RAS, Moscow
12 - 14 November 2015
Tools and Methods of Program Analysis in St. Petersburg
Применение статического анализа кода в преподавании и в разработке свободного ПОAndrey Karpov
В своём докладе я расскажу, как использование татического анализа может помочь преподавателям и студентам обучать и обучаться. Также я расскажу, как именно стоит наладить процесс анализа для использования в студенческих роектах разработки СПО, чтобы удовлетворить специфике работы в рамках учебного заведения.
Задорная презентация, посвещенная введению в разработку через тестирование. В частности, рассмотрены такие методологии как TDD (Test-Driven Development) и BDD (Behavior-Driven Devopment), их несомненные достоинства и недостатки, а также практическое применение.
Презентация подготовлена по материалам прошедшей 10.10.2013 конференции "Developers Software Conference 2013" в Витебске, организатором которой выступила компания "EPAM Systems".
Документация тестировщика - Александр ТрибушныйDataArt
Как сделать документацию тестировщика лучше?
- зачем нужна матрица трассируемости?
- проблемы разработки тест-кейса;
- частые ошибки при написании баг-репорта;
- рекомендации при написании тест-кейсов и баг-репортов.
Как создать качественный статический анализаторAndrey Karpov
В докладе я расскажу о методиках достижения высокого качества продукта, которые наша команда использует при разработке статического анализатора. Упор сделаю на особенности разработки, а также на повышение качества именно анализа, то есть поиска реальных ошибок и потенциальных уязвимостей в коде.
Кирилл Черятов. Эволюция системы логирования интеграционного ПО. Сокращаем вр...ScrumTrek
Автоматизация бизнес-процессов часто подразумевает интеграцию большого количества IT систем. При производстве такого ПО серьезной проблемой является сбор и анализ логов систем. Эта проблема актуальная и для системы FORIS, которая поддерживает бизнес МТС.
Мы разберем проблемы, которые подтолкнули к разработке системы Central Logging, обозначим решение этих проблем, узнаем, какое отношение имеет игра пинг-понг к разработке программного обеспечения, а так же, как Central Logging помогла нам меньше играть в пинг-понг и больше времени тратить на разработку новых задач для заказчика.
Применение инструментов символьных вычислений для проверки решений задач из курсов для конструкторов и технологов в интеллектуальной обучающей веб-системе «Волга»
QA Fest 2014. Алексей Лупан. Не тест-кейсы красят тестировщика, а...QAFest
- Цепочка документов, которые принуждают тестировщика создавать тест-кейсы;
- Как жить, когда до тест-кейсов "не хватает дыхания";
- В чем разница между "функцией" и "функциональной возможностью", и что из этого требует внимания тестировщика
Евгений Сафронов "Тестирование. точка зрения разработчика"DataArt
Что прежде всего объединяет тестировщика и разработчика? Работа в одной команде и общая цель — качественный и завершенный программный продукт.
Мы рассмотрим различные мнения и подходы к тестированию.
Познакомимся с различными видами тестирования, которые может выполнять программист, работая над продуктом. Разберем несколько интересных примеров Unit-тестирования, поговорим о востребованных и эффективных на сегодняшний день практиках.
TMPA-2015: Automated Testing of Multi-thread Data Structures Solutions Lineri...Iosif Itkin
Automated Testing of Multi-thread Data Structures Solutions Linerializability
Anton Evdokimov, Dmitry Tsitelov, Roman Elizarov, Vitaly Trifanov, Saint Petersburg State University of Information Technologies, Mechanics and Optics, Saint Petersburg
12 - 14 November 2015
Tools and Methods of Program Analysis in St. Petersburg
TMPA-2015: Standards and Standartization in Program Engineering. Why Would Yo...Iosif Itkin
Standards and Standartization in Program Engineering. Why Would You Care?
Nikolay Pakulin, ISP RAS, Moscow
12 - 14 November 2015
Tools and Methods of Program Analysis in St. Petersburg
Применение статического анализа кода в преподавании и в разработке свободного ПОAndrey Karpov
В своём докладе я расскажу, как использование татического анализа может помочь преподавателям и студентам обучать и обучаться. Также я расскажу, как именно стоит наладить процесс анализа для использования в студенческих роектах разработки СПО, чтобы удовлетворить специфике работы в рамках учебного заведения.
Задорная презентация, посвещенная введению в разработку через тестирование. В частности, рассмотрены такие методологии как TDD (Test-Driven Development) и BDD (Behavior-Driven Devopment), их несомненные достоинства и недостатки, а также практическое применение.
Презентация подготовлена по материалам прошедшей 10.10.2013 конференции "Developers Software Conference 2013" в Витебске, организатором которой выступила компания "EPAM Systems".
Документация тестировщика - Александр ТрибушныйDataArt
Как сделать документацию тестировщика лучше?
- зачем нужна матрица трассируемости?
- проблемы разработки тест-кейса;
- частые ошибки при написании баг-репорта;
- рекомендации при написании тест-кейсов и баг-репортов.
Как создать качественный статический анализаторAndrey Karpov
В докладе я расскажу о методиках достижения высокого качества продукта, которые наша команда использует при разработке статического анализатора. Упор сделаю на особенности разработки, а также на повышение качества именно анализа, то есть поиска реальных ошибок и потенциальных уязвимостей в коде.
Кирилл Черятов. Эволюция системы логирования интеграционного ПО. Сокращаем вр...ScrumTrek
Автоматизация бизнес-процессов часто подразумевает интеграцию большого количества IT систем. При производстве такого ПО серьезной проблемой является сбор и анализ логов систем. Эта проблема актуальная и для системы FORIS, которая поддерживает бизнес МТС.
Мы разберем проблемы, которые подтолкнули к разработке системы Central Logging, обозначим решение этих проблем, узнаем, какое отношение имеет игра пинг-понг к разработке программного обеспечения, а так же, как Central Logging помогла нам меньше играть в пинг-понг и больше времени тратить на разработку новых задач для заказчика.
Применение инструментов символьных вычислений для проверки решений задач из курсов для конструкторов и технологов в интеллектуальной обучающей веб-системе «Волга»
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.
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...HappyDev
Матерый enterprise проект с "зоопарком" из разнообразных технологий. Часто меняющаяся команда и требовательный заказчик. Менеджер, активно пытающийся вытянуть проект... Все составляющие для сюжета, достойного Титаника.
Было перепробовано множество практик для улучшения процесса разработки, и больше всего это влияло на нас, разработчиков. В одночасье рушились привычные устои, а новые, не успев прижиться, менялись снова. Разве возможна нормальная работа в такой нервной обстановке?
Автор критически оценит парное программирование, тестирование, code review и прочие практики из мира улучшения разработки, а также расшарит набитые шишки и обнаруженные грабли.
Андрей Зайцев - TDD в кровавом энтерпрайзеElias Fofanov
Поговорим о том, когда, как и для чего писать тесты, а так же научимся проходить интервью на позицию junior test automation engineer. Подумаем над тем, почему TDD не взлетает, и может ли что-то быть хуже. Рассмотрим на примере использование таких инструментов, как NUnit, FluentAssertions, Moq, HttpMock.
QA Fest 2019. Андрей Солнцев. Десять причин моей ненавистиQAFest
Меня часто спрашивают, за что я не люблю в тестах Page Objects, TestNG, ReportPortal, try/catch, циклы и условия, неявные ожидания, явные ожидания, Dependency injection, Spring и т.д.
Расскажу коротко и быстро. На каждую тему 5 минут.
В этом докладе рассмотрен опыт NetCracker по выбору инструмента для изучения причин проблем производительности.
Рассмотрены критерии по которым не подошли имеющиеся инструменты и показаны примеры того, чего не хватает при анализе результатов обычными профайлерами.
http://jokerconf.com/#sitnikov
The practical story telling how Devops changed the culture of quality in the Bank. Recently Devops became mainstream topic. But only few people have a deep understanding how to apply it to the process of software quality assurance. Some believe that the Devops kills manual testing.
I will talk about changes it makes to the role of QA engineers themself. The discussion main point is NOT about tools or technologies. It’s NOT about the “silver bullet” for your problems with the quality of products.
Instead, I will show you an integrated approach which we used for quality assurance. It allowed us to significantly reduce the cost of finding and fixing defects. This approach has also accelerated the development and delivery value to our customers and made the whole process more transparent and predictable.
Читабельные отчеты для автоматизации на 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
Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)Ontico
HighLoad++ 2017
Зал «Пекин + Шанхай», 8 ноября, 17:00
Тезисы:
http://www.highload.ru/2017/abstracts/2991.html
Нынче стало модно выделять UI-компоненты в отдельную библиотеку и использовать её в нескольких проектах. Мы в команде почты Mail.ru делаем так же, но столкнулись с проблемой: каждый разработчик, меняя библиотеку под свои нужды, обязательно ломает что-нибудь, что работало у других.
Я расскажу о том, как мы решили эту проблему, и о том, какие инструменты для этого можно использовать. Storybook, BackstopJS, Jest, Webdriver.io, TypeScript - в их числе.
Similar to Тестируем код с Visual Studio 2012 - XP Days Ukraine 2012 (20)
7. Архитектура
Visual Studio TeamBuild
Command
Unit Test Unit Test
Line Runner
Explorer Activity
Visual Studio Unit Test Platform
MS-Test MS-Test
NUnit xUnit.net QUnit MORE!
Managed Native
8. Chutzpah
В переводе тот, кто выходит зарамки дозволенного.
qunit.d.ts: https://github.com/Diullei/TypeScript-d/blob/master/d.ts/qunit-1.10.0.d.ts
jasmine.d.ts: https://gist.github.com/3887505
11. Что такое плохо
Это хороший код?
bool IsFileEmpty(string file) {
var content = File.ReadAllText(file);
return content.Length == 0;
}
А это хороший тест ?
void FileExistsTest() {
File.Write("foo.txt", "");
var result = IsFileEmpty("foo.txt")
Assert.IsTrue(result);
}
@dmytromindra
12. Код, не поддающийся
тестированию.
Где он водится?
«Лишь бы работало»
– Бизнес логика в code-behind
– Слишком много зависимостей
– Работа с БД перемешана с бизнес логикой.
– Свой вариант ... ;)
Там, где тестируемость не предусмотрена
Там, где тестируемость намеренно исключена
Монолитная архитектура
@dmytromindra
13. Код, не поддающийся
тестированию.
Как его узнать?
– Сложные процедуры “setup” и “teardown”
– Зависимость от состояния среды
– Публичные статические методы
– Скрытое создание объектов.
– Использование замысловатых фреймворков.
– Полное отсутствие тестов!
@dmytromindra
14. Любая система,
где тестирование требует
сложной предварительной
подготовки
или где тесты работают
медленно,
считается не тестируемой.
@dmytromindra
15. Зависимость от среды
• Пусть имеется следующий код:
public void ThrowIfEndOfTheWorld()
{
if (DateTime.Now == new DateTime(2012,12,21))
throw new EndOfTheWorldException();
}
Как протестировать его
надежность ?
@dmytromindra
16. Зависимость от среды
• Может как-нибудть так?
[DllImport("kernel32.dll")]
extern static bool SetSystemTime(ref
SystemTime time);
[TestMethod]
public void Y2KTest()
{
SetSystemTime(2012,12,21,0,0,0);
Assert.Throws( () =>
ThrowIfEndOfTheWorld() );
}
@dmytromindra
17. Изолируй
Разделяй и властвуй
Есть два пути:
• Тестируемая архитектура
– Уровни абстракции,
интерфейсы,
инъекция зависимости
• Не тестируемая архитектура
– Отсутствие уровней абстракции, обилие
публичных статических методов,
запечатанные типы, и т.д.
@dmytromindra
18. Модульное тестирование
• Стабы(Stubs) и Моки(Mocks)
– Простые в использовании, конкретные
реализации для тестирования
– Очень похожи, но представляют собой
разные подходы
http://martinfowler.com/articles/mocksArentStubs.html
@dmytromindra
20. Visual Studio 2012 Stubs
Генерируются на этапе
компиляции (быстрые)
Используют возможности языка
C# (без дополнительных API)
Совместимы по типу (is-a) с
интерфейсом
@dmytromindra
22. Visual Studio 2012 Shims
Во время выполнения
перехватывают вызовы любых .NET
методов
Используют профайлер для
перенаправления вызовов
“Monkey patching” для .NET
@dmytromindra
23. Используйте Shims, если …
Вы работаете с внешними
компонентами, которые нельзя
изменить
Вы работаете с легаси кодом,
обладающим нетестируемой
архитектурой
@dmytromindra