Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

Автоматизация тестирования - это пот, кровь и слезы

665 Aufrufe

Veröffentlicht am

Под капотом автоматизации тестирования продукта для защиты виртуализации

Veröffentlicht in: Ingenieurwesen
  • Paid To Facebook? Earn up to $200/day on social media sites. ▲▲▲ https://tinyurl.com/rbrfd6j
       Antworten 
    Sind Sie sicher, dass Sie …  Ja  Nein
    Ihre Nachricht erscheint hier
  • Gehören Sie zu den Ersten, denen das gefällt!

Автоматизация тестирования - это пот, кровь и слезы

  1. 1. Автоматизация тестирования - это пот, кровь и слезы Под капотом автоматизации тестирования продукта для защиты виртуализации Максим Шульга, Код Безопасности
  2. 2. О себе Шульга Максим 15 лет разрабатываю софт, 10 лет с тестами Начальник отдела разработки и тестирования “Код Безопасности” http://maxshulga.ru @maxbeard 2 Все используемые картинки являются собственностью тех, кто их запостил в Интернет
  3. 3. Автоматизация тестирования - это пот, кровь и слезы 3 Больше пота = меньше крови @maxbeard12
  4. 4. Автоматизация - как начать и не бросить? Зачем нужна автоматизация тестирования? Какие инструменты использовать? Запуск, анализ результатов тестов Как эти тесты рождаются Общие рекомендации Полезные ссылки 4 Помидоры сюда > @maxbeard12
  5. 5. vGate - защита VMware vSphere или Microsoft Hyper-V 5
  6. 6. Особенности разработки vGate (в т.ч тестирования) 6 - 95% кода это С++, много низкоуровневых частей (драйвера, сетевые протоколы, хаки) => особенности автоматизации - сертифицируемый продукт => сложности с фиксами - большое количество вариантов использования => подготовка стендов, запуск одних и тех же тестов на разном окружении @maxbeard12
  7. 7. Особенности разработки vGate (в т.ч тестирования) 7 - распределенное развертывание => в проверке сценариев участвуют несколько машин - 95% компонентов работают на Windows = вопросы по выбору инструментов - много legacy => есть древние непокрытые тестами куски кода @maxbeard12
  8. 8. Автоматизация - как начать и не бросить? Зачем нужна автоматизация тестирования? Какие инструменты использовать? Запуск, анализ результатов тестов Как эти тесты рождаются Общие рекомендации Полезные ссылки 8
  9. 9. Выбор инструмента Свой велосипед vs готовое решение На чем писать: 1. Язык продукта 2. Python 3. Отталкиваемся от “исторических причин” 4. Отталкиваемся от API “окружения” 5. Тулы (автоматизация В тестировании) 6. Еще что-нибудь? http://www.maxshulga.ru/2015/04/how-to-find-correct-test-framework.html 9@maxbeard12
  10. 10. “Уровень” тестов 10 Пагубная страсть к ритуальным сооружения? @maxbeard12
  11. 11. “Уровень” тестов 11@maxbeard12
  12. 12. Как у нас дела с “пирамидой” тестирования? - мало юнит-тестов - много высокоуровневых - нет тестов на UI 12@maxbeard12
  13. 13. У нас не пирамида, у нас небоскреб :) 13 Rainer Tower Seattle 1977 год 156 м
  14. 14. Автоматизация - как начать и не бросить? Зачем нужна автоматизация тестирования? Какие инструменты использовать? Запуск, анализ результатов тестов Как эти тесты рождаются Общие рекомендации Полезные ссылки 14
  15. 15. Модульные тесты (язык продукта) Используем gtest и gmock (Google C++ test framework) Большей частью ими тестируется библиотечный код Не брезгуем несколькими проверками в одном тесте (Expect vs Assert) gtest используется не только для “канонических” юнит-тестов Моя презентация “Тестируем legacy C++” (http://www.slideshare.net/MaximShulga/legacy-c- 15355976) 15@maxbeard12
  16. 16. Модульные тесты - почему мало? Много хак-кода, драйвера Удобнее писать тесты на “реале” - у разработчиков есть возможность разворачивать стенды на своей машине А может просто не умеем... 16@maxbeard12
  17. 17. Модульные тесты - почему мало? Много хак-кода, драйвера Удобнее писать тесты на “реале” Меняешь реализацию, а тесты продолжают работать 17@maxbeard12
  18. 18. Инструменты для “немодульных” тестов vGate Исторические причины = STAF/STAX + C# NUnit API окружения = FitNesse + PowerSlim Язык продукты = gtest (тесты похожи на “юнит”, но работают с реальной системой) Тулы = sikuli (www.sikuli.org) используем для активации функциональности vSphere Web Client (flash) 18@maxbeard12
  19. 19. STAF/STAX http://staf.sourceforge.net Больше 14 лет и до сих пор живой FREE Multi-platform (Windows, Unix) Multi-agents Универсальный запускатель 19@maxbeard12
  20. 20. FitNesse+PowerSlim 20 FitNesse http://www.fitnesse.org/ – 10 лет, Java, C#, C++, Python PowerSlim – почти 5 лет. Quest Software, Dell, Код Безопасности https://github.com/konstantinvlasenko/PowerSlim @maxbeard12
  21. 21. FitNesse+PowerSlim 21@maxbeard12
  22. 22. FitNesse+PowerSlim 22
  23. 23. FitNesse+PowerSlim 23@maxbeard12
  24. 24. FitNesse+PowerSlim 24 Неожиданности (непривычности) при использовании Недостаточно программерский инструмент ;) Несолидно ;) Больше про PowerSlim тут http://www.maxshulga.ru/search/label/Fitnesse @maxbeard12
  25. 25. Тесты “через” UI 25@maxbeard12
  26. 26. Тулы для “нефункциональных” тесты Нам важно не замедлять работу пользователя с виртуальной инфраструктурой Эмуляция пользовательской нагрузки (PowerShell) Стабилизация (утечки, работа с базой) Нагрузка на сеть (iperf3) 26“Нагрузочные тесты прошли” (с) @maxbeard12
  27. 27. Автоматизация - как начать и не бросить? Зачем нужна автоматизация тестирования? Какие инструменты использовать? Запуск, анализ результатов тестов Как эти тесты рождаются Общие рекомендации Полезные ссылки 27@maxbeard12
  28. 28. Незапускаемые регулярно тесты - мертвые тесты. Jenkins (1.625.3) - наша “всея запускалка”: Сборка Скрипты развертывания Запуск тестов 28 “Утро после ночного билда”@maxbeard12
  29. 29. Приемы использования Jenkins и полезные расширения Параметризуемые “работы” (Job Config History) Связки из “работ” (Build Flow, Copy Artifact) Мониторинг (Build Monitor) Еще полезности: Artifact Deployer, Build timeout 29@maxbeard12
  30. 30. Контроль выполнения 30@maxbeard12
  31. 31. Тесты прошли. Что дальше? 31 @maxbeard12
  32. 32. Тесты прошли. Что дальше? Анализ результатов Контроль времени выполнения Учет количества запущенных тестов Борьба с “моргающими” тестами Багофикс 32@maxbeard12
  33. 33. Анализ результатов Диагностика История результатов запусков Облегчение для разбора тестов (например, логирование старт-стопа тестов в логи продукта) 33@maxbeard12
  34. 34. Как релизимся? Спрашивают - отвечаем - Каждый релиз с Чумаком? - Нет, не каждый. Кашпировского еще призываем, шаманов и прочих экстрасексов :) 34@maxbeard12
  35. 35. Как релизимся? Время полной автопроверки сейчас около 2-х рабочих дней Ручная проверка (сетапы, UI) Code freeze (1-2 недели) 35@maxbeard12
  36. 36. Автоматизация - как начать и не бросить? Зачем нужна автоматизация тестирования? Какие инструменты использовать? Запуск, анализ результатов тестов Как эти тесты рождаются Общие рекомендации Полезные ссылки 36@maxbeard12
  37. 37. Как тесты рождаются? Test first? It depends on… Обсуждение того, что будем проверять Анализ уже имеющихся “кубиков” для настройки окружения, продукта, проверок Разработчик отвечает за то, чтобы его код проверялся Боремся с “хвойными” (вечнозелеными) тестами 37@maxbeard12
  38. 38. Общие рекомендации по автоматизации Автоматизация - работа всей команды Разработчики должны участвовать в автоматизации 38 Теория “сухого памперса” @maxbeard12
  39. 39. Общие рекомендации по автоматизации Автоматизировать или нет? Если не нужно, то не надо. Вы поймете, когда нужно. Начните с малого. 39@maxbeard12
  40. 40. Общие рекомендации по автоматизации Начните с малого. ● legacy: Начните писать тесты на фиксы (может даже через UI), начните писать новый код с тестами ● Изучаете новый язык - изучайте тестовые инструменты к нему ● при выборе ATF учитывайте архитектуру вашего приложения и то окружение в котором он работает ● Контроль за временем выполнения 40@maxbeard12
  41. 41. Автоматизация тестирования - это пот, кровь и слезы 41 Больше пота = меньше крови @maxbeard12
  42. 42. Общие рекомендации по автоматизации 42 Больше пота = меньше крови Но коэффициент меняется... @maxbeard12
  43. 43. Полезные ссылки Автоматизация тестирования. С чего начинать, возможные проблемы Как перестать бояться и начать автоматизировать (А. Лянгузов) Сказка-быль о попытке оценить ROI автоматизации (Н.Макаров) Серия статей о FitNesse+PowerSlim Про Code Freeze от С.Мартыненко (http://blog.shumoos.com/archives/317) ГОСТ Р 56939-2016 Защита информации. Разработка безопасного программного обеспечения. Общие требования *линки можно увидеть на последнем слайде 43@maxbeard12
  44. 44. Вроде все :) Вопросы? http://maxshulga.ru @maxbeard 44
  45. 45. Полезные ссылки http://www.maxshulga.ru/2012/04/blog-post_21.html https://vimeo.com/173420986#at=101 http://test-failed.blogspot.ru/2015/02/software-stories-roi.html http://www.maxshulga.ru/search/label/Fitnesse http://blog.shumoos.com/archives/317 http://protect.gost.ru/v.aspx?control=8&baseC=-1&page=0&month=-1&year=- 1&search=&RegNum=1&DocOnPageCount=15&id=195653&pageK=59430995- 38C6-4236-ABFE-798B2D5C2D4E 45@maxbeard12

×