Видео: http://www.youtube.com/watch?v=vz0U3jQpHSM
Это обзор опыта применения лучших практик разработки программного обеспечения на разных проектах от госзаказов до видеоконференций в командах от 5 до 50 человек. В докладе будут описаны не только практики, но и то, как они применяются на реальных проектах и какие выгоды они действительно приносят.
Алексей Петров, Mail.Ru Group, "Организация конвейера автоматизации тестирова...Mail.ru Group
Доклад о том, с чего начать выстраивать конвейер автоматизации тестирования. Как не утопить автоматизацию в мнимых штампах и стереотипах, построив по-настоящему эффективный процесс автоматизации тестирования.
Поделюсь опытом и расскажу:
- о том, с чего начать автоматизацию тестирования;
- о том, что делает автоматизированные тесты выгодными;
- как научить "зарабатывать" автотесты;
- о том, как превратить точечное написание автоматизирвоанных тестов в стройный конвейер с отлаженными процессами;
- о популярных ошибках и заблуждениях автоматизации тестирования и о том, как их избегать;
- о сопутствующих инструментах и лайфхаках из практики.
Доклад содержит полезные советы, как для тех, кто только думает внедрить автоматизацию тестирования, так и для тех, кто уже вовсю автоматизирует, но сталкивается с проблемами их эффективной работы или желает сделать автотесты еще более полезными.
Видео: http://www.youtube.com/watch?v=vz0U3jQpHSM
Это обзор опыта применения лучших практик разработки программного обеспечения на разных проектах от госзаказов до видеоконференций в командах от 5 до 50 человек. В докладе будут описаны не только практики, но и то, как они применяются на реальных проектах и какие выгоды они действительно приносят.
Алексей Петров, Mail.Ru Group, "Организация конвейера автоматизации тестирова...Mail.ru Group
Доклад о том, с чего начать выстраивать конвейер автоматизации тестирования. Как не утопить автоматизацию в мнимых штампах и стереотипах, построив по-настоящему эффективный процесс автоматизации тестирования.
Поделюсь опытом и расскажу:
- о том, с чего начать автоматизацию тестирования;
- о том, что делает автоматизированные тесты выгодными;
- как научить "зарабатывать" автотесты;
- о том, как превратить точечное написание автоматизирвоанных тестов в стройный конвейер с отлаженными процессами;
- о популярных ошибках и заблуждениях автоматизации тестирования и о том, как их избегать;
- о сопутствующих инструментах и лайфхаках из практики.
Доклад содержит полезные советы, как для тех, кто только думает внедрить автоматизацию тестирования, так и для тех, кто уже вовсю автоматизирует, но сталкивается с проблемами их эффективной работы или желает сделать автотесты еще более полезными.
“Можно ли перевернуть пирамиду?” – автоматизируем тестирование с меньшим числ...Igor Khrol
Когда мы говорим об автоматизации тестирования, чаще всего вспоминается Selenium, Microsoft Coded UI, QTP и другие аналогичные инструменты. Мы хотим воспроизводить действия ручного тестирования с максимальной точностью, чтобы можно было с уверенностью сказать, что тот или иной тест-скрипт повторяет какую-то часть сложившихся на проекте тестов. Когда же тестов становится чуть больше, то мы обнаруживаем, что наши тесты запускаются долго, работают нестабильно. После чего мы начинаем говорить о параллелизации, виртуализации, четырёхслойной архитектуре фреймворка и прочих жутко интересных вещах… Это всё очень хорошо, но главная цель где-то остаётся в стороне – контроль качества нашего продукта.
В своём докладе я попытаюсь слегка задать направление другой альтернативе: отойти от автотестов через пользовательский интерфейс в сторону более низкоуровневых, которые значительно быстрее и стабильнее. Если вас также волнует “переворачивание” пирамиды автоматизации тестирования, то приглашаю присоединиться к обсуждению этой сложной и важной темы.
Алексей Халайджи, Mail.Ru Group, «Как мы автоматизируем UI-тестирование в iOS...Mail.ru Group
Алексей рассказал, какие задачи и проблемы стояли перед командой в начале пути, какие технологии используются для автоматизации тестирования, какие проблемы при этом возникают и как решаются, а также поделится достигнутыми результатами.
Современный мир ускоряется, и от тестирования требуется быстрые и стабильные тесты. В этом мастер-классе предлагается уйти от UI автоматизации и перейти на уровень ниже "пирамиды тестирования", на уровень WEB API. Не обещаю теорию, но будет много практических кейсов. В качестве примера я возьму популярный веб сайт с открытым API и покажу как за относительно небольшое время можно создавать хорошие тесты! Причем тесты мы будем создавать совместно, и особых навыков программирования от участников здесь не потребуется, достаточно включить логику и желание освоить что-то новое.
В этом докладе вы услышите историю о том, как можно построить процесс автоматизированного тестирования и непрерывной интеграции за короткий период времени. Мы поговорим о точках роста, развития и внедрения автоматизированного тестирования на уже существующем проекте. Вы узнаете, что с чего начинать автоматизированное тестирование и как выбрать "работающую" стратегию. После доклада вы захотите избавиться или значительно сократить ручное тестирование и ручной труд у себя на проекте. Вы откроете для себя целую систему, элементы который можно будет внедрять у себя, и которые будут работать.
Доклад будет интересен всем тестировщикам, разработчикам и менеджерам проектов.
Альтернативные способы изучения программирования с нуляCOMAQA.BY
Мы поговорим о мировых практиках изучения программирования с нуля в игровой форме – от программирования лего роботов, до ... интрига-интрига, приходите и узнаете 10-ток альтернативных вариантов изучения этой замечательной дисциплины.
Автоматизация визуального тестирования адаптивного дизайна на примере Galen F...COMAQA.BY
Автоматизация тестирования визуальных регрессий, как особый вид тестирования, может поставить в тупик даже опытных специалистов своей отрасли. Тем более, если речь идёт об адаптивном дизайне.
Задача тестирования адаптивной верстки не является простой, хотя бы по той причине, что требует большого времени на проверку отображения визуального контента и покрытие всей требуемой матрицы платформ, браузеров и разрешений экрана.
Тем не менее существуют способы эффективного использования таких инструментов как Galen Framework и Applitools Eyes и интеграции их в уже существующую среду тестирования.
На наглядном примере сайта, имеющего адаптивный дизайн, я расскажу о том, как можно с лёгкостью применять вышеуказанные инструменты с целью избежать как можно больше разнообразных регрессионных визуальных ошибок.
Также будут подробно рассмотрены варианты построения архитектуры тестов и организации работы с дизайном приложения в целом.
“Можно ли перевернуть пирамиду?” – автоматизируем тестирование с меньшим числ...Igor Khrol
Когда мы говорим об автоматизации тестирования, чаще всего вспоминается Selenium, Microsoft Coded UI, QTP и другие аналогичные инструменты. Мы хотим воспроизводить действия ручного тестирования с максимальной точностью, чтобы можно было с уверенностью сказать, что тот или иной тест-скрипт повторяет какую-то часть сложившихся на проекте тестов. Когда же тестов становится чуть больше, то мы обнаруживаем, что наши тесты запускаются долго, работают нестабильно. После чего мы начинаем говорить о параллелизации, виртуализации, четырёхслойной архитектуре фреймворка и прочих жутко интересных вещах… Это всё очень хорошо, но главная цель где-то остаётся в стороне – контроль качества нашего продукта.
В своём докладе я попытаюсь слегка задать направление другой альтернативе: отойти от автотестов через пользовательский интерфейс в сторону более низкоуровневых, которые значительно быстрее и стабильнее. Если вас также волнует “переворачивание” пирамиды автоматизации тестирования, то приглашаю присоединиться к обсуждению этой сложной и важной темы.
Алексей Халайджи, Mail.Ru Group, «Как мы автоматизируем UI-тестирование в iOS...Mail.ru Group
Алексей рассказал, какие задачи и проблемы стояли перед командой в начале пути, какие технологии используются для автоматизации тестирования, какие проблемы при этом возникают и как решаются, а также поделится достигнутыми результатами.
Современный мир ускоряется, и от тестирования требуется быстрые и стабильные тесты. В этом мастер-классе предлагается уйти от UI автоматизации и перейти на уровень ниже "пирамиды тестирования", на уровень WEB API. Не обещаю теорию, но будет много практических кейсов. В качестве примера я возьму популярный веб сайт с открытым API и покажу как за относительно небольшое время можно создавать хорошие тесты! Причем тесты мы будем создавать совместно, и особых навыков программирования от участников здесь не потребуется, достаточно включить логику и желание освоить что-то новое.
В этом докладе вы услышите историю о том, как можно построить процесс автоматизированного тестирования и непрерывной интеграции за короткий период времени. Мы поговорим о точках роста, развития и внедрения автоматизированного тестирования на уже существующем проекте. Вы узнаете, что с чего начинать автоматизированное тестирование и как выбрать "работающую" стратегию. После доклада вы захотите избавиться или значительно сократить ручное тестирование и ручной труд у себя на проекте. Вы откроете для себя целую систему, элементы который можно будет внедрять у себя, и которые будут работать.
Доклад будет интересен всем тестировщикам, разработчикам и менеджерам проектов.
Альтернативные способы изучения программирования с нуляCOMAQA.BY
Мы поговорим о мировых практиках изучения программирования с нуля в игровой форме – от программирования лего роботов, до ... интрига-интрига, приходите и узнаете 10-ток альтернативных вариантов изучения этой замечательной дисциплины.
Автоматизация визуального тестирования адаптивного дизайна на примере Galen F...COMAQA.BY
Автоматизация тестирования визуальных регрессий, как особый вид тестирования, может поставить в тупик даже опытных специалистов своей отрасли. Тем более, если речь идёт об адаптивном дизайне.
Задача тестирования адаптивной верстки не является простой, хотя бы по той причине, что требует большого времени на проверку отображения визуального контента и покрытие всей требуемой матрицы платформ, браузеров и разрешений экрана.
Тем не менее существуют способы эффективного использования таких инструментов как Galen Framework и Applitools Eyes и интеграции их в уже существующую среду тестирования.
На наглядном примере сайта, имеющего адаптивный дизайн, я расскажу о том, как можно с лёгкостью применять вышеуказанные инструменты с целью избежать как можно больше разнообразных регрессионных визуальных ошибок.
Также будут подробно рассмотрены варианты построения архитектуры тестов и организации работы с дизайном приложения в целом.
Алексей Лустин. Непрерывная проверка качества кода.ScrumTrek
Я расскажу о нашем двухлетнем опыте использования инженерной практики «Continious Inspection» и платформы SonarQube при организации кросс-языковой разработки в процессе «непрерывной поставки» (CI-CD для языков Java, C#, JavaScript, typeScript и Gherkin) при автоматизированном code-review.
Джоэл Спольски много лет назад придумал тест на качество и адекватность IT-компании, но ценности он не теряет и по сей день.
Сентябрь 2014, TechTalks NSU, Новосибирск
Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)Ontico
HighLoad++ 2017
Зал «Пекин + Шанхай», 8 ноября, 17:00
Тезисы:
http://www.highload.ru/2017/abstracts/2991.html
Нынче стало модно выделять UI-компоненты в отдельную библиотеку и использовать её в нескольких проектах. Мы в команде почты Mail.ru делаем так же, но столкнулись с проблемой: каждый разработчик, меняя библиотеку под свои нужды, обязательно ломает что-нибудь, что работало у других.
Я расскажу о том, как мы решили эту проблему, и о том, какие инструменты для этого можно использовать. Storybook, BackstopJS, Jest, Webdriver.io, TypeScript - в их числе.
Как построить свой фреймворк для автотестов?Dmitry Buzdin
Мы пройдемся по всем основным блокам построения тестового фреймворка и тому, как они связаны между собой. Вы научитесь собирать свое решение по автоматизации из библиотек с открытым кодом и делать так, чтобы они дополняли друг друга.
Тестирование — это способ узнать о разнообразных проблемах, которые могут возникнуть во время разработки вашего проекта. В лекции рассмотрены различные виды тестирования и различные практики, которые позволят вам узнавать о проблемах заранее.
Glib Rybalko, GlobalLogic’s Test Lead, consultant and trainer was among 26 known Ukrainian and international experts who took a word on IT Weekend Ukraine 2013. Glib discussed features of automated software testing, benefits and feasibility of using this approach on various projects. During his speech, Glib pointed all necessary steps of automated testing implementation and gave homework for those who were interested in this field and wanted to implement it in their projects.
Юнит тестирование в Web. Как получать пользу и удовольствие.
1. Юнит тестирование в веб. Как
получать пользу и удовольствие.
Рябенко Сергей. 09.06.2012.
2. Определения
• Unit testing — процесс в программировании, позволяющий
проверить на корректность отдельные модули исходного кода
программы.
• Удовольствие — положительно окрашенная эмоция,
сопровождающая удовлетворение одной или нескольких
потребностей.
• Польза — …
(c) wikipedia.org
8. Исходные данные Через пол года
• Покрываем код на 100% • Править тесты гораздо
• Фича не сдана, если на нее сложнее чем код
не написаны тесты • Тесты до 1500 строк!
• Используем PHPUnit • Тесты выполняются больше
• Непрерывная интеграция часа
• При выполнении тестов PHP
падает по памяти
• Баги все равно находятся
9. Когда не стоит писать тесты
• При создании прототипа
• При работе «в потоке»
• На «примитивный код»
• На пользовательский интерфейс
• You are doing it wrong
• Ваши варианты?..
10. Когда СТОИТ писать тесты
• Во всех остальных случаях...
• … Когда вы делаете это правильно!!!
11. Как писать тесты правильно
• Писать хороший код
• Тестировать поведение и помнить о FIRST принципах
• Использовать правильные инструменты
– PHPUnit
– Непрерывная интеграция
• Использовать IoC
– Dependency Injection
– Service Locator
• Использовать Mock/Stub объекты
• Применять шаблоны SOLID, GRASP (Low coupling, High Cohesion,
Factory)
16. Тестировать поведение
• 10 Сформулировать требования к коду
• 20 Изложить их в тесте в виде:
// GIVEN
// WHEN
// THEN
Так же называется AAA (Arrange-Act-Assert)
• 30 Запустить, убедится что тест не проходит
• 40 Написать код
• 50 Запустить, убедится что тест проходит
• 60 При необходимости или желании провести рефакторинг кода
• GOTO 10
20. Использовать правильные инструменты
• PHPUnit. Не Lime и не любой другой lim’о подобный
фреймворк!
• IDE debug в тестах
• Непрерывная интеграция
– CruiseControl (PHPUnderControl)
– Hudson
– TeamCity
• Запускать тесты каждый вечер автоматически
• Запускать группы тестов перед каждым коммитом
• Не меряйтесь процентом покрытия кода тестами
21. Inversion of Controll
• Правильно расписать «швы» системы. Не создавать сервисы в
классах-клиентах. Не использовать низкоуровневые функции
напрямую
• Использовать Dependency Injection или Service Locator
29. Мы решаем 100% кода покрывать юнит
тестами!
• mail слишком сложно тестировать
• При тестировании каждого аспекта будет выполняться много
ненужного кода
• Тест метода будет объемным
30. Какие есть проблемы в коде?
Явные проблемы:
•$user->setUsername($usermame);
•if (!$form->isValid()) ; <--
•$form – неинициализированная переменная. Нужно $this->form
Неявные проблемы:
•Большая связность кода
•Быстро растущий метод
== Сложная поддержка
32. Спасибо за внимание
• Задавайте вопросы
• Пишите мне
– Email: ryabenko.sergey@gmail.com
– Skype: s.ryabenko
Editor's Notes
История про биллинг
Со временем класс начал расширяться за счет роста функционала
Добавить следующий слайд с демонстрацией тестов по каждой финансовой операции отдельно.
INS: сейчас биллинг используется в нескольких проектах в виде плагина, который поставляется с набором базовых функций (ввода/вывода денег через различные платежные системы) и легко расширяется под конкретные нужды каждого проекта. Когда
Описание каждого паттерна, как они помогают в тестировании
Изменить код, сделать невыполняющуюся проверку неважной (к примеру начисление бонуса, если регистрируется с купоном)