SlideShare uma empresa Scribd logo
1 de 49
Автоматизация тестирования веб-
приложений с использованием
Thucydides: за и против


Козлов Андрей,
ООО «Центр автоматизации энергосбережения»
руководитель отдела тестирования
 Особенности наших проектов

 Как выбрать инструмент для автоматизации

 Почему же Thucydides?

 Как заставить тестировщика писать тесты
• 2 года активной разработки web-приложений

• несколько проектов в сфере сбережения

 энергоресурсов
Отсутствие автоматизированных приемочных
  тестов
Демонстрация продукта потенциальному заказчику



          регрессия ~ 150 кейсов (ПМИ)
Автоматизация тестирования новой
           функциональности



облегчение миграции кода на новые стенды
                   +
      разгрузка ручного тестирования
Webdriver – лишь программная библиотека
Что будем делать?

С чего начать?   Какая стратегия?
Удобный инструмент для автоматизации!

      • webdriver
Удобный инструмент для автоматизации!

      • webdriver
      • фреймворк тестирования
Удобный инструмент для автоматизации!

      • webdriver
      • фреймворк тестирования
      • логирование
Удобный инструмент для автоматизации!

      • webdriver
      • фреймворк тестирования
      • логирование
      • сборщик тестов
Удобный инструмент для автоматизации!

      • webdriver
      • фреймворк тестирования
      • логирование
      • сборщик тестов
      • непрерывная интеграция
А какие инструменты
  видели вы?
Иногда можно встретить такие
поддержка и доработка
              +
сопутствующая инфраструктура
обновление webdriver
качество кода
поддержка документации




         VS
уровень вхождения

в проект
обучение
       junior
            тестировщиков
Как мы пришли
  к open-source
  инструменту
Этапы автоматизации:

1. разработка инструмента автоматизации

2. разработка и поддержка тестов

3. обучение коллег
Этапы автоматизации:

1. разработка инструмента автоматизации

2. разработка и поддержка тестов

3. обучение коллег
Java

• Thucydides

• Html Elements (Яндекс)
Thucydides


• PageObject + StepsDictionary

• отличная документация

• классные отчеты

• возможность абстрагироваться от webdriver
Архитектура тестов


  • JUnit
  • JBehave
              BDD
  • EasyB
• готовые программы и методики испытаний

• нет необходимости дублировать

 приемочные критерии
Архитектура тестов


           This is one of the easiest ways to start
           out with Thucydides, and is very well
           suited for regression testing, where
JUnit      communication and clarification with the
           various stakeholders is less of a
           requirement.*




                      * http://www.thucydides.info/junit
Этапы автоматизации:

1. разработка инструмента автоматизации

2. разработка и поддержка тестов

3. обучение коллег
Page1                       Page2                      Page3
                    methodA1()                   methodB1()               methodC1()
                    methodA2()                   methodB2()               methodC2()
                                                 methodB3()




                              Steps1                              Steps2
                  step1Method(){                       step2Method(){
                     page1.methodA1();                    page2.methodB2()
StepsDictionary      page3.methodC1();                    page3.methodC2()
                     page2.methodB2();                 }
                  }



                                 Test1                          TestN
                       test(){                         test(){
                          step1.step1Method();            step2.step2Method();
                       }                                  step1.step1Method();
                                                          …
                                                          stepN.stepNMethod();
                                                       }
@Test
public void успешная_авторизация_пользователя_Региона(){
    navigator.gotoHomePage();
    OrganizationInfo organization = bdOrg.getOrganizationInfo(REGION);
    UserInfo user = new UserInfo(1, 1, 1, 1, 1, 1, 0, 0);
    user = bdUsers.getUserInfo(organization, user);
    auth.authUser(user);
    navigator.gotoProfilePage();
    auth.checkLoginOnProfilePage(user);
    navigator.exitUser();
}
navigator.gotoHomePage();




organization = bdOrg.getOrganizationInfo(REGION);
user = new UserInfo(1, 1, 1, 1, 1, 1, 0, 0);
user = bdUsers.getUserInfo(organization, user);
auth.authUser(user);
navigator.gotoProfilePage();
auth.checkLoginOnProfilePage(user);
Синтаксис



        Заполнение поля:

element(login).type(“kozlov.andrey");
enter(“kozlov.andrey").into(login);
typeInto(login, “kozlov.andrey");
Наглядные отчеты после прогона
Детальная информация о тесте
Этапы автоматизации:

1. разработка инструмента автоматизации

2. разработка и поддержка тестов

3. обучение коллег
Заинтересовываем тестировщика
Вхождение тестировщика в проект



#1   Постановка задачи: ознакомление с проектом
     http://www.thucydides.info/documentation


     + русскоязычный блог
     http://internetka.in.ua/tag/thucydides/
Вхождение тестировщика в проект



#2   Постановка задачи: развертывание проекта
     https://github.com/thucydides-webtests/thucydides/wiki/Getting-Started
Вхождение тестировщика в проект



#3   Постановка задачи:

            •   тесты-примеры

            •   парное программирование
Вхождение тестировщика в проект



#4   Работа с реальным проектом. Контроль в рамках:

            •   консультации

            •   документация

            •   review кода
Руководство к действию

 Не изобретайте свои велосипеды
Руководство к действию

 Не изобретайте свои велосипеды

 Используйте готовые инструменты
Руководство к действию

 Не изобретайте свои велосипеды

 Используйте готовые инструменты

 Обучайте своих коллег
Руководство к действию

 Не изобретайте свои велосипеды

 Используйте готовые инструменты

 Обучайте своих коллег

 Регулярно проводите review кода
Вопросы?

    Козлов Андрей,
    ООО «Центр автоматизации энергосбережения»
    @vozlok
    kozlov.andrey@caesber.ru

Mais conteúdo relacionado

Mais procurados

Unit tests & tdd in web development
Unit tests & tdd in web developmentUnit tests & tdd in web development
Unit tests & tdd in web development
Andrey Kucherenko
 
kranonit S11E01 Андрей Пономарёв: Тренинг по TDD в Java
kranonit S11E01 Андрей Пономарёв: Тренинг по TDD в Javakranonit S11E01 Андрей Пономарёв: Тренинг по TDD в Java
kranonit S11E01 Андрей Пономарёв: Тренинг по TDD в Java
Krivoy Rog IT Community
 
Михаил Павлов - is a tester responsible for quality
Михаил Павлов - is a tester responsible for qualityМихаил Павлов - is a tester responsible for quality
Михаил Павлов - is a tester responsible for quality
Alexei Lupan
 
Crystal Agile, или как мы приспособили процесс разработки для обеспечения мак...
Crystal Agile, или как мы приспособили процесс разработки для обеспечения мак...Crystal Agile, или как мы приспособили процесс разработки для обеспечения мак...
Crystal Agile, или как мы приспособили процесс разработки для обеспечения мак...
SQALab
 
CodeFest 2010. Жемчужникова М., Овчарова О. —Принципы выбора ПО для группы те...
CodeFest 2010. Жемчужникова М., Овчарова О. —Принципы выбора ПО для группы те...CodeFest 2010. Жемчужникова М., Овчарова О. —Принципы выбора ПО для группы те...
CodeFest 2010. Жемчужникова М., Овчарова О. —Принципы выбора ПО для группы те...
CodeFest
 
Тестирование осень 2013 лекция 4
Тестирование осень 2013 лекция 4Тестирование осень 2013 лекция 4
Тестирование осень 2013 лекция 4
Technopark
 

Mais procurados (20)

Unit tests & tdd in web development
Unit tests & tdd in web developmentUnit tests & tdd in web development
Unit tests & tdd in web development
 
(Seleniumcamp) Selenium IDE как артефакт пикника на обочине
(Seleniumcamp) Selenium IDE как артефакт пикника на обочине(Seleniumcamp) Selenium IDE как артефакт пикника на обочине
(Seleniumcamp) Selenium IDE как артефакт пикника на обочине
 
kranonit S11E01 Андрей Пономарёв: Тренинг по TDD в Java
kranonit S11E01 Андрей Пономарёв: Тренинг по TDD в Javakranonit S11E01 Андрей Пономарёв: Тренинг по TDD в Java
kranonit S11E01 Андрей Пономарёв: Тренинг по TDD в Java
 
QA Fest 2019. Андрей Солнцев. Десять причин моей ненависти
QA Fest 2019. Андрей Солнцев. Десять причин моей ненавистиQA Fest 2019. Андрей Солнцев. Десять причин моей ненависти
QA Fest 2019. Андрей Солнцев. Десять причин моей ненависти
 
Документация тестировщика - Александр Трибушный
Документация тестировщика - Александр ТрибушныйДокументация тестировщика - Александр Трибушный
Документация тестировщика - Александр Трибушный
 
Использование Mock-объектов в TDD на платформе .NET
Использование Mock-объектов в TDD на платформе .NETИспользование Mock-объектов в TDD на платформе .NET
Использование Mock-объектов в TDD на платформе .NET
 
Михаил Павлов - is a tester responsible for quality
Михаил Павлов - is a tester responsible for qualityМихаил Павлов - is a tester responsible for quality
Михаил Павлов - is a tester responsible for quality
 
QA Fest 2014. Алексей Лупан. Не тест-кейсы красят тестировщика, а...
QA Fest 2014. Алексей Лупан. Не тест-кейсы красят тестировщика, а...QA Fest 2014. Алексей Лупан. Не тест-кейсы красят тестировщика, а...
QA Fest 2014. Алексей Лупан. Не тест-кейсы красят тестировщика, а...
 
Мелочь пузатая или Объем тест кейса против его содержательности
Мелочь пузатая или Объем тест кейса против его содержательностиМелочь пузатая или Объем тест кейса против его содержательности
Мелочь пузатая или Объем тест кейса против его содержательности
 
Sqadays 2010 burmistrov_fomin_20101120(2)
Sqadays 2010 burmistrov_fomin_20101120(2)Sqadays 2010 burmistrov_fomin_20101120(2)
Sqadays 2010 burmistrov_fomin_20101120(2)
 
Тест-дизайн: проще читать или проще писать
Тест-дизайн: проще читать или проще писатьТест-дизайн: проще читать или проще писать
Тест-дизайн: проще читать или проще писать
 
Crystal Agile, или как мы приспособили процесс разработки для обеспечения мак...
Crystal Agile, или как мы приспособили процесс разработки для обеспечения мак...Crystal Agile, или как мы приспособили процесс разработки для обеспечения мак...
Crystal Agile, или как мы приспособили процесс разработки для обеспечения мак...
 
День 1: Автоматизированное тестирование: Введение
 День 1: Автоматизированное тестирование: Введение День 1: Автоматизированное тестирование: Введение
День 1: Автоматизированное тестирование: Введение
 
CodeFest 2010. Жемчужникова М., Овчарова О. —Принципы выбора ПО для группы те...
CodeFest 2010. Жемчужникова М., Овчарова О. —Принципы выбора ПО для группы те...CodeFest 2010. Жемчужникова М., Овчарова О. —Принципы выбора ПО для группы те...
CodeFest 2010. Жемчужникова М., Овчарова О. —Принципы выбора ПО для группы те...
 
Istqb lesson 4
Istqb lesson 4Istqb lesson 4
Istqb lesson 4
 
Marina Dev2Dev
Marina Dev2DevMarina Dev2Dev
Marina Dev2Dev
 
Обеспечение качества: Практические советы
Обеспечение качества: Практические советыОбеспечение качества: Практические советы
Обеспечение качества: Практические советы
 
Тестирование осень 2013 лекция 4
Тестирование осень 2013 лекция 4Тестирование осень 2013 лекция 4
Тестирование осень 2013 лекция 4
 
Метод No-Tests-Cases: избавьтесь от тест-кейсов в тестировании
Метод No-Tests-Cases: избавьтесь от тест-кейсов в тестированииМетод No-Tests-Cases: избавьтесь от тест-кейсов в тестировании
Метод No-Tests-Cases: избавьтесь от тест-кейсов в тестировании
 
Istqb lesson 6
Istqb lesson 6Istqb lesson 6
Istqb lesson 6
 

Semelhante a CodeFest 2013. Козлов А. — Автоматизация тестирования веб-приложений с использованием Thucydides: за и против

Маргарита Сафарова - Аудит процессов тестирования при смене проектной команды
Маргарита Сафарова - Аудит процессов тестирования при смене проектной командыМаргарита Сафарова - Аудит процессов тестирования при смене проектной команды
Маргарита Сафарова - Аудит процессов тестирования при смене проектной команды
SQALab
 
Статический анализ кода в DDD
Статический анализ кода в DDDСтатический анализ кода в DDD
Статический анализ кода в DDD
Aleksei Alekseev
 
CodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестирования
CodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестированияCodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестирования
CodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестирования
CodeFest
 
Victor Kuliamin.CSEDays
Victor Kuliamin.CSEDaysVictor Kuliamin.CSEDays
Victor Kuliamin.CSEDays
LiloSEA
 
организация и проведение тестирования
организация и проведение тестированияорганизация и проведение тестирования
организация и проведение тестирования
Igor Pozumentov
 

Semelhante a CodeFest 2013. Козлов А. — Автоматизация тестирования веб-приложений с использованием Thucydides: за и против (20)

Применение статического анализа кода в преподавании и в разработке свободного ПО
Применение статического анализа кода в преподавании и в разработке свободного ПОПрименение статического анализа кода в преподавании и в разработке свободного ПО
Применение статического анализа кода в преподавании и в разработке свободного ПО
 
Маргарита Сафарова - Аудит процессов тестирования при смене проектной команды
Маргарита Сафарова - Аудит процессов тестирования при смене проектной командыМаргарита Сафарова - Аудит процессов тестирования при смене проектной команды
Маргарита Сафарова - Аудит процессов тестирования при смене проектной команды
 
Статический анализ кода в DDD
Статический анализ кода в DDDСтатический анализ кода в DDD
Статический анализ кода в DDD
 
CodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестирования
CodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестированияCodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестирования
CodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестирования
 
Async
AsyncAsync
Async
 
Luxoft async.net
Luxoft async.netLuxoft async.net
Luxoft async.net
 
UI+unit testing in iOS
UI+unit testing in iOSUI+unit testing in iOS
UI+unit testing in iOS
 
Архитектура кода нового 2ГИС Web API или куда мы дели MVC
Архитектура кода нового 2ГИС Web API или куда мы дели MVCАрхитектура кода нового 2ГИС Web API или куда мы дели MVC
Архитектура кода нового 2ГИС Web API или куда мы дели MVC
 
Модульное тестирование и TDD в .NET
Модульное тестирование и TDD в .NETМодульное тестирование и TDD в .NET
Модульное тестирование и TDD в .NET
 
Victor Kuliamin.CSEDays
Victor Kuliamin.CSEDaysVictor Kuliamin.CSEDays
Victor Kuliamin.CSEDays
 
Организация автоматического тестирования в схеме непрерывной интеграции
Организация автоматического тестирования в схеме непрерывной интеграцииОрганизация автоматического тестирования в схеме непрерывной интеграции
Организация автоматического тестирования в схеме непрерывной интеграции
 
Грабли автоматизации. Учимся на чужих ошибках
Грабли автоматизации. Учимся на чужих ошибкахГрабли автоматизации. Учимся на чужих ошибках
Грабли автоматизации. Учимся на чужих ошибках
 
Automation Functional Testing in Agile Projects
Automation Functional Testing in Agile ProjectsAutomation Functional Testing in Agile Projects
Automation Functional Testing in Agile Projects
 
Опыт тестирования API САПР платформы
Опыт тестирования API САПР платформыОпыт тестирования API САПР платформы
Опыт тестирования API САПР платформы
 
организация и проведение тестирования
организация и проведение тестированияорганизация и проведение тестирования
организация и проведение тестирования
 
Mva stf module 2 - rus
Mva stf module 2 - rusMva stf module 2 - rus
Mva stf module 2 - rus
 
Светлана Федянина - Процесс тестирования в распределенной команде
Светлана Федянина - Процесс тестирования в распределенной командеСветлана Федянина - Процесс тестирования в распределенной команде
Светлана Федянина - Процесс тестирования в распределенной команде
 
Процесс тестирования в распределенной команде
Процесс тестирования в распределенной командеПроцесс тестирования в распределенной команде
Процесс тестирования в распределенной команде
 
РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo
РИФ 2016, Внедрение контроля качества в большом web-проекте на примере BadooРИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo
РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo
 
Тимур Шевляков
Тимур ШевляковТимур Шевляков
Тимур Шевляков
 

Mais de CodeFest

Mais de CodeFest (20)

Alexander Graebe
Alexander GraebeAlexander Graebe
Alexander Graebe
 
Никита Прокопов
Никита ПрокоповНикита Прокопов
Никита Прокопов
 
Денис Баталов
Денис БаталовДенис Баталов
Денис Баталов
 
Елена Гальцина
Елена ГальцинаЕлена Гальцина
Елена Гальцина
 
Александр Калашников
Александр КалашниковАлександр Калашников
Александр Калашников
 
Ирина Иванова
Ирина ИвановаИрина Иванова
Ирина Иванова
 
Marko Berković
Marko BerkovićMarko Berković
Marko Berković
 
Денис Кортунов
Денис КортуновДенис Кортунов
Денис Кортунов
 
Александр Зимин
Александр ЗиминАлександр Зимин
Александр Зимин
 
Сергей Крапивенский
Сергей КрапивенскийСергей Крапивенский
Сергей Крапивенский
 
Сергей Игнатов
Сергей ИгнатовСергей Игнатов
Сергей Игнатов
 
Николай Крапивный
Николай КрапивныйНиколай Крапивный
Николай Крапивный
 
Alexander Graebe
Alexander GraebeAlexander Graebe
Alexander Graebe
 
Вадим Смирнов
Вадим СмирновВадим Смирнов
Вадим Смирнов
 
Константин Осипов
Константин ОсиповКонстантин Осипов
Константин Осипов
 
Raffaele Rialdi
Raffaele RialdiRaffaele Rialdi
Raffaele Rialdi
 
Максим Пугачев
Максим ПугачевМаксим Пугачев
Максим Пугачев
 
Rene Groeschke
Rene GroeschkeRene Groeschke
Rene Groeschke
 
Иван Бондаренко
Иван БондаренкоИван Бондаренко
Иван Бондаренко
 
Mete Atamel
Mete AtamelMete Atamel
Mete Atamel
 

CodeFest 2013. Козлов А. — Автоматизация тестирования веб-приложений с использованием Thucydides: за и против