От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
Подходы и практики применения процессов обеспечения качества при внедрении решений на базе SAP HANA
1. SQA Days
Беларусь 2015
Подходы и практики применения процессов обеспечения качества при внедрении
решений на базе SAP HANA
Андрей Воротягин
Технический консультант HP Software
2. SAP HANA
• High performance ANalytical Appliance
• Платформа BigData
Качество приложений
Качество данных
Тестирование производительности
• Новая СУБД для приложений SAP
Тестирование бизнес-процессов
Регрессионное тестирование
Тестирование приложений/транзакций
Тестирование производительности
Управление качеством
3. Цена устранения 1x 1x 5x 10x 15x 30x
Цена дефекта относительно момента его обнаружения
Важность управления качеством
Приемка Выпуск МониторингПланирование Дизайн Разработка
Ошибка заложена
Требования
План тестов
Оценка
проекта
Разработка,
Базовые тесты
Интеграционн
ые тесты
ОПЭ Продуктив
50.5%3.5%0% 16.5% 20.5%9%Ошибка
найдена
70% 20%
Источник: NIST
Тестирование
10%
Без учета
потерь
бизнеса!
4. Примеры рисков в проектах SAP
Риск срыва деятельности предприятия при внедрении, обновлении и запуске в эксплуатацию
приложений SAP
Риск несоответствия внедряемой системы требованиям бизнеса
Риск увеличения затрат из-за позднего обнаружения дефектов или несоответствий требованиям
Риск несоответствия производительности систем заданным критериям
5. Процесс тестирования "встроен" в SAP
Идентификация области
тестирования
Вид
изменения
Разработка
Концептуаль- ного
проекта
Конфигурация решения
Реализация новых
решений SAP
Обновления
Business Blueprint
Выявление бизнес
процессов
“поражённых”
обновлениями SAP
Рекомендованные
бизнес процессы
для регрессионного
тестирования
Пакеты поддержки
SAP
Пакеты расширений
SAP
Пользовательские
расширения
Пользовательские
модификации
Кастомизированные
изменения
Планирование
тестовых сценариев
Настройка
инфраструктуры для
тестирования
Компиляция тестового
кода и передача
команде QA
Создание тестовых
данных
Ручное тестирование
Автоматическое
тестирование
Проверка интеграций
уровня E2E
Управление
дефектами
Применение
изменений из
тестовой системы в
продуктив
Новые решения
SAP
Концептуальное
проектирование
Планирование и
под-готовка
тестирования
Выполнение
тестирования
Применение изме-
нений в продуктиве
Обновления SAP
Анализ влияния
изменения
6. Процессы управления
Управление изменениями
Управление релизами
Управление портфелем
Управление проектами
Управление проектными предложениями
Управление ресурсами
Управление проблемами
Управление дефектами
Управление запросами на
изменение ПО
Управление требованиями
Управление тестированием
(функциональное, нагрузочное)
Управление разработкой
(сборка, версионность,
интеграция с IDE)
Управление инцидентами
Управление знаниями
Управление конфигурациями
Управление уровнем услуг
Управление каталогом услуг
PP
M
ITS
M
ALM
7. Разработка и IT поддержка: Столкновение
миров?
Гибкая разработка IT Поддержка
Как мы можем
преодолеть разрыв?
“Будь гибким –
создавай релизы
быстрее”
“Изменение – это зло”
8. Расширение: DevOps
Гибкая разработка IT Поддержка
Ключевые факторы для
преодоления разрыва:
“Рабочая сборка” “Регулярные релизы
снижают риск”
Качество
Автоматизация
Сотрудничество
9. Решения для преодоления различий между разработкой и ИТ поддержкой
Решения HP DevOps для SAP
Автоматизация лаборатории
тестирования
Улучшение процесса тестирования
Корпоративное сотрудничество
Обеспечение организационного
взаимодействия, сотрудничества и
коммуникации
ALM
Объединение жизненного цикла
приложения для повышения
прозрачности, видимости и
сотрудничества
Ускореный процесс выпуска
релизов приложений
10. Улучшение качества ПО
Автоматизация лаборатории тестирования
• Преимущества
• Отказ от зависимости:
разработчики и тестировщики
управляют своей собственной
тестовой средой
• Постоянное тестирование
обеспечивает высокое качество
релизов
• Автоматизированное
развертывание
Сборка Проверка
Тестирование
Определени
е AUT -
топологии
Настройка
графика
ночного
тестировани
я
Определени
е тестовых
сценариев
Проверка
кода
разработчико
м
Единоразовая настройка Повторяющиеся действия
Ночная
сборка
билда
Выделение
инфраструктур
ы
Развёртывани
е
Прогон тестов
Предоставлен
ие результатов
Освобождение
инфраструктур
ы
14. Existing InfrastructureApplication Under Test
Сторонние
Проблемы композитных приложений
SSO
Мобильное
приложение
JDBC
SOAP
IDOC/
RFC
LDAP
SAP System
Имеющиеся СУБД
Web-сервисы и
унаследованные
приложения
REST
JMS
Браузер
Композитное
приложение
Сервисы
приложения
• Компоненты ещё не готовы
• Ограниченный доступ к компонентам
• Сторонние платные сервисы
• Сложновоспроизводимые тестовые данные
• Вопросы безопасности и ограниченного
доступа
• В итоге:
• Ожидание
готовности сервиса
для тестирования
• Неполное
тестирования из-за
недоступности
приложений или
данных
15. Существующая инфраструктура
SSO
JDBC
SOAP
IDOC/
RFC
LDAP
SAP System
Имеющиеся СУБД
REST
JMS
Сторонние
Web-сервисы и
унаследованные
приложения
JMSUnder
construction
Pay-per-transaction
Тестируемое приложение
Мобильное
приложение
Браузер
Композитное
приложение
Сервисы
приложения
Симуляци
я
Виртуализация
сервисов
SOAP
REST
JMS
MQ
Data
Performanc
e
Configuratio
n
Выход в виртуализации сервисов
Продолжайте разработку и тестирование с виртуализированными
сервисами
• Виртуальные сервисы всегда доступны
• Виртуализированные сценарии данных
• Доступно для разработки и
тестирования
• Общие сервисы – дешевле
инфраструктура
16. Задача: сквозное тестирование
Сквозной
бизнес-
процесс
Графический
интерфейс
Слой API
SAP
Экран 3
(ABAP)
Экран 4
(HTML)
.NET API Rest API RFC
JMS
Service
.NET API Rest
Процесс
Новая
транзакция
Exchange
Экран 5
(AJAX)
Экран 6
(Java)
Web2.0
Биллинг
Экран 1
(AJAX)
Экран 2
(Java)Э
Взаимодействие с современными графическими интерфейсами
Продолжение сценария на уровне API
Тестирование интеграции между уровнями
Отчёт о качестве сквозного процесса
18. + Network Virtualization
• Реалистичное нагрузочное тестирование
• Тестирование в хороших и ПЛОХИХ сетевых
условиях
• Понимание влияния сервисов на всю
систему
• Симуляция динамических сетевых
характеристик для реалистичного
нагрузочного тестирования:
• Динамическая полоса пропускания
• Задержка
• Потери пакетов
Законченное решение для нагрузочного тестирования композитных
приложений
Анализ производительности на сети
Сетевые
характеристик
и
LoadRunne
r
Мониторинг
и
диагностика
Network
Virtualization
19. Автоматизировать и ускорить цикл выпуска приложений
Решение НР для ускорения выпуска релизов
Ускорение окупаемости
• Ускорение циклов релиза приложений
Улучшение качества
• Уменьшение количества ошибок во время
развёртывания
Предоставление гибкости
• Продукты НР или других компаний, а также
продукты управления с открытым исходным
кодом
• Инфраструктура
Разработка QA
UATПродуктив
20. Давление конкурентов вынуждает компании создавать релизы быстрее
Текущий процесс управления релизами
Разработка
QA
Продуктив
UAT
Трудности
• Процессы резервирования ресурсов и развёртывания отнимают много
времени
• Ручные процессы часто влекут за собой ошибки
• Различные инструменты и процессы предусмотренные для каждого шага
• Много ручной работы по созданию руководств и чек-листов
• “На моей машине всё работает!”
21. Ускоренный процесс выпуска релизов вместе с
улучшением качества
Улучшеный процесс управления релизами
Разработка
QA
Продуктив
UAT
• Единая платформа управления на протяжении всех стадий релиза
• Автоматическое развёртывение
• Портативность приложения
• Модельно-ориентированный подход
• Обмен знаниями и опытом на протяжении всех этапов
Quality must be mastered as we all know the cost of quality is exponential when defects lag into production.. This diagram explains it clearly!
What exactly our HP approach and solutions:
- Cost-Effective risk mitigation of implementations and upgrades from technology prospective from process prospective and from organization prospective
Delivery and operations look at things from a different perspective:
Delivery’s focus is working directly with the business and doing everything they can to provide new features and functionality as quickly as they are able to.
By contrast, the traditional mindset of Operations is that change brings the risk of issues and outages. Their whole life has been about how to avoid change, to keep things as stable as absolutely possible. They are typically measured on the availability and stability of their systems. – so it’s perfectly natural for them to view “change as evil”
These are two very contradictory perspectives. It ultimately creates friction, adds risk, and slows down IT in its goal of delivering value for the business.
How do you reconcile these views?
The answer is DevOps and Continuous Delivery.
DevOps is a set of principles and methods for better collaboration between Software Delivery and Operations essentially attempting to extend the Agile mindset to incorporate Operations. It’s in response to the growing recognition of the dependency these two disciplines have on one another in being able to satisfy the Business’s objectives.
Continuous Delivery, which is enabled by DevOps, focuses on what is ultimately important – which is shorter cycles for actually putting functionality in the hands of users. It relies not only on better collaboration, but on comprehensive automation of the build, test and deployment process, so that - at the extreme level – every code change that passes automated functional, performance and security testing could be immediately deployed into production – Continuous Delivery isn’t necessarily deploying, but rather providing the ability to “release on demand.” Meaning, it allows releases to be driven by business need as opposed to operational constraints. Another way of thinking of Continuous Delivery is “nimble deployment and operations” to match the nimbleness in delivery that was brought by Agile.
The keys to DevOps and Continuous Delivery are Quality, Automation, and Collaboration
Focusing on these 3 things will help address the biggest hurdle, which is changing the traditional mindsets that these two groups have had:
The development view shifts to one of building applications that are easy to run and easy to support. This means they are easy to release, monitor, and troubleshoot in production as opposed to delivery just doing their part and throwing it over the wall, with an attitude of, “yep - it meets the business requirements, so we’ve done our job.” As an example, Dev should design systems to be secure and to perform from the outset. It might not be super exciting from a developer perspective, but it is critical from an operations perspective and being able to go live.
On the Operations side, the perspective moves away from the view that “change is evil” and ops recognizes that regular releases can actually reduce risk. Whereas traditional deployment events for many organizations are these huge, high-stress, high-risk activities, over late nights and weekends, deployments within DevOps organizations are less stressful, lower risk events because releases occur more often. They become “non-events” because they happen regularly and the processes are proven out as a result. With less functionality going in at one time, there is also less that can go wrong. And if something does go wrong, developers are in a better position to make fixes – having just worked on the functionality. A roll-back, if needed, is also much easier with a smaller implementation. All this translates into lower risk, steadier, more manageable pace, with fewer incidents in production.
There are four solutions in our DevOps portfolio.
The HP Lab Management Automation solutions accelerates the application testing process. This solution automatically provisions the infrastructure, deploys the application, runs the test suite, collects the results then decommissions the application and infrastructure. The Lab Management Automation solution is based on ALM 11.5, CDA 1.1 and MOE 7.
The Enterprise Collaboration solution improves collaboration between developers and IT Operations with tools to ensure organizational alignment, collaboration and communications.
The Application Lifecycle Management solution unifies the application lifecycle for alignment, visibility and collaboration. This solution is based on ALM 11.x
Application Release Acceleration, a new solution based on HP Continuous Delivery Automation, accelerates the application release process, improves application success rates while supporting HP, third party and open source tools. This solution is based on CDA 1.1 and MOE 7.x.
HP Continuous Delivery Automation 1.1 is the latest version of this product, enhancing it so it support both the Lab Management Automation solution and the Application Release Acceleration solution.
We announced the HP Lab Management Automation Solution in June. With this solution, HP helps customers automate the entire testing process. This solution automatically provisions the infrastructure, deploys the application, runs the test suite, collects the test results, then decommissions the application and infrastructure.
This solution includes ALM 11.5 and CDA.
Mobile testing will give you unreliable results if you are testing only in your physical lab environment. This is because you cannot account for the effect of the network on the end user experience, or communication with external services.
Virtualizing network conditions in the test lab is the only way to get accurate and reliable insight into application performance.
Network Virtualization helps you bring real-world network conditions like dynamic bandwidth, latency, network jitter, and packet loss into the lab. As a result, performance test results more reliably predict how an a mobile app will perform once deployed to your users.
Demographics/environment –
Customers deploying mobile applications
Customers migrating applications to a Cloud-hosted environment
Customers who are migrating or consolidating a data center
Customers who are deploying VDI or Citrix
VDI (Virtual Desktop Infrastructure) = the process of running a user desktop inside a virtual machine that lives on a server in the datacenter.
The Application Release Acceleration solution helps enterprises bring applications through the application process faster, from development to production. Using a model-based approach, this solution also improves quality by increasing the application deployment success rate while provide choice of HP, third party or open source tools.
Lets start by discussing the current application release process.
The application release process starts with development, then includes QA (Quality Assurance), staging and production. Typically, this is a manual process. As the applications goes from one stage to the next, a new application and infrastructure design needs to be developed that best fits the requirements of that stage.
The challenges with this process include:
This manual process is error prone
There’s little to no best practice or knowledge sharing from one stage to the next
Different tools and processes are use for each stage
If the application doesn’t work when its moved from on stage to the next, the response is often, “it works on my machine so it must be your problem”.
Enterprises are looking for a better environment that offers reduces the time it takes for applications to go through the entire process, that reduces the errors works with the tools being used in each stage.
A better process would have the following characteristics
One tool to manage the infrastructure provisioning and application deployment for each stage
Infrastructure provisioning and application deployment would be automated
Application portability would allow the same application model to be used in each stage, but with the infrastructure changing as required by each stage
Model-driven approach would simplify the process of moving the application through the stages
A mechanizm to share best practices and knowledge from one stage to the next