Cтатический анализ кода (на примере DDD-фреймворка)ngrebnev
Они расскажут как при разработке бизнес-приложений в модели Domain-driven design они предупреждают ошибки программиста с помощью статического анализа кода и доменной модели. А именно: возможности ORM-платформы по статическому анализу, преимущества широкого использования Linq, декларативных ограничений, модель состояний и формальной верификации элементов доменной модели.
Они разберут, в чем заключается удобство разработчика по использованию статического анализа и простота применения механизмов для задания формальных ограничений на модель предметной области. Интеграция средств статического анализа ORM в среду разработки, невозможность игнорирования ошибок, гарантия прохождения всех статических проверок до первого запуска программы. Ограниченные возможности запросов Linq к модели предметной области по сравнению с Linq to Objects и пути их преодоления.
Они расскажут, как обстоят дела с аналогичными механизмами в других ORM-системах и почему они решили реализовать собственную платформу для поддержки разработки в рамках DDD.
анализ кода: от проверки стиля до автоматического тестированияRuslan Shevchenko
Рассказ о истории и использовании в реальной жизни инструментов анализа кода на основе JavaChecker и TermWare
Сопустствующий текст: http://datacenter.gradsoft.ua/files/articles/OSDN2011/
Уменьшение влияния человеческого фактора при разработке бизнес приложенийngrebnev
В этом докладе мы постараемся рассказать о принципах разработки инструментов для написания бизнес-логики, позволяющих сократить количество ошибок. Речь пойдет о нескольких практиках, принятых в отделе технологического развития нашей компании. Принципы будут проиллюстрированы на примере инструментария компании для платформы Microsoft .NET.
Максимум статических проверок. Под статическими проверками мы понимаем проверки времени компиляции. Этот принцип является важным, но, к сожалению, зачастую недооценивается разработчиками инструментария разработки. Проверки времени компиляции могут отлавливать большой спектр ошибок. Есть и другая особенность – это удобство. Ошибки времени исполнения сложнее воспринимаются, труднее найти причину ошибки.
Разнообразие и декларативность проверок. Проверки общего назначения удобно задавать в декларативном виде. При этом сами проверки должен осуществлять фреймворк. За счет уменьшения дублирования и декларативности снижается вероятность ошибок. Проверки должны быть, как техническими, так и уровня доменной модели. Мы будем говорить о проверках уровня доменной модели.
Возможность анализа декларативных проверок. Любые ограничения порождают некоторую модель. Эту модель (проверки) можно формально верифицировать. Вообще, проблема доказательства большинства свойств программы невозможна. Этот вопрос выходит далеко за рамки нашего доклада. Но существует возможность верификации более слабых (менее выразительных моделей).
Во второй части мы обсудим функционал, который мы называем "состояния". Эти "состояния" образуют что-то вроде автомата, или структуру Крипке. Так вот, существуют алгоритмы проверки выполнимости темпоральных логик на таких структурах.
В любой программе разработчики сталкиваются с необходимостью обработки ошибок. Основной механизм работы с ошибками в .NET Framework — это исключения. Мы поговорим о преимуществах и недостатках их использования. Вы узнаете, используются ли исключения для обработки ошибок в программном обеспечении марсохода NASA, а также о том, какие способы обработки исключений имеются в нашем распоряжении. Также обсудим, можно ли не использовать исключения для обработки ошибочных ситуаций. Приходите, будет интересно.
Moscow .Net Meetup #3
13 октября 2016
Cтатический анализ кода (на примере DDD-фреймворка)ngrebnev
Они расскажут как при разработке бизнес-приложений в модели Domain-driven design они предупреждают ошибки программиста с помощью статического анализа кода и доменной модели. А именно: возможности ORM-платформы по статическому анализу, преимущества широкого использования Linq, декларативных ограничений, модель состояний и формальной верификации элементов доменной модели.
Они разберут, в чем заключается удобство разработчика по использованию статического анализа и простота применения механизмов для задания формальных ограничений на модель предметной области. Интеграция средств статического анализа ORM в среду разработки, невозможность игнорирования ошибок, гарантия прохождения всех статических проверок до первого запуска программы. Ограниченные возможности запросов Linq к модели предметной области по сравнению с Linq to Objects и пути их преодоления.
Они расскажут, как обстоят дела с аналогичными механизмами в других ORM-системах и почему они решили реализовать собственную платформу для поддержки разработки в рамках DDD.
анализ кода: от проверки стиля до автоматического тестированияRuslan Shevchenko
Рассказ о истории и использовании в реальной жизни инструментов анализа кода на основе JavaChecker и TermWare
Сопустствующий текст: http://datacenter.gradsoft.ua/files/articles/OSDN2011/
Уменьшение влияния человеческого фактора при разработке бизнес приложенийngrebnev
В этом докладе мы постараемся рассказать о принципах разработки инструментов для написания бизнес-логики, позволяющих сократить количество ошибок. Речь пойдет о нескольких практиках, принятых в отделе технологического развития нашей компании. Принципы будут проиллюстрированы на примере инструментария компании для платформы Microsoft .NET.
Максимум статических проверок. Под статическими проверками мы понимаем проверки времени компиляции. Этот принцип является важным, но, к сожалению, зачастую недооценивается разработчиками инструментария разработки. Проверки времени компиляции могут отлавливать большой спектр ошибок. Есть и другая особенность – это удобство. Ошибки времени исполнения сложнее воспринимаются, труднее найти причину ошибки.
Разнообразие и декларативность проверок. Проверки общего назначения удобно задавать в декларативном виде. При этом сами проверки должен осуществлять фреймворк. За счет уменьшения дублирования и декларативности снижается вероятность ошибок. Проверки должны быть, как техническими, так и уровня доменной модели. Мы будем говорить о проверках уровня доменной модели.
Возможность анализа декларативных проверок. Любые ограничения порождают некоторую модель. Эту модель (проверки) можно формально верифицировать. Вообще, проблема доказательства большинства свойств программы невозможна. Этот вопрос выходит далеко за рамки нашего доклада. Но существует возможность верификации более слабых (менее выразительных моделей).
Во второй части мы обсудим функционал, который мы называем "состояния". Эти "состояния" образуют что-то вроде автомата, или структуру Крипке. Так вот, существуют алгоритмы проверки выполнимости темпоральных логик на таких структурах.
В любой программе разработчики сталкиваются с необходимостью обработки ошибок. Основной механизм работы с ошибками в .NET Framework — это исключения. Мы поговорим о преимуществах и недостатках их использования. Вы узнаете, используются ли исключения для обработки ошибок в программном обеспечении марсохода NASA, а также о том, какие способы обработки исключений имеются в нашем распоряжении. Также обсудим, можно ли не использовать исключения для обработки ошибочных ситуаций. Приходите, будет интересно.
Moscow .Net Meetup #3
13 октября 2016
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
КГТУ Лекция 6: Обеспечение Качества Программного Обеспечения Iosif Itkin
КГТУ - Костромской Государственный Технологический Университет
Курс Лекций:
Обеспечение Качества Программного Обеспечения
Лекция 6: Обзор методов создания тестовых сценариев
Максим Рудовский, Инновационные Трейдинговые Системы
Иосиф Иткин, Exactpro Systems
QA Fest 2017. Яна Кокряшкина. Интеграция автоматизированных тестов с инструме...QAFest
Как автоматически поставить тест кейсу статус "Pass", создать новый или зактрыть проверенный баг? Во время презентации расскажу как интегрировать автоматизированные тесты с инструментами для тестирования. Покажу рельные примеры совместной работы автоматизированных тестов для веб сайта, написаных на Java или Python, с YouTrack, TestRail и EasyQA.
JS Lab2017, 25 марта, Одесса
Евгений Сафронов (Senior developer at DataArt)
Тестирование Javascript кода. Инструменты, практики, тренды
О тестах и качестве с различных точек зрения и ракурсов. Тестирование, выполняемое разработчиками. Основные тренды, методы и инструменты для тестирования Javascript кода. Лучшие практики и подходы.
Все материалы: http://jslab.in.ua/
Организаторы: http://geekslab.org.ua/
YANKEE SCOUT -- KILLING OF GENERAL SEDGWICKRoch Steinbach
THE CARNAGE of the Battle of the Wilderness -- May 5-7, 1864 -- has ended, the guns of the contesting armies fallen silent, but GENERAL GRANT orders the advance towards SPOTTSYLVANIA COURT HOUSE -- his original planned objective. Now ....
AS THE ARMY OF THE POTOMAC advances south, it emerges from the Wilderness into an open area with scattered stands of oak and hickory, where the soldiers are widely exposed to intense fire from snipers posted in the heights of the trees round about.
ONE OF THESE REBEL SNIPERS keeps working away at the Union Army picket line, where soldiers like PVT. DREW are posted to cover the advancing YANKEE column. Suddenly the general commanding the VI Corps, GEN JOHN SEDGWICK, moves out towards the picket to reconnoiter the ground for placement of his artillery -- when he is hit by rebel sniper fire, and instantly falls from the mortal wound
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
КГТУ Лекция 6: Обеспечение Качества Программного Обеспечения Iosif Itkin
КГТУ - Костромской Государственный Технологический Университет
Курс Лекций:
Обеспечение Качества Программного Обеспечения
Лекция 6: Обзор методов создания тестовых сценариев
Максим Рудовский, Инновационные Трейдинговые Системы
Иосиф Иткин, Exactpro Systems
QA Fest 2017. Яна Кокряшкина. Интеграция автоматизированных тестов с инструме...QAFest
Как автоматически поставить тест кейсу статус "Pass", создать новый или зактрыть проверенный баг? Во время презентации расскажу как интегрировать автоматизированные тесты с инструментами для тестирования. Покажу рельные примеры совместной работы автоматизированных тестов для веб сайта, написаных на Java или Python, с YouTrack, TestRail и EasyQA.
JS Lab2017, 25 марта, Одесса
Евгений Сафронов (Senior developer at DataArt)
Тестирование Javascript кода. Инструменты, практики, тренды
О тестах и качестве с различных точек зрения и ракурсов. Тестирование, выполняемое разработчиками. Основные тренды, методы и инструменты для тестирования Javascript кода. Лучшие практики и подходы.
Все материалы: http://jslab.in.ua/
Организаторы: http://geekslab.org.ua/
YANKEE SCOUT -- KILLING OF GENERAL SEDGWICKRoch Steinbach
THE CARNAGE of the Battle of the Wilderness -- May 5-7, 1864 -- has ended, the guns of the contesting armies fallen silent, but GENERAL GRANT orders the advance towards SPOTTSYLVANIA COURT HOUSE -- his original planned objective. Now ....
AS THE ARMY OF THE POTOMAC advances south, it emerges from the Wilderness into an open area with scattered stands of oak and hickory, where the soldiers are widely exposed to intense fire from snipers posted in the heights of the trees round about.
ONE OF THESE REBEL SNIPERS keeps working away at the Union Army picket line, where soldiers like PVT. DREW are posted to cover the advancing YANKEE column. Suddenly the general commanding the VI Corps, GEN JOHN SEDGWICK, moves out towards the picket to reconnoiter the ground for placement of his artillery -- when he is hit by rebel sniper fire, and instantly falls from the mortal wound
Voltou a ganhar força na Casa Civil o lobby dos planos de saúde individuais para liberalizar a regra de reajuste. Hoje, a ANS (Agência Nacional de Saúde) é quem determina a correção anual desses planos, que contemplam cerca de dez milhões de pessoas.
Caros! Convido a todos a fazer como dezenas de colegas! Participar do nosso próximo Treinamento na Metodologia de Strategic Sourcing, nos próximos dias 7 e 8 de Maio de 2015. Aproveitem! Vejam conosco como fazer a diferença, aprendendo ou atualizando-se em formas de como identificar oportunidades de redução de custos, sustentáveis e significativos para a sua organização. No “Flyer” anexo, encontrarão mais detalhes ou então nos contatando através do email: treinamento@novasolucaoconsultoria.com.br, ou dos fones: 11 43278863 ou 11 97370-3689.
Obrigada
Использование шаблонов и RTTI для конфигурации симулятора флеш-накопителя - Г...Yandex
Флеш-накопители используются в самых разных устройствах, от мобильных телефонов до компьютеров и серверов. Для каждой модели накопителя нужна прошивка с определённым набором параметров, которые могут отличаться в зависимости от ситуации. В докладе будет описан универсальный фреймфорк на С++, который предоставляет разработчикам симуляторов простой, прозрачный и быстрый доступ к любому параметру. Тестировщикам же он позволяет управлять конфигурациями при помощи стандартных инструментов редактирования и слияния.
«Статический анализ: гордость и предубеждения», Алексей Кузьменко, аналитик И...Mail.ru Group
Анализ кода — один из эффективных подходов к выявлению дефектов на этапе разработки программного обеспечения. Это позволяет избежать тривиальных и не очень ошибок, которые могут приводить к появлению уязвимостей. Существует ряд подходов, применяемых в анализаторах, на основании которых производится анализ, позволяющий снижать риски. Однако возникает ряд предубеждений, ведь не всегда предупреждение анализатора является реальным дефектом, тем более, что не всякий дефект является уязвимостью.
2. Что такое test driven development? 2 result_tTestCalc(void) { if (13 == Calc(5; 8)) return SUCCESS; else return FAIL; } Сначала ТЕСТ short Calc(int A, int B) { return A + B; } Потом КОД
5. Что такое Feature test driven development? 5 result_tTestCalc(void) { if (13 == Calc(5; 8)) return SUCCESS; else return FAIL; } Сначала FEATURE ТЕСТ short Calc(int A, int B) { return A + B; } Потом КОД
6. Feature Test driven development 6 Unit 1 Feature Tester Unit 2 Unit 3 Схема Feature Test-а
7. Схема FTDD для встроенного ПО Serial Interface Serial Interface Device PC Serial Manager Test Engine Кнопка Логирование Feature Tester Компонент 1 Компонент 2 Скрипт XML Команда Компонент 3 Список скриптов 7
8. Диаграмма последовательности Скрипт Test Engine Serial Manager Компонент Компиляция кода Прошивка имиджа Нажать кнопку Сериализация команды Посылка команды в сериал интерфейс Загрузка ожидаемой команды Де-сериализация команды Вызов метода компоненты Статус вызова метода Лог Сериализация команды Посылка статуса в сериал интерфейс Сравнение результата с ожидаемым Логирование результата 8
11. Проверка команды - Reset.py """ @parameters port - port (ports list) to use resetType - resetType status - expected status """ for port in ports: port.send('SysResetReq', resetType = resetType ) for port in ports: cmd, conf = port.receive() check(cmd == 'SysResetConf') check(conf['status'] == status) 11
12. Вызов reset команды – testcase1.py # Parameters list port1=‘COM1’ port2=‘COM2’ cmdStatus=‘Success’ rType=‘Soft’, #calling reset writeLog('1. Resetting nodes') function('reset', port = [port1, port2], resetType=rType, status=cmdStatus ) 12
13. логирование Case : testcase1Description: Resetting devices 1. Resetting nodes Send command RESET_REQ length 0x02 id 0x10 resetType 0x01 (Soft) Receive command RESET_CONF length 0x02 id 0x11 status 0x00 (Success) 13
14. 14 Thank You! Dmitry Ovechkin Director of Product Development at Innova Systems Dmitry_ov@yahoo.com