Презентация на комплексную тему Continious integration-Automated Testing-Agile, показывается связи между этими темам, обоснование автоматического тестирования , и вложения ресурсов для развертывания автоматического тестирования и непрерываной интеграциия. Все темы тесно связаны между собой , хотя бы появились независимос друг от друга.
Quality Assurance vs Quality Control - так в чем же заключается работа специа...COMAQA.BY
Поговорим о том, что такое Quality Assurance и что такое Quality Control. Узнаем в чем заключается принципиальная разница между этими двумя понятиями\подходами. Расскажем как можно и нужно строить карьеру тестировщика. Приведем пример мировой практики от Microsoft.
Quality Assurance vs Quality Control - так в чем же заключается работа специа...COMAQA.BY
Поговорим о том, что такое Quality Assurance и что такое Quality Control. Узнаем в чем заключается принципиальная разница между этими двумя понятиями\подходами. Расскажем как можно и нужно строить карьеру тестировщика. Приведем пример мировой практики от Microsoft.
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...HappyDev
Матерый enterprise проект с "зоопарком" из разнообразных технологий. Часто меняющаяся команда и требовательный заказчик. Менеджер, активно пытающийся вытянуть проект... Все составляющие для сюжета, достойного Титаника.
Было перепробовано множество практик для улучшения процесса разработки, и больше всего это влияло на нас, разработчиков. В одночасье рушились привычные устои, а новые, не успев прижиться, менялись снова. Разве возможна нормальная работа в такой нервной обстановке?
Автор критически оценит парное программирование, тестирование, code review и прочие практики из мира улучшения разработки, а также расшарит набитые шишки и обнаруженные грабли.
Практический доклад о том, как мы внедряли devops в банке, а конкретнее какую роль в этом процессе сыграло тестирование.
В докладе рассмотрены основные проблемы, с которыми команда столкнулась при внедрении и способы их устранения.
Продемонстрированы результаты, которых смогли достичь в течении полугода.
Доклад содержит большое количество лайфхаков и обзоров инструментария, который использовался для достижения цели.
QA Fest 2016. Андрей Мясников. Тест-дизайн для чайниковQAFest
В своём докладе я расскажу вам о том, кто такие тест-аналитики, тест-дизайнеры и должны ли их роль выполнять обычные тестировщики. Также сделаю обзор основных и проверенных методик тест-дизайна. Расскажу про их плюсы и минусы.
Будем учиться тестировать не 12 часов, а головой!
Способы организаций больших Java проектов по Автоматизированному тестированиюCOMAQA.BY
В процессе работы автоматизатора часто приходится сталкиваться с написанием новых фреймворков или модификации прежде написанных. И тут возникает ощущение, что "когда-то я уже это писал". В ходе доклада я расскажу как же решить известную задачу "не повторяться" в рамках большого проекта или кросс-проектно или почему работа автоматизатора часто требует навыков системного администрирования, программирования, "девопса".
Тестирование — это способ узнать о разнообразных проблемах, которые могут возникнуть во время разработки вашего проекта. В лекции рассмотрены различные виды тестирования и различные практики, которые позволят вам узнавать о проблемах заранее.
Непрерывная интеграция и автотесты. Сравнительный анализ инструментовCOMAQA.BY
По-настоящему автоматизированными тесты можно назвать только тогда, когда из процесса тестирования полностью исключается человек. В идеале участие человека должно сводиться к просмотру отчетов о результатах автотестирования, которые регулярно приходят ему на почту.
Достичь этого можно только одним способом - с помощью инструментов непрерывной интеграции. Какой же инструмент лучше выбрать? Почему? Так ли этот выбор важен или можно просто взять любой из них и начать использовать?
Сравним самые популярные Java-совместимые инструменты CI и сделаем выводы!
Сергей Смирнов (Altair Engineering Inc.) | Организация работы распределенной ...RIF-Technology
В рамках доклада рассмотрим вопросы формирования команды с помощью модели МакКинси 7с (McKinsey 7s), поговорим о процессах разработки программного продукта, системе релизов, системном инжиниринге и рекомендациях по системе управления процессами.
Выступление будет интересно руководителям команд разработчиков, особенно тем, кто фокусируется на предсказуемости сроков и качестве создаваемого решения.
Solit 2013, Open Source continuous integration in java, Калачев Дмитрийsolit
Дмитрий Калачёв, Минск, компания JazzTeam, Software Engineer (R&D, frameworks and android development)
«Open Source continuous integration in java». Development секция. Для студентов и разработчиков.Рассказ про dev процесс, который применяется в компании, и про разные компоненты в отдельности: gerrit, jenkins, git, trac, nexus, про то как проходит релизинг из отдельной ветки и как это можно автоматизировать с помощью maven плагина.
Презентация подготовлена по материалам выступления Виталия Квятковского на Весеннем MiniQ'e (http://vk.com/event121580131), который был проведен 26 мая 2016.
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...HappyDev
Матерый enterprise проект с "зоопарком" из разнообразных технологий. Часто меняющаяся команда и требовательный заказчик. Менеджер, активно пытающийся вытянуть проект... Все составляющие для сюжета, достойного Титаника.
Было перепробовано множество практик для улучшения процесса разработки, и больше всего это влияло на нас, разработчиков. В одночасье рушились привычные устои, а новые, не успев прижиться, менялись снова. Разве возможна нормальная работа в такой нервной обстановке?
Автор критически оценит парное программирование, тестирование, code review и прочие практики из мира улучшения разработки, а также расшарит набитые шишки и обнаруженные грабли.
Практический доклад о том, как мы внедряли devops в банке, а конкретнее какую роль в этом процессе сыграло тестирование.
В докладе рассмотрены основные проблемы, с которыми команда столкнулась при внедрении и способы их устранения.
Продемонстрированы результаты, которых смогли достичь в течении полугода.
Доклад содержит большое количество лайфхаков и обзоров инструментария, который использовался для достижения цели.
QA Fest 2016. Андрей Мясников. Тест-дизайн для чайниковQAFest
В своём докладе я расскажу вам о том, кто такие тест-аналитики, тест-дизайнеры и должны ли их роль выполнять обычные тестировщики. Также сделаю обзор основных и проверенных методик тест-дизайна. Расскажу про их плюсы и минусы.
Будем учиться тестировать не 12 часов, а головой!
Способы организаций больших Java проектов по Автоматизированному тестированиюCOMAQA.BY
В процессе работы автоматизатора часто приходится сталкиваться с написанием новых фреймворков или модификации прежде написанных. И тут возникает ощущение, что "когда-то я уже это писал". В ходе доклада я расскажу как же решить известную задачу "не повторяться" в рамках большого проекта или кросс-проектно или почему работа автоматизатора часто требует навыков системного администрирования, программирования, "девопса".
Тестирование — это способ узнать о разнообразных проблемах, которые могут возникнуть во время разработки вашего проекта. В лекции рассмотрены различные виды тестирования и различные практики, которые позволят вам узнавать о проблемах заранее.
Непрерывная интеграция и автотесты. Сравнительный анализ инструментовCOMAQA.BY
По-настоящему автоматизированными тесты можно назвать только тогда, когда из процесса тестирования полностью исключается человек. В идеале участие человека должно сводиться к просмотру отчетов о результатах автотестирования, которые регулярно приходят ему на почту.
Достичь этого можно только одним способом - с помощью инструментов непрерывной интеграции. Какой же инструмент лучше выбрать? Почему? Так ли этот выбор важен или можно просто взять любой из них и начать использовать?
Сравним самые популярные Java-совместимые инструменты CI и сделаем выводы!
Сергей Смирнов (Altair Engineering Inc.) | Организация работы распределенной ...RIF-Technology
В рамках доклада рассмотрим вопросы формирования команды с помощью модели МакКинси 7с (McKinsey 7s), поговорим о процессах разработки программного продукта, системе релизов, системном инжиниринге и рекомендациях по системе управления процессами.
Выступление будет интересно руководителям команд разработчиков, особенно тем, кто фокусируется на предсказуемости сроков и качестве создаваемого решения.
Solit 2013, Open Source continuous integration in java, Калачев Дмитрийsolit
Дмитрий Калачёв, Минск, компания JazzTeam, Software Engineer (R&D, frameworks and android development)
«Open Source continuous integration in java». Development секция. Для студентов и разработчиков.Рассказ про dev процесс, который применяется в компании, и про разные компоненты в отдельности: gerrit, jenkins, git, trac, nexus, про то как проходит релизинг из отдельной ветки и как это можно автоматизировать с помощью maven плагина.
Презентация подготовлена по материалам выступления Виталия Квятковского на Весеннем MiniQ'e (http://vk.com/event121580131), который был проведен 26 мая 2016.
Доклад с PUG#1 https://www.facebook.com/events/1505404039679797/
Доклад посвящен непрерывной интеграции и ее роли в процессе разработки проектов. В нем освещены следующие вопросы:
* Как избежать проблем в интеграции?
* Зачем нужны тесты?
* Как организовать работу так, чтобы всегда иметь под рукой прозрачное и работающее приложение?
* Как быть в курсе событий на своем проекте в любой момент времени?
Также, в докладе освещены основные плюсы работы с системами непрерывной интеграции на примере Jenkins.
PHP User Group Ukraine в социальных сетях:
https://www.facebook.com/pug.ukraine
https://vk.com/pug.ukraine
https://www.linkedin.com/groups/PHP-User-Group-Ukraine-6703717
Доклад Алексея Рыбака, зам. главы разработки Badoo, на РИФ+КИБ 2013. Секция Комиссии по веб-разработке РАЭК «Организация эффективного производства интернет-проектов».
Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестир...Badoo Development
Доклад о том, как выжить в условиях двух релизов в день, не понижая планку
качества проекта и дать разработчикам и QA-инженерам больше времени на
полезные дела.
Подробно:
Прослушав доклад, вы узнаете:
1. Что НА САМОМ ДЕЛЕ называется непрерывной интеграцией;
2. Кому и зачем нужно переходить на Continious Integration;
3. Почему процесс контроля качества начинается ещё до написания кода;
4. Как программисты учавствуют в процессе тестирования;
5. Как устроен наш поток тестирования с пятью (!) уровнями контроля;
6. Как наши QA-инженеры тестируют задачи до релиза в максимально
реалистичных условиях;
7. Как помогает тестированию плотная интеграция Git, Jira и TeamCity;
8. Зачем нужны более 20 тысяч автоматических тестов и кто их должен
разрабатывать и поддерживать;
9. Чем непрерывно занимаются более 10 агентов-тестировщиков в нашей
TeamCity;
10. Какими средствами мы добились того, чтобы пункты 8 и 9 не превращал
QA-процесс в долгое и унылое действо.
Build, Publish, Deploy and Test Docker images and containers with Jenkins Wor...Docker, Inc.
This lightning talk will show you how simple it is to apply CI to the creation of Docker images, ensuring that each time the source is changed, a new image is created, tagged, and published. I will then show how easy it is to then deploy containers from this image and run tests to verify the behaviour.
QA Fes 2016. Анастасия Асеева. Роль тестирования в DevopsQAFest
В своем докладе я расскажу, как мы внедряли devops в банке, а конкретнее какую роль в этом процессе сыграло тестирование. Также расскажу с какими проблемами столкнулись, и как мы их устраняли. И да, каких результатов смогли добиться уже через полгода. А самое интересное, покажу как мы смогли добиться того, чтоб у нас pull request долетал до боя за 3 часа со всеми этапами тестирования.
Доклад будет содержать большое количество лайфхаков и обзоров инструментария, который мы использовали.
Андрей Сильчук: "Автоматическое тестирование".Hub-IT-School
Выступление Андрея Сильчука об автоматическом тестировании ПО на Hub QA meetup #1.
Больше мероприятий:
https://vk.com/hub.itschool
https://facebook.com/Hub.IT.School
Автоматическое тестирование и с чем его едятMarina Peregud
Agenda
Автоматизация? Какая еще автоматизация? Автоматическое тестирование ПО. Зачем вообще?
Отличие от мануального тестирования ПО, или Ручник vs человек разумный.
Имею желание, но не имею возможности, или какие знания были бы полезны в этой области.
Когда стоит внедрять автоматизацию.
ROI и другие непонятные слова на три буквы.
Слады для выступления на GDG DevFest Бишкек, 2014.
https://plus.google.com/events/cgschph5k60ua1ldq0b06i3o3r8
Выступление сделано по книжке "Как тестируют в Google"
Поиск ловушек в Си/Си++ коде при переносе приложений под 64-битную версию Win...Tatyanazaxarova
В результате появления на рынке персональных компьютеров 64-битных процессоров перед разработчиками программ возникает задача переноса старых 32-битных приложений на новую платформу. После переноса кода приложения высока вероятность его некорректной работы. В статье рассмотрены вопросы, связанные с верификацией и тестированием программного обеспечения. Обозначены сложности, с которыми может столкнуться разработчик 64-битных Windows приложений и пути их преодоления.
В статье рассмотрен ряд вопросов связанных с тестированием 64-битного программного обеспечения. Обозначены сложности, с которыми может столкнуться разработчик ресурсоемких 64-битных приложений, и пути их преодоления.
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.
Видео: http://www.youtube.com/watch?v=vz0U3jQpHSM
Это обзор опыта применения лучших практик разработки программного обеспечения на разных проектах от госзаказов до видеоконференций в командах от 5 до 50 человек. В докладе будут описаны не только практики, но и то, как они применяются на реальных проектах и какие выгоды они действительно приносят.
Similar to Continious integration-Automated Testing-Solid-Agile (20)
1. Обзор статей на тему
Continious Integration –
Automated Testing – Agile
Подготовил – Юсупов Кайрат
2. Процесс разработки в Mail.Ru Group
"По мере выпуска следующих версий
программы и добавления нового функционала
нам нужно будет проверять с каждым разом
все больше и больше функций. То есть, грубо
говоря, трудозатраты будут линейно
возрастать с ростом количества функций. И
в какой-то момент руководитель окажется
перед выбором: либо начать частично
пропускать проверки старого функционала
(регрессионное тестирование), либо
постоянно увеличивать штат.“
Тех. Дир. Mail.Ru Group
Прим. * Синим цветом обозначены трудозатраты на ручное тестирование регрессионных багов.
3. • Важно отметить, что только (ручная
отладка) тестирование новых
функций будет интересной задачей,
а повторное тестирование старых
функций (регрессионное
тестирование) является
монотонной однообразной
работой, повторением уже не раз
проделанных операций. Поэтому
даже при постоянном расширении
штата сотрудники будут
демотивированы, что негативно
скажется на внимательности и
ответственности, а в итоге приведет
к пропущенным ошибкам.
4. • Автоматизация тестирования
необходима не только потому,
что важно экономить ресурсы и
избавляться от скучной и
однообразной работы.
• Тех. дир. Mail.Ru Group
Автоматическое тестирование позволяет снизить затраты на ручную отладку и тестирование,
Избавиться от ручного регрессионого тестирования, снизить трудозатраты тестирования до минимума.
Как видно из графика трудозатраты на написание тестов не растут линейно, остаются на одном уровне
Из приведенного графика следует, что трудозатраты на ручное регрессионное тестирование со временем
становится в разы больше трудозатрат, чем написание кода.
5. В каких компаниях существует автоматическое
тестирование?
• Google, Mail.ru , Yandex, Microsoft
• CodeBorne
• IBM
• BAS , NAT (Казахстанские компании )
Большинство стабильных опенсорс проектов покрываются
тестами:
• Hadoop
• Apache Tomcat
• VivagraphJS
• Twitter Storm
6. public class HasNegationTest {
// Тест кейс 1
@Test
public void test_hasNegation_true() {
DicSentimentHighlighter sentimentHighlighter = new DicSentimentHighlighter( … );
boolean result = sentimentHighlighter.hasNegation(new String[]{" не "," хороший "} , " хороший ");
Assert.assertTrue(result);
}
// Тест кейс 2
@Test
public void test_hasNegation_false() {
DicSentimentHighlighter sentimentHighlighter = new DicSentimentHighlighter( … );
boolean result = sentimentHighlighter.hasNegation(new String[]{"хороший","хороший"} , "хороший");
Assert.assertFalse(result);
}
}
Пример модульного теста , написанного с помощью фреймворка Junit 4.1
8. В случае с внешней зависимостью
Зависимость заменяется с помощью Stub / Mock Object
Stub / Mock
Object
Class Under
Test
Connection to
Database
Class Under
Test
9. Тестирование GUI с помощью фреймворка Selenide
@Test
public void test() {
open(contextPath + "/ru/regnpv2/register");
open(contextPath + "/ru/regnpv2/foreignPerson");
$(By.name("regNpVisitorList[0].lastname")).setValue("TESTACCEPT");
$(By.name("regNpVisitorList[0].firstname")).setValue("TESTACCEPT");
$(By.id("next")).click();
Assert.assertTrue($(By.id("registration_start")).getText().length() > 6 );
Assert.assertTrue($(By.id("registration_end")).getText().length() > 6 );
}
}
В целом синтаксис кода похож на Jquery
10. Скрипт запускает браузер, эмулирует работу человека, вводит
предопределенные данные в браузере, и контролирует работу GUI
Исключается участие человека для проверки работоспособности
приложения. Тем самым снижаются трудозатраты.
11. Необходимые условия для покрытия кода
тестами
• Наличие фреймворка Junit, TestNG для Java, Jasmine, Qunit для JS
• Регулярная прогонка тестов на билд-сервере (каждый день,
каждый коммит)
• Не каждый код может быть покрыт тестами
• Слабосвязанная архитектура
• Код написанный в соответствии с принципами SOLID
12. Принципы SOLID
• S – single responsibility
• O – open/closed principle
• L – Liskov substitution principle
• I – Interface segregation principle
• D – dependency injection
13. Какой код выгодно тестировать?
•На этой намеренно упрощённой диаграмме показано
4 типа кода:
Сложный код с небольшим количеством зависимостей
(участок слева вверху). (выгодно)
•Простой код с кучей зависимостей (участок справа
внизу). ( не очень выгодно , но иногда выгодно)
•Сложный код с большим количеством зависимостей
(участок справа вверху). Писать тесты для такого
кода достаточно дорого, а не писать слишком
рискованно. Как правило, выходом может стать его
разделение на две части: кусок, вобравший в себя
сложную логику (алгоритм), и кусок,
сосредоточивший в себе внешние зависимости
(координатор). (выгодно, но требует рефакторинга)
•Обычный заурядный код, имеющий немного
зависимостей (участок слева внизу).
14. Continuous Integration. Как оно выглядит «сейчас»
• Роль билд – сервера на данный
момент выполняет - Дулат
• Вручную делаются билды,
выкладываются на тестовый и
боевой серверы, вручную
ищутся проблемы интеграции -
это постоянная однообразная
работа занимает время,
утомляет, и отвлекает от более
важных приоритетных задач.
15. Проблемы, с которыми сталкнулись во время
разработки ВМП
• Развертывание функциональности без должного тестирования
(практические всегда в функциональности были скрытые баги)
• Отрицательные отзывы от клиентов
• Фактически в активное тестирование были вовлечены клиенты(что не
есть хорошо)
• Бывали случаи, когда все изменения от разных разработчиков
невозможно было забилдить в течение нескольких часов перед
презентацией
• Отрицательное влияние на репутацию компании и программистов
• Потерянное время , ресурсы, неоправданный стресс
16. Проблемы при доработке Беркут
• Документации нет
• Никто не знает , как работает код для миграции данных
• Автотестов нет ( вносить изменения необходимо очень
осторожно)
• Долго кропотливо и разбираться, что делает каждая строчка кода
• Нет гарантии безопасности изменения кода
• Стоить отметить, что тесты могут использоваться как
документация , т.к. тесты описывают спецификацию классов ,
функций и т.п.
17. Continious Integration. Как «должно быть»
Continuous Integration (далее CI) — это практика
разработки программного обеспечения, в
которой члены команды проводят интеграцию
не реже чем раз в день. Результаты интеграции
проверяются автоматически, используя
автотесты и статический анализ кода.
18. Преимущества CI
• Использование CI позволяет вовремя отслеживать ошибки
интеграции
• Сделать систему и процесс разработки более «прозрачными» для
всех участников команды
• CI избавляет от рутинных операция по сборке продукта, запуску
тестов, повышает качество продукта, включает в себя профит от
написания тестов.
• Автоматическое оповещение участников команды о наличии
проблемы (бага, ошибки, не развертывается проект) в проекте
19. Необходимые условия для развертывания CI
• Регулярное автоматическое выполнение билдов проекта
• Достаточно высокое покрытие проекта тестами
• Обратная связь билд-сервера с разработчиками проекта (разработчик должен оповещаться
о наличии проблемы, и именно тот разработчик внесший изменение , повлиявшее на билд)
• Существуют следующие популярные механизмы осуществления обратной связи:
• SMS
• browser plug-in
• светофор сборок
• звуковое оповещение
• email
23. Как Google тестируется ПО
“идея заключается не в создании тестов как таковых, а в
ускорении разработки.”
В Google существуют три роли тестеров:
SWE - основные разработчики, которые работают над
функционалом. На них лежит разборка кода (code review),
TDD, Unit тестирование и приемочные испытания. Они так
же ответственны за качество каждого участка кода. Это
важно. Тестеры не отвечают за качество. SWE не может
написать немного кода, а потом сказать тестеру, попробуй
улучшить этот код. Это его собственная работа.
SET — занимаются разработкой среды для тестирования.
Они не пишут непосредственно тест кейсы. Они создают
инфраструктуру для их создания. Они выпускают
фрэймворки, пишут утилиты автоматизирующие рутину
проверок. Они создают автоматизированные процедуры.
Процесс разработки Google plus занял 100 дней.
Каждый день собирается новый релиз Google Chrome.
24. You Can't be Agile Without Automated Unit Testing
• Тезис вытекающий из предыдущих пунктов:
• Невозможно внедрить Agile/Scrum методологию
без уделения внимания современными
инженерным практикам( код ревью ,
автоматическое тестирование, непрерывная
интеграция).
• Agile projects assume that test planning, test
creation, and test execution take place throughout a
project's lifecycle. So the need for unit testing (and
especially automated unit testing) can't be ignored
and should be considered as a key responsibility of
the entire team—not just the software developers
Developers have known for decades that the further into a project timeline a bug gets
discovered from its insertion point, the more costly it is to fix. When a developer finds a bug, it can
sometimes take minutes to fix. If it slips through testing and finds its way to the customer, figure 1
shows that mitigation can be exponentially more expensive to fix.
Agile methodologies take working software and combine it with early feedback. To give the
developers confidence that their code works, unit testing gives the fastest available quality feedback.
The earlier defects are found, the cheaper they are to fix.
25. Ссылки
• 1. Тестирование в Mail.ru Group:
• http://habrahabr.ru/company/mailru/blog/165877/
• 2. Как перестать беспокоиться и начать работать:
• http://habrahabr.ru/company/skbkontur/blog/128427/
• 3. Continuous Integration. Путь обеспечения надежности и доверия к системе
• http://habrahabr.ru/post/219891/
• 4. Как Google тестирует ПО
• http://habrahabr.ru/post/135776/
• 5. Компания Agitar зарабатывает тем что разрабатывает автоматическое тестирование для заказчиков
• http://www.agitar.com/solutions/why_unit_testing.html
• 6. You Can't be Agile Without Automated Unit Testing
• http://www.stickyminds.com/better-software-magazine-article/you-cant-be-agile-without-automated-unit-testing
• 7 Полное регрессионное тестирование за 4 часа
• http://scrumtrek.ru/stories/view/13