Горячко Дмитрий, Солигорск. Организатор конференции Solit. JazzTeam, Founder & CEO. Ведёт блог на http://www.zmicer.com
«Scrum/Agile для команд разного уровня: students, juniors, engineers, seniors, experts. Практические наблюдения и рекомендации». Development секция.
«Создание продукта для автоматизации тестировании. Что нужно учитывать, чтобы создать технологическую платформу. Разбор конкретного примера – продукта XML2Selenium». Development секция.
Open Source Testing Framework: real project example and best practicesAliaksandr Ikhelis
Summary: Presentation on open source testing frameworks (improved version, more focus on real project example) at Software Engineering Forum 2009 (SEF-1) conference by Aliaksandr Ikhelis. Sponte framework developer and owner is Stanislaw Wozniak, Expedia Limited, UK. Sponte project homepage: http://rubyforge.org/projects/sponte/; http://github.com/swozniak/sponte/tree/master
Горячко Дмитрий, Солигорск. Организатор конференции Solit. JazzTeam, Founder & CEO. Ведёт блог на http://www.zmicer.com
«Scrum/Agile для команд разного уровня: students, juniors, engineers, seniors, experts. Практические наблюдения и рекомендации». Development секция.
«Создание продукта для автоматизации тестировании. Что нужно учитывать, чтобы создать технологическую платформу. Разбор конкретного примера – продукта XML2Selenium». Development секция.
Open Source Testing Framework: real project example and best practicesAliaksandr Ikhelis
Summary: Presentation on open source testing frameworks (improved version, more focus on real project example) at Software Engineering Forum 2009 (SEF-1) conference by Aliaksandr Ikhelis. Sponte framework developer and owner is Stanislaw Wozniak, Expedia Limited, UK. Sponte project homepage: http://rubyforge.org/projects/sponte/; http://github.com/swozniak/sponte/tree/master
"Опыт создания системы управления сборкой и тестированием" (полная)SPB SQA Group
Доклад посвящен вопросам создания и использования собственной системы управления процессами сборки и тестирования ПО. Описываются ключевые моменты построения таких систем, в частности: вопросы интерфейсов, быстродействия, качества и интеграции в общую инфраструктуру. Затрагиваются концепции встраивания качества в код, сбора и использования метрик ПО, неотделимости сборки от тестирования, автоматизированного ведения базы знаний об ошибках и другие.
Разработка, тестирование и развертывание баз данных в Visual Studio Team Syst...Dmitry Andreev
Майкрософт, по совету наших пользователей, пересмотрел линейку продуктов VSTS и объединил издание для разработчиков с изданием для баз данных. VSTS 2010 предоставляет разработчикам ряд возможностей для улучшения процесса разработки БД, упрощения работы со структурами баз данных, генерации тестовых данных и организации развертывания и тестирования с помощью инструментария по управлению сборками. Интерпретация схемы объектов и взаимозависимостей между объектами БД позволяет разработчикам находить и устранять ошибки на более ранних стадиях проектирования. Интеграция исходников БД и кода приложения значительно упростит процесс разработки без дополнительных материальных затрат.
В докладе будет рассказано о том, как организовать процесс разработки базы данных в Visual Studio Team System 2010 в контексте новых возможностей.
This document discusses the evolution of data access from 1990 to 2010, focusing on object-relational mapping (ORM) techniques. It provides an overview of ORM as an abstraction technique for working with relational data as objects. The document outlines several ORM options available for .NET developers and describes Microsoft's strategic ORM technologies - LINQ to SQL and the ADO.NET Entity Framework. It provides details on Entity Framework's Entity Data Model and how to consume an EDM to query and manage data.
"Опыт создания системы управления сборкой и тестированием" (полная)SPB SQA Group
Доклад посвящен вопросам создания и использования собственной системы управления процессами сборки и тестирования ПО. Описываются ключевые моменты построения таких систем, в частности: вопросы интерфейсов, быстродействия, качества и интеграции в общую инфраструктуру. Затрагиваются концепции встраивания качества в код, сбора и использования метрик ПО, неотделимости сборки от тестирования, автоматизированного ведения базы знаний об ошибках и другие.
Разработка, тестирование и развертывание баз данных в Visual Studio Team Syst...Dmitry Andreev
Майкрософт, по совету наших пользователей, пересмотрел линейку продуктов VSTS и объединил издание для разработчиков с изданием для баз данных. VSTS 2010 предоставляет разработчикам ряд возможностей для улучшения процесса разработки БД, упрощения работы со структурами баз данных, генерации тестовых данных и организации развертывания и тестирования с помощью инструментария по управлению сборками. Интерпретация схемы объектов и взаимозависимостей между объектами БД позволяет разработчикам находить и устранять ошибки на более ранних стадиях проектирования. Интеграция исходников БД и кода приложения значительно упростит процесс разработки без дополнительных материальных затрат.
В докладе будет рассказано о том, как организовать процесс разработки базы данных в Visual Studio Team System 2010 в контексте новых возможностей.
This document discusses the evolution of data access from 1990 to 2010, focusing on object-relational mapping (ORM) techniques. It provides an overview of ORM as an abstraction technique for working with relational data as objects. The document outlines several ORM options available for .NET developers and describes Microsoft's strategic ORM technologies - LINQ to SQL and the ADO.NET Entity Framework. It provides details on Entity Framework's Entity Data Model and how to consume an EDM to query and manage data.
Типовая сборка и деплой продуктов в Positive TechnologiesPositive Hack Days
1. Проблемы в построении CI процессов в компании
2. Структура типовой сборки
3. Пример реализации типовой сборки
4. Плюсы и минусы от использования типовой сборки
Миграция БД - практический_подход с инструментами EmbarcaderoAndrew Sovtsov
Слайды вебинара компании Embarcadero. Запись вебинара: https://www.youtube.com/watch?v=X9EjeB-aVHM
Одна из наиболее часто возникающих задач - выполнить перенос структур и необходимых данных из существующей БД в новую реализацию или на другую платформу СУБД. Предложены варианты комплексного решения подобных задач с использованием программных средств Embarcadero
Основные аспекты управления веб-проектом в Microsoft Azure WebsitesArtur Baranok
Основные аспекты управления веб-проектом в Microsoft Azure Websites. Cоздание сайта из коллекции веб-приложений, выбор СУБД, средства развертывания, сервис Kudu, привязка собственного домена, использование HTTPS. Артур Баранок, Azure MVP
4. Общие возможности проектов VS
Управление изменениями БД
• Версионный контроль для схемы
• Инкрементальное развертывание
• Сравнение схем и данных
• Рефакторинг схем
Управление качеством БД
• Проверка и визуализация зависимостей
• Статический анализ
• Модульное тестирование и Генерирование данных
Интеграция процесса разработки БД с общим процессом
разработки
• Общая среда разработки
• Интеграция сборки БД с MS Build и Team Build
• Интеграция версионного контроля с TFS
www.cmcons.com
5. Доступность функций в различных
версиях VS
Visual Studio Database Project
Visual Studio Premium/Ultimate
Сравнение схем
Visual Studio Professional
Сравнение данных
Модульное Развертывание
Интеграция Генерирование Статический
тестирование из командной
Team Build данных* анализ кода*
БД* строки
Рефакторинг
www.cmcons.com
7. Обновление версий от N к N+1
Обновление от версии 1 к 2 и от 2 к 3
• ALTER TABLE dbo.Auction ADD description VARCHAR(25)
• ALTER TABLE dbo.Auction ALTER COLUMN description
VARCHAR(100)
Обновление от версии 1 к 3
• ALTER TABLE dbo.Auction ADD description VARCHAR(100)
www.cmcons.com
8. Visual Studio для оффлайновой
разработки
• Проект базы данных (.dbproj), предназначенный для управления разработкой базы
данных.
• Декларативная поддержка синтаксиса SQL, где схема определяется на языке базы
данных.
• Представление модели схемы для схемы базы данных, когда исходный код может
использоваться по кругу из источника модели и обратно.
• Модель схемы взаимодействует предоставления программную модели для
инструментария и дизайнеров баз данных.
• Интерпретация и проверка синтаксиса и схемы зависимостей SQL обеспечивает
целостность исходников без их выполнения в базе данных.
• Механизм сравнения схемы, который сравнивает проект с целевой базой данных для
генерирования скрипта обновления.
• Скомпилированные версии схемы базы данных позволяют отложенное
развертывание и создание скрипта (файл .dbschema).
• Файлы .DBSCHEMA могут быть развернуты в различных средах, содержащих
различные конфигурации.
www.cmcons.com
13. Общий код – сборка и зависимости
Публикация сборок для общих
компонент
• DBSCHEMA файлы для межпроектных сборок
• Части проектов для межпроектных сборок
• Составные проекты для команд по возможностям
Использование сборок для общих
компонент
• Интеграционные уровни
• Ответственность за качество опубликованных
компонент
www.cmcons.com
17. Сборка проекта
1) Проект базы данных загружается в память
2) Собирается модель проекта базы данных
a. Офлайновая модель схемы обновляется из кеша (если есть) или
собирается из .sql файлов в проекте.
b. Модель схемы и все зависимости проверяются.
3) Собирается проект базы данных
a. Офлайновая модель схемы проверяется.
b. Проектные параметры настройки обрабатываются и копируются.
c. Модели схем, на которые есть ссылки, копируются.
4) Собирается .dbschema
a. Модель схемы преобразовывается в последовательную форму и
упаковывается в.dbschema файл.
b. Создается манифест развертывания.
c. Если есть статический анализ кода, то он выполняется.
www.cmcons.com
18. Результаты сборки
.dbschema
• Преобразованная в последовательную форму XML
представление модели схемы. Представляет проект базы
данных.
.deploymanifest
• Манифест, содержащий всю информацию о конфигурации на
проектном уровне, которая позволяет развертывание без файла
проекта базы данных (.dbproj). Манифест - файл XML со
структурой, которая очень подобна файлу проекта MSBuild.
Pre and Post deployment scripts
• Эти отдельные файлы, которые будут запущены перед или
после скриптов, которые создают или обновляют базу (скрипты
развертывания). Может быть только по одноу скрипту, но можно
включать другие скипты внутрь этих.
www.cmcons.com
21. Развертывание в различных средах
Build verified Build verified
and promoted and promoted
to SIT to Prod
SIT UAT
(System (Acceptance
Integration) Testing)
Development Production
Build
www.cmcons.com
23. Развертывание с VSDBCMD
Build
Script.PreDeployment
Build/Drop Script.PostDeployment
Database.dbschema
www.cmcons.com
24. Конфигурирование развертывания
Database.sqlcmdvars
• Содержит наименования и значения для
переменных SQLCMD, которые используются
для развертывания проекта. Можно создавать
фал sqlcmdvars для каждой конфигурации.
Database.sqldeployment
• Содержит специфические для развертывания
настройки такие как имя базы данных и
строка соединения. Можно создавать фал
sqldeployment для каждой конфигурации.
www.cmcons.com
28. Типы тестов
Тестирование возможностей
• Тестирование хранимых процедур, функций и
триггеров
Тестирование схемы
• Проверка соответствия схемы БД
Тестирование безопасности
• Проверка правильного распределения доступа
Тестирование справочных данных
www.cmcons.com
29. Возможности VS для модульного
тестирования БД
Автоматическое Использование
генерирование предварительных и Предопределенные
скриптов очищающих тестовые условия
тестирования скриптов
Встраивание Использование
Генерирование
тестов в процесс тестов в контроле
тестовых данных
сборки версий
www.cmcons.com
30. Проверка теста
SQL Assertions
• Аналогом assert модульных тестов в модульных
тестах БД используется команда RAISERROR
Тестовые условия
• Количество строк
• Скалярные значения
• Пустой результат
• Не пустой результат
• Время исполнения
• Незаконченный
www.cmcons.com
32. Управление состоянием базы данных
Как я могу гарантировать что
данные в моей базе данных
именно те, которые я ожидаю при
выполнении тестирования?
• Необходимо убедиться, что база данных в
необходимом состоянии перед
выполнением тестов
• Необходимо убедиться, что база данных в
необходимом состоянии между каждым
тестовым запуском
www.cmcons.com
33. Управление состоянием базы данных
• Использование инструментов генерирования данных для установки
состояния БД перед запусков набора модульных тестов
• Восстановить БД из резервной копии или подключиться к
существующей БД
• Разрабатывать тесты не требующих определенного состояния и
устанавливать состояние с помощь предварительных условий
• Использовать транзакции
• Восстанавливать состояние после выполнения каждого теста
www.cmcons.com
34. Генерирование данных
• Использование промышленных данных для
тестирования
• Создание тестовых данных с нуля
Методы
• Настраиваемые генераторы данных
• Дополнительные генераторы
• Интеллектуальные назначения генераторов по
умолчанию
• Учет ограничений базы данных
Генератор • Расширяемость генератора и распределения
• Сгенерированные данные повторяемые
• Поддержка связей между таблицами
www.cmcons.com
37. Возможности
Позволяет
Отслеживает Проверяет
разрабатывать
потенциальные соответствие
собственные
ошибки стандартам
правила
Интегрируется с
Улучшает контролем
читаемость кода версий и
сервером сборки
www.cmcons.com
38. Типы вредупреждений
Проблемы проектирования Transact-SQL
• SR0001: не используйте запрос SELECT * в хранимых процедурах, представлениях и
функциях с табличным значением
• SR0008: рассмотрите возможность использования SCOPE_IDENTITY вместо @@IDENTITY
• SR0009: избегайте использования типов переменной длины с размером 1 или 2
• SR0010: не используйте устаревший синтаксис при объединении таблиц или представлений
• SR0013: выходной параметр (parameter) не заполняется во всех путях кода
• SR0014: потеря данных может произойти при приведении от {Тип1} к {Тип2}
Проблемы именования Transact-SQL
• SR0011. Избегайте использования специальных знаков в именах объектов
• SR0012. Избегайте использования зарезервированных слов в именах типов
• SR0016: избегайте использования префикса sp_ для хранимых процедур
Проблемы производительности Transact-SQL
• SR0004: не используйте столбцы без индексов в качестве тестовых выражений в предикатах
IN
• SR0005: не используйте шаблоны, которые начинаются с "%", в предикатах LIKE
• SR0006: для использования индекса столбца переместите ссылку на столбец на одну сторону
оператора сравнения
• SR0007: используйте функцию ISNULL(столбец, значение_по_умолчанию) в выражениях для
столбцов, допускающих значения NULL
• SR0015: вызовы детерминированной функции следует извлекать из предикатов WHERE
www.cmcons.com