Тестируем тесты с PIT (мутационное тестирование)Vitebsk Miniq
Презентация подготовлена по материалам выступления Евгения Барановского на витебском Dev Day MiniQ (https://vk.com/devdayminiq), который был проведен 15 сентября 2016.
The 2nd part of the 3rd lecture from the course "Java Core".
The Department of Information and Network Technologies.
St-Petersburg State University Of Aerospace Instrumentation.
Russia
Тестируем тесты с PIT (мутационное тестирование)Vitebsk Miniq
Презентация подготовлена по материалам выступления Евгения Барановского на витебском Dev Day MiniQ (https://vk.com/devdayminiq), который был проведен 15 сентября 2016.
The 2nd part of the 3rd lecture from the course "Java Core".
The Department of Information and Network Technologies.
St-Petersburg State University Of Aerospace Instrumentation.
Russia
Модульное тестирование является неотъемлемой частью современного процесса разработки. В своем докладе я хочу поговорить о том как нужно разрабатывать модульные тесты в проекте на C++ так чтобы это приносило максимум пользы.
The 3rd part of the 3rd lecture from the course "Java Core".
The Department of Information and Network Technologies.
St-Petersburg State University Of Aerospace Instrumentation.
Russia
Статический анализ исходного кода на примере WinMergeTatyanazaxarova
Сегодня я хочу посвятить пост тематике, почему инструменты анализа исходного кода полезны вне зависимости от уровня знаний и опыта программиста. А польза такого анализа будет продемонстрирована на примере инструмента, который известен всем программистам - WinMerge.
Бодрящий микс из Selenium и TestNG- регрессионное тестирование руками разрабо...Andrey Rebrov
Как-то так происходит, что “на 10 девчонок по статистике 9 ребят”, а точнее на группу из 5-7 разработчиков – 1 тестировщик. Или его нет совсем. Так что очень часто приходится и код писать, и тестировать, а дата релиза все ближе и ближе.
В тех случаях, когда мы пишем веб-приложение, помочь в нашей нелегкой судьбе может бодрящий микс из Selenium и TestNG... Как это сделали мы, какие потом получили выводы и результаты — все это я и хочу рассказать и показать
анализ кода: от проверки стиля до автоматического тестированияRuslan Shevchenko
Рассказ о истории и использовании в реальной жизни инструментов анализа кода на основе JavaChecker и TermWare
Сопустствующий текст: http://datacenter.gradsoft.ua/files/articles/OSDN2011/
The 5-th lecture from the course "Java Core".
The Department of Information and Network Technologies.
St-Petersburg State University Of Aerospace Instrumentation.
Russia
Модульное тестирование является неотъемлемой частью современного процесса разработки. В своем докладе я хочу поговорить о том как нужно разрабатывать модульные тесты в проекте на C++ так чтобы это приносило максимум пользы.
The 3rd part of the 3rd lecture from the course "Java Core".
The Department of Information and Network Technologies.
St-Petersburg State University Of Aerospace Instrumentation.
Russia
Статический анализ исходного кода на примере WinMergeTatyanazaxarova
Сегодня я хочу посвятить пост тематике, почему инструменты анализа исходного кода полезны вне зависимости от уровня знаний и опыта программиста. А польза такого анализа будет продемонстрирована на примере инструмента, который известен всем программистам - WinMerge.
Бодрящий микс из Selenium и TestNG- регрессионное тестирование руками разрабо...Andrey Rebrov
Как-то так происходит, что “на 10 девчонок по статистике 9 ребят”, а точнее на группу из 5-7 разработчиков – 1 тестировщик. Или его нет совсем. Так что очень часто приходится и код писать, и тестировать, а дата релиза все ближе и ближе.
В тех случаях, когда мы пишем веб-приложение, помочь в нашей нелегкой судьбе может бодрящий микс из Selenium и TestNG... Как это сделали мы, какие потом получили выводы и результаты — все это я и хочу рассказать и показать
анализ кода: от проверки стиля до автоматического тестированияRuslan Shevchenko
Рассказ о истории и использовании в реальной жизни инструментов анализа кода на основе JavaChecker и TermWare
Сопустствующий текст: http://datacenter.gradsoft.ua/files/articles/OSDN2011/
The 5-th lecture from the course "Java Core".
The Department of Information and Network Technologies.
St-Petersburg State University Of Aerospace Instrumentation.
Russia
QA Fest 2019. Андрей Солнцев. Десять причин моей ненавистиQAFest
Меня часто спрашивают, за что я не люблю в тестах Page Objects, TestNG, ReportPortal, try/catch, циклы и условия, неявные ожидания, явные ожидания, Dependency injection, Spring и т.д.
Расскажу коротко и быстро. На каждую тему 5 минут.
Methods for building dialog agents and the technologies we used Grid Dynamics
Chatbots have now become an integral part of software development, which are closely related to both NLP and ML. The present report highlights the basic concepts and approaches of working with NLP by implementing dialogue agents (Intent classification, NER, Slot Filing), and you can also find out how to build an entire dialog system. No SaaS, only in-house solutions!
Речь пойдет об инструменте, который умеет создавать автотесты для проверки вёрстки. Принцип действия инструмента таков: он анализирует большое количество схожих страниц и находит правила, которым все они (или почти все) подчиняются. Если на аналогичной странице нарушается какое-то из правил, значит, она содержит ошибку. Этот инструмент, в частности, очень удобен для сравнения вёрстки двух версий сервиса. Я расскажу вам историю создания инструмента, покажу, как он работает и какие баги находит.
Как построить свой фреймворк для автотестов?Dmitry Buzdin
Мы пройдемся по всем основным блокам построения тестового фреймворка и тому, как они связаны между собой. Вы научитесь собирать свое решение по автоматизации из библиотек с открытым кодом и делать так, чтобы они дополняли друг друга.
Слайды доклада https://getdev.net/Event/go-language
Зачем придумали Go и что нам с этим делать
Доклад будет про историю возникновения, про основы синтаксиса, сферы применения и чуточку залезть под капот главной фишки языка - goroutines.
Leap Motion - игрушка с заделом на будущееGetDev.NET
Leap Motion - это контроллер ввода путем захвата движений с использованием одноименной технологии. На встрече мы рассмотрим аппаратную часть, готовые программные решения и некоторые смежные технологии.
Нескучная гирлянда на новогодние праздники и приятная подсветка в течение года. Программируем ардуино со смартфона по блютусу.
Материалы со встречи:
https://getdev.net/Event/arduino
Mind Mapping, или как заставить свой мозг работать лучшеGetDev.NET
Слайды со встречи https://getdev.net/Event/mind-mapping
На встрече пойдет речь о том, что же это за зверь такой - ментальная карта, почему эта техника визуализации так популярна, где и зачем ее использовать, и как с ее помощью познать Силу
По традиции приглашаем вас на встречу с кратким обзором новых функций обновленной версии среды разработки Visual Studio 2015. Мы также поговорим о кроссплатформенной разработке для мобильных платформ, изменениях в веб-стеке, новой версии языка C# и open source инициативах Microsoft
Материалы со встречи:
https://getdev.net/Event/docker
Docker: зачем нужен и почему выстрелил? Контейнеры против виртуальных машин - кто лучше? Docker на Windows: как и когда? А также демо: создание и deploy контейнера на ваших глазах
Windows 10 для пользователей и разработчиковGetDev.NET
Чего ждать от Windows 10, выходящей летом 2015 года? Рассказ про улучшения для разработчиков приложений для Магазина Windows и про исправления досадных недоразумений, к которым все давно привыкли.
PhoneGap для мобильного разработчика - глубокое погружение без ОЗКGetDev.NET
Видео со встречи: http://getdev.net/Event/phonegap
Кратко поговорим о том как появился, как развивался, что внутри. Рассмотрим явные косяки и неприкрытые плюсы PhoneGap пути. Обратим внимание на скрытые проблемы, которые вы непременно найдёте при активной разработке. Рассмотрим позитивные моменты, которые никто не замечает, но они то есть. Потыкаем существующий инструментарий и варианты интеграции. И решим, где стоит применять PhoneGap и стоит ли вообще.
Слайды со встречи http://getdev.net/Event/webapi
Платформа ASP.NET Web API позволяет с легкостью создавать службы HTTP для широкого диапазона клиентов, включая браузеры и мобильные устройства. ASP.NET Web API идеально подходит для разработки приложений RESTful на платформе .NET Framework. Будут упомянуты понятия REST и отличие REST-пути от RPC (WCF)-пути, рассмотрен стандарт OData, сказаны слова OWIN и Katana
Видеозапись со встречи:
http://getdev.net/Event/vs2013
Всего год прошел с выпуска Visual Studio 2012, а разработчики уже могут пользоваться новой версией. Так ли много изменений? Зачем обновленная IDE спрашивает логин и пароль? Можно ли отлаживать свой код по дороге в офис прямо с планшета?
Видеозапись встречи:
http://getdev.net/Event/angularjs
Стремительно набирающий популярность фреймворк, облегчающий создание клиентских приложений. SPA, MVC, MVVM и множество других облегчающих разработку акронимов.
В докладе предполагается общий обзор, показывающий отдельные части, из которых состоит фреймворк, то, как они живут вместе друг с другом и существуют в окружающем мире страниц, серверов и источников данных.
Видеозапись встречи:
http://getdev.net/Event/typescript
TypeScript - язык программирования от Microsoft, который является надмножеством JavaScript. Он поддерживает статическую типизацию, модули, определение классов и интерфейсов и транслируется в чистый JS. Спецификации языка открыты, а код компилятора распространяется под лицензией Apache.
Создание повторно используемых бизнес моделей с помощью технологии Domain Com...GetDev.NET
Материалы со встречи: http://getdev.net/Event/xaf-reuse
Задумывались ли вы когда-нибудь, что с переходом от SQL к DataSet, а затем и к ORM типа Entity Framework развитие технологий для доступа и управления данными приостановилось? Что еще нового можно придумать к уже привычному оперированию записями таблиц БД как объектами CRL и при этом поднять удобство разработчика на следующий уровень? На этот и другие вопросы попробует дать ответ доклад о технологии Domain Components (часть DevExpress eXpressApp Framework), которая облегчает создание повторно используемых бизнес моделей за счет легкого комбинирования путем использования интерфейсов вместо классов (это позволяет вам эмулировать "множественное наследование" в C# и VB.NET), а также свободы от особенностей конкретной ORM.
Видео со встречи:
http://getdev.net/Event/lego-mindstorms
Совместный доклад Сергея Шебанина и Дмитрия Филиппова. Конструктор для создания программируемого робота. Расширение возможностей программирования до физического контакта с предметами. Внутренности, комплектация, технические параметры сенсоров и приводов. Как программировать - графический вариант и обычный текстовый. Какие есть варианты креплений и подвижных соединений. Простейшие алгоритмы слежения за линией (с примером на NXC).
Особенности мобильной платформы Windows Phone 8GetDev.NET
Видеозапись и материалы доклада: http://getdev.net/Event/wp8
Можно ли писать приложения на C++? Правда ли, что у Windows 8 и Windows Phone 8 единое ядро? Будет ли аналог Siri в новых смартфонах? Вся правда о новой мобильной платформе от Microsoft только на GetDev.NET!
Материалы с доклада: http://getdev.net/Event/async-javascript
Рассказ о том, как работает асинхронность в JavaScript, кто стоит в очереди выполнения, почему в JavaScript никогда не будет процессорной гонки, как давать отсроченные обещания и что делать, если одна из ваших функций подхватила заразу асинхронности
Видео со встречи: http://getdev.net/Event/xaml
Доклад посвящен XAML — основанному на XML языку разметки для декларативного программирования приложений. Он является основой технологий WPF и Silverlight, a также используется в WinRT.
Видео и материалы со встречи:
http://getdev.net/Event/dynamic-language-runtime
В докладе рассмотрим скриптовые языки на платформе DLR, способы автоматизации рутинной работы с их помощью, а также интегрирование в конечное приложение.
Видео со встречи: http://getdev.net/Event/javascript-good-form
Рассказ о том, как в приличном обществе принято структурировать свой JavaScript, разбивать его на отдельные логические единицы, инкапсулировать его от внешней среды, подключать скрипты к своему веб-приложению, и организовывать процесс юнит-тестирования и как заменять им компилятор
Видео со встречи - http://getdev.net/Event/roslyn
Roslyn Project - это компилятор, который предоставляет разработчику API для доступа к его внутренним данным. Теперь можно анализировать код, проводить его модификацию и создавать дополнительную функциональность для .NET-языков.
Использование Mock объектов в модульном тестировании
1. Использование mock-объектов в модульном тестировании Все, в том числе и ложь, служит истине. Франц Кафка Гавришов Юрий TulaSoft www.sqlaccessories.com TulaDev.NET
2. «Без тестов жить нельзя на свете, нет» Тесты хорошо, а TDD лучше Результат применения: Рабочий протестированный код Способствует хорошему дизайну. Самодокументация
4. Ситуации, когда сложно использовать юнит-тесты Нужно протестировать класс, который взаимодействует с с базой данных с внешним устройством с файловой системой с внешним сервисом То есть Если класс взаимодействует с внешней средой, от которой его надо изолировать. Если класс работает с объектом, методы которого отрабатывают немгновенно. Особый случай: Если класс работает с объектом или группой объектов, у которых сложная инициализация.
5. Выход – использовать поддельные объекты Пробуем: Сделаем вид, что мы не знаем про моки Ура, используем мок-фреймворк
7. Behavior vs state verification Mock-стиль проверки (behavior verification)мы проверям, как происходит взаимодействие объектов. Классический стиль проверки (state verification)мы проверяем результаты взаимодействия.
8. Принцип работы и ограничения «классических» mock-объектов Возможности и ограничения: Можно мочить классы и интерфейсы. В классах можно подменять методы и свойства. Классы не должны быть sealed. Свойства и методы должны быть виртуальными (public or internal)
11. Возможности Moq Последнее обновление — август 2010. Текущая версия — 4.0. Не поддерживает Record/Replay. Минимальная версия .NET – 3.0. Один простой вариант использования: mock = new Mock<ICommand>(); Параметры: явное указание, любые, диапазон, регулярное выражение (пример) Генерация исключений (пример) Ruturns: значение, отложенная инициализация и делегат (пример) Callback. Позволяют накапливать параметры вызванных методов. Verification (пример) Возможность настройки поведения при помощи перечисления MockBehavior (примеры) Можно задавать ожидания по умолчанию в SetUp и переопределять их в тесте Перегрузка protected методов (пример) Как «мочить» internal сущности (пример)
12. Microsoft.Moles Не является классической mock-библиотекой. Может переопределять все, что угодно (пример) Можно переопределять члены системных типов Есть только заглушки, моков нет Можно использовать в NUnit и т. д. Подробнее о возможностях (пример)
15. Можно управлять поведением Чтобыизменить поведение объекта, делаем так: stub.InstanceBehavior = BehavedBehaviors.DefaultValue; MoleBehaviors.DefaultValue — незамещенные члены класса будут замещены пустым делегатом и возвращать дефолтное значение типа возвращаемого результата MoleBehaviors.NotImplemented — при обращении к незамещенному члену будет возникать исключение NotImplementedException MoleBehaviors.Fallthrough — вызовы к незамещенным членам будут обработаны согласно оригинальной реализации их в замещаемом классе
16. Microsoft.Moles: выводы Мощное средство изоляции Но как всегда есть недостатки: Не хватает моков Накладные расходы на поддержание «теневых» сборок Некрасивые правила формирования имен Тормозит рефакторинг
17. TypeMock Платная библиотека для написания тестов в изоляции. Лишена некоторых недостатков Microsoft.Moles Осуществляет перехват вызовов на уровне всего приложения Имеется графический тул
18. Промежуточные выводы Использовать Moles и Typemock не всегда полезно При построении новой логики лучше пользоваться DIP и другими инструментами
19. Выводы Использование моков и заглушек: расширяет применимость юнит-тестов позволяют легко тестировать объекты, не имеющие состояния упрощают setup-методы тестов позволяют тестировать классы в изоляции
20. Ссылки Проект Moqhttp://code.google.com/p/moq/ Проект Rhino Mockshttp://www.ayende.com/projects/rhino-mocks.aspx Microsoft.Moleshttp://research.microsoft.com/en-us/projects/pex/default.aspx Изолятор TypeMockhttp://www.typemock.com/typemock-isolator-product3