SlideShare a Scribd company logo
1 of 12
Автоматизация тестирования
     сложных систем:
 mixed mode automated test
           case.
       Виктор Короневич
Content

1.   Структура mixed-mode теста
2.   Особенности реализации решения
3.   Пример mixed-mode теста
4.   Demo
Структура mixed-mode теста

Тест:
- pre-test actions;
- preconditions;
- set up fixture;
- steps;
- check;
- post-test actions;
Особенности реализации решения
Modes:
- db testing (create/clean-up scripts – mysql driver);
   link: http://www.mysql.com/products/connector/

-    web services testing (create/load scripts – apache httpclient
     wrapper);
     link: http://hc.apache.org/httpclient-3.x/

-    web testing (functional scripts – Selenium 2.x Web Driver);
     link: http://seleniumhq.org/docs/03_webdriver.jsp#

-    iOS testing (functional scripts – Frank project);
     link: https://github.com/moredip/Frank
Пример
@TestFixture(username = test_user, password = test_pass)
@CleanUp(script = "./scripts/clean_up_db_users.sql")
@Test(timeout = min_timeout)
public void testUserBuyPaidExercise(){
             // [STEPS]
             // scenario: 1.login -> 2.tap buy items -> 3.gather expected data ->
             //          4.buy the first item -> 5.go to my items -> 6.gather actual data

             // step 1-2
             BuyItemsScreen buyItemsScreen =
             ScreenFactory.getInstance().getLoginScreen().login(username, password).tapBuyItems();

             // step 3
             Exercise expectedExercise = buyItemsScreen.getFirstItem();
             int moneyCount            = buyItemsScreen.getMoneyCount();
             int expectedItemsCount = 1;
             int expectedMoneyCount = moneyCount -
                         CurrencyExchange.convertToBYR(expectedExercise.getPrice(), Currency.USD);
Пример
@TestFixture(username = test_user, password = test_pass)
@CleanUp(script = "./scripts/clean_up_db_users.sql")
@Test(timeout = min_timeout)
public void testUserBuyPaidExercise(){
             // [STEPS]
             // scenario: 1.login -> 2.tap buy items -> 3.gather expected data ->
             //      4.buy the first item -> 5.go to my items -> 6.gather actual data

             …

           // step 4-5
           MyItemsScreen myItemsScreen =
buyItemsScreen.tapFirstItem().tapBuyButton().tapMyItems();

             // step 6
             int actualItemsCount = myItemsScreen.getItemsCount();
             Exercise actualExercise = myItemsScreen.getFirstItem();
             int actualMoneyCount = myItemsScreen.getMoneyCount();

}
Пример
@TestFixture(username = test_user, password = test_pass)
@CleanUp(script = "./scripts/clean_up_db_users.sql")
@Test(timeout = min_timeout)
public void testUserBuyPaidExercise(){
             // [STEPS]
             // scenario: 1.login -> 2.tap buy items -> 3.gather expected data ->
             //      4.buy the first item -> 5.go to my items -> 6.gather actual data

             …

             // [CHECK]
             // #1: exercises count should be 1 (we buy only 1 item)
             Assert.assertEquals(expectedItemsCount, actualItemsCount);
             // #2: exercise name and price should be equal
             CustomAssert.assertEquals(expectedExercise, actualExercise);
             // #3: money count should be reduced on expected exercise price including the current
             valid currency course
             Assert.assertEquals(expectedMoneyCount, actualMoneyCount);
}
Пример
public class IntegrationTestSet extends TestSetTexture{

            @BeforeClass
            public static void setUpAllTests(){
                          install_iPhoneApp();
            }
            @Before
            public void setUpTest(){
                          sharedTCFixture();
            }
            @After
            public void tearDownTest(){
                          ScreenFactory.getInstance().getMyItemsScreen().logout();
            }
            @AfterClass
            public static void tearDownAllTests(){
                          quit_iPhoneApp();
            }
            …
Пример
public class TestSetTexture extends JUnitExtension{
              protected final static String test_user = "test_user";
              protected final static String test_pass = "test_pass";
              …
              protected static void install_iPhoneApp(){
                           SUT.start();
              }

             protected static void quit_iPhoneApp(){
                         SUT.quit();
             }

             protected void sharedTCFixture(){
                         int eCount = 100;

                          SUT.registerUser(test_user, test_pass);
                          SUT.createExercises(eCount);
             }
}
Demo
Вопросы
Feedback

Виктор Короневич
Senior Software Test Automation Engineer

Contacts:
- LinkedIn at www.linkedin.com/in/agileseph
- Email at koronevichw@tut.by
- Skype at viktar_karanevich

More Related Content

What's hot

Technical Learning Series - Elixir ExUnit
Technical Learning Series - Elixir ExUnitTechnical Learning Series - Elixir ExUnit
Technical Learning Series - Elixir ExUnitArcBlock
 
Rethrowing exception- JAVA
Rethrowing exception- JAVARethrowing exception- JAVA
Rethrowing exception- JAVARajan Shah
 
The secret unit testing tools no one ever told you about
The secret unit testing tools no one ever told you aboutThe secret unit testing tools no one ever told you about
The secret unit testing tools no one ever told you aboutDror Helper
 
JUnit & Mockito, first steps
JUnit & Mockito, first stepsJUnit & Mockito, first steps
JUnit & Mockito, first stepsRenato Primavera
 
Stop Making Excuses and Start Testing Your JavaScript
Stop Making Excuses and Start Testing Your JavaScriptStop Making Excuses and Start Testing Your JavaScript
Stop Making Excuses and Start Testing Your JavaScriptRyan Anklam
 
Understanding JavaScript Testing
Understanding JavaScript TestingUnderstanding JavaScript Testing
Understanding JavaScript Testingjeresig
 
JavaScript Proven Practises
JavaScript Proven PractisesJavaScript Proven Practises
JavaScript Proven PractisesRobert MacLean
 
100% Code Coverage - TDD mit Java EE
100% Code Coverage - TDD mit Java EE100% Code Coverage - TDD mit Java EE
100% Code Coverage - TDD mit Java EEStefan Macke
 
An introduction to Google test framework
An introduction to Google test frameworkAn introduction to Google test framework
An introduction to Google test frameworkAbner Chih Yi Huang
 
Understanding JavaScript Testing
Understanding JavaScript TestingUnderstanding JavaScript Testing
Understanding JavaScript TestingKissy Team
 
GeeCON 2012 Bad Tests, Good Tests
GeeCON 2012 Bad Tests, Good TestsGeeCON 2012 Bad Tests, Good Tests
GeeCON 2012 Bad Tests, Good TestsTomek Kaczanowski
 
Confitura 2012 Bad Tests, Good Tests
Confitura 2012 Bad Tests, Good TestsConfitura 2012 Bad Tests, Good Tests
Confitura 2012 Bad Tests, Good TestsTomek Kaczanowski
 
2012 JDays Bad Tests Good Tests
2012 JDays Bad Tests Good Tests2012 JDays Bad Tests Good Tests
2012 JDays Bad Tests Good TestsTomek Kaczanowski
 
The secret unit testing tools no one has ever told you about
The secret unit testing tools no one has ever told you aboutThe secret unit testing tools no one has ever told you about
The secret unit testing tools no one has ever told you aboutDror Helper
 
Adventures In JavaScript Testing
Adventures In JavaScript TestingAdventures In JavaScript Testing
Adventures In JavaScript TestingThomas Fuchs
 

What's hot (20)

Qunit Java script Un
Qunit Java script UnQunit Java script Un
Qunit Java script Un
 
Technical Learning Series - Elixir ExUnit
Technical Learning Series - Elixir ExUnitTechnical Learning Series - Elixir ExUnit
Technical Learning Series - Elixir ExUnit
 
Rethrowing exception- JAVA
Rethrowing exception- JAVARethrowing exception- JAVA
Rethrowing exception- JAVA
 
The secret unit testing tools no one ever told you about
The secret unit testing tools no one ever told you aboutThe secret unit testing tools no one ever told you about
The secret unit testing tools no one ever told you about
 
Good Tests Bad Tests
Good Tests Bad TestsGood Tests Bad Tests
Good Tests Bad Tests
 
JUnit & Mockito, first steps
JUnit & Mockito, first stepsJUnit & Mockito, first steps
JUnit & Mockito, first steps
 
Server1
Server1Server1
Server1
 
Mockito intro
Mockito introMockito intro
Mockito intro
 
Stop Making Excuses and Start Testing Your JavaScript
Stop Making Excuses and Start Testing Your JavaScriptStop Making Excuses and Start Testing Your JavaScript
Stop Making Excuses and Start Testing Your JavaScript
 
Understanding JavaScript Testing
Understanding JavaScript TestingUnderstanding JavaScript Testing
Understanding JavaScript Testing
 
JavaScript Proven Practises
JavaScript Proven PractisesJavaScript Proven Practises
JavaScript Proven Practises
 
100% Code Coverage - TDD mit Java EE
100% Code Coverage - TDD mit Java EE100% Code Coverage - TDD mit Java EE
100% Code Coverage - TDD mit Java EE
 
An introduction to Google test framework
An introduction to Google test frameworkAn introduction to Google test framework
An introduction to Google test framework
 
Understanding JavaScript Testing
Understanding JavaScript TestingUnderstanding JavaScript Testing
Understanding JavaScript Testing
 
GeeCON 2012 Bad Tests, Good Tests
GeeCON 2012 Bad Tests, Good TestsGeeCON 2012 Bad Tests, Good Tests
GeeCON 2012 Bad Tests, Good Tests
 
Confitura 2012 Bad Tests, Good Tests
Confitura 2012 Bad Tests, Good TestsConfitura 2012 Bad Tests, Good Tests
Confitura 2012 Bad Tests, Good Tests
 
2012 JDays Bad Tests Good Tests
2012 JDays Bad Tests Good Tests2012 JDays Bad Tests Good Tests
2012 JDays Bad Tests Good Tests
 
The secret unit testing tools no one has ever told you about
The secret unit testing tools no one has ever told you aboutThe secret unit testing tools no one has ever told you about
The secret unit testing tools no one has ever told you about
 
PHP 5 Magic Methods
PHP 5 Magic MethodsPHP 5 Magic Methods
PHP 5 Magic Methods
 
Adventures In JavaScript Testing
Adventures In JavaScript TestingAdventures In JavaScript Testing
Adventures In JavaScript Testing
 

Viewers also liked (7)

Scratchándonos 5
Scratchándonos 5Scratchándonos 5
Scratchándonos 5
 
Presentación
PresentaciónPresentación
Presentación
 
my cv
my cvmy cv
my cv
 
Maria Timóteo
Maria TimóteoMaria Timóteo
Maria Timóteo
 
ELLA SEAL REFERENCE 13.4.15 (1)
ELLA SEAL REFERENCE 13.4.15 (1)ELLA SEAL REFERENCE 13.4.15 (1)
ELLA SEAL REFERENCE 13.4.15 (1)
 
Araldite® 2000+ range - Selector guide
Araldite® 2000+ range - Selector guideAraldite® 2000+ range - Selector guide
Araldite® 2000+ range - Selector guide
 
Boeing 100 years of flight
Boeing 100 years of flightBoeing 100 years of flight
Boeing 100 years of flight
 

Similar to Solit 2013, Автоматизация тестирования сложных систем: mixed mode automated test case, Короневич Виктор

Security Testing
Security TestingSecurity Testing
Security TestingKiran Kumar
 
33rd Degree 2013, Bad Tests, Good Tests
33rd Degree 2013, Bad Tests, Good Tests33rd Degree 2013, Bad Tests, Good Tests
33rd Degree 2013, Bad Tests, Good TestsTomek Kaczanowski
 
Тестирование и Django
Тестирование и DjangoТестирование и Django
Тестирование и DjangoMoscowDjango
 
EPHPC Webinar Slides: Unit Testing by Arthur Purnama
EPHPC Webinar Slides: Unit Testing by Arthur PurnamaEPHPC Webinar Slides: Unit Testing by Arthur Purnama
EPHPC Webinar Slides: Unit Testing by Arthur PurnamaEnterprise PHP Center
 
比XML更好用的Java Annotation
比XML更好用的Java Annotation比XML更好用的Java Annotation
比XML更好用的Java Annotationjavatwo2011
 
Windows 8 Pure Imagination - 2012-11-25 - Extending Your Game with Windows 8 ...
Windows 8 Pure Imagination - 2012-11-25 - Extending Your Game with Windows 8 ...Windows 8 Pure Imagination - 2012-11-25 - Extending Your Game with Windows 8 ...
Windows 8 Pure Imagination - 2012-11-25 - Extending Your Game with Windows 8 ...Frédéric Harper
 
Mockito with a hint of PowerMock
Mockito with a hint of PowerMockMockito with a hint of PowerMock
Mockito with a hint of PowerMockYing Zhang
 
How to write clean tests
How to write clean testsHow to write clean tests
How to write clean testsDanylenko Max
 
Workshop 23: ReactJS, React & Redux testing
Workshop 23: ReactJS, React & Redux testingWorkshop 23: ReactJS, React & Redux testing
Workshop 23: ReactJS, React & Redux testingVisual Engineering
 
Secret unit testing tools no one ever told you about
Secret unit testing tools no one ever told you aboutSecret unit testing tools no one ever told you about
Secret unit testing tools no one ever told you aboutDror Helper
 
The uniform interface is 42
The uniform interface is 42The uniform interface is 42
The uniform interface is 42Yevhen Bobrov
 
02 programmation mobile - android - (activity, view, fragment)
02 programmation mobile - android - (activity, view, fragment)02 programmation mobile - android - (activity, view, fragment)
02 programmation mobile - android - (activity, view, fragment)TECOS
 

Similar to Solit 2013, Автоматизация тестирования сложных систем: mixed mode automated test case, Короневич Виктор (20)

Security Testing
Security TestingSecurity Testing
Security Testing
 
Junit_.pptx
Junit_.pptxJunit_.pptx
Junit_.pptx
 
33rd Degree 2013, Bad Tests, Good Tests
33rd Degree 2013, Bad Tests, Good Tests33rd Degree 2013, Bad Tests, Good Tests
33rd Degree 2013, Bad Tests, Good Tests
 
Тестирование и Django
Тестирование и DjangoТестирование и Django
Тестирование и Django
 
EPHPC Webinar Slides: Unit Testing by Arthur Purnama
EPHPC Webinar Slides: Unit Testing by Arthur PurnamaEPHPC Webinar Slides: Unit Testing by Arthur Purnama
EPHPC Webinar Slides: Unit Testing by Arthur Purnama
 
Wicket 6
Wicket 6Wicket 6
Wicket 6
 
比XML更好用的Java Annotation
比XML更好用的Java Annotation比XML更好用的Java Annotation
比XML更好用的Java Annotation
 
3 j unit
3 j unit3 j unit
3 j unit
 
Windows 8 Pure Imagination - 2012-11-25 - Extending Your Game with Windows 8 ...
Windows 8 Pure Imagination - 2012-11-25 - Extending Your Game with Windows 8 ...Windows 8 Pure Imagination - 2012-11-25 - Extending Your Game with Windows 8 ...
Windows 8 Pure Imagination - 2012-11-25 - Extending Your Game with Windows 8 ...
 
Unit testing
Unit testingUnit testing
Unit testing
 
Rhino Mocks
Rhino MocksRhino Mocks
Rhino Mocks
 
Mockito with a hint of PowerMock
Mockito with a hint of PowerMockMockito with a hint of PowerMock
Mockito with a hint of PowerMock
 
Junit and testNG
Junit and testNGJunit and testNG
Junit and testNG
 
How to write clean tests
How to write clean testsHow to write clean tests
How to write clean tests
 
Workshop 23: ReactJS, React & Redux testing
Workshop 23: ReactJS, React & Redux testingWorkshop 23: ReactJS, React & Redux testing
Workshop 23: ReactJS, React & Redux testing
 
Secret unit testing tools no one ever told you about
Secret unit testing tools no one ever told you aboutSecret unit testing tools no one ever told you about
Secret unit testing tools no one ever told you about
 
The uniform interface is 42
The uniform interface is 42The uniform interface is 42
The uniform interface is 42
 
02 programmation mobile - android - (activity, view, fragment)
02 programmation mobile - android - (activity, view, fragment)02 programmation mobile - android - (activity, view, fragment)
02 programmation mobile - android - (activity, view, fragment)
 
Unit Testing
Unit TestingUnit Testing
Unit Testing
 
Php tests tips
Php tests tipsPhp tests tips
Php tests tips
 

More from solit

Jazz team cooperation roadmap
Jazz team cooperation roadmapJazz team cooperation roadmap
Jazz team cooperation roadmapsolit
 
JazzTeam company presentation
JazzTeam company presentationJazzTeam company presentation
JazzTeam company presentationsolit
 
Solit 2014, Agile ValueTeam, учимся понимать Scrum, Семенченко Антон
Solit 2014, Agile ValueTeam, учимся понимать Scrum, Семенченко АнтонSolit 2014, Agile ValueTeam, учимся понимать Scrum, Семенченко Антон
Solit 2014, Agile ValueTeam, учимся понимать Scrum, Семенченко Антонsolit
 
Solit 2014, Scrum guide 2013, Семенченко Антон
Solit 2014, Scrum guide 2013, Семенченко АнтонSolit 2014, Scrum guide 2013, Семенченко Антон
Solit 2014, Scrum guide 2013, Семенченко Антонsolit
 
Solit 2014, Подготовка специалистов в сфере It на факультетe информационных т...
Solit 2014, Подготовка специалистов в сфере It на факультетe информационных т...Solit 2014, Подготовка специалистов в сфере It на факультетe информационных т...
Solit 2014, Подготовка специалистов в сфере It на факультетe информационных т...solit
 
Solit 2014, Адраджэнне Памяти аб продках пачынаецца з дзеянняу нашчадкау, Уру...
Solit 2014, Адраджэнне Памяти аб продках пачынаецца з дзеянняу нашчадкау, Уру...Solit 2014, Адраджэнне Памяти аб продках пачынаецца з дзеянняу нашчадкау, Уру...
Solit 2014, Адраджэнне Памяти аб продках пачынаецца з дзеянняу нашчадкау, Уру...solit
 
Solit 2014, Централизованное управление тестами с помощью TestLink, Зубович В...
Solit 2014, Централизованное управление тестами с помощью TestLink, Зубович В...Solit 2014, Централизованное управление тестами с помощью TestLink, Зубович В...
Solit 2014, Централизованное управление тестами с помощью TestLink, Зубович В...solit
 
Solit 2014, Инструменты автоматизации тестирования мобильных приложений. Срав...
Solit 2014, Инструменты автоматизации тестирования мобильных приложений. Срав...Solit 2014, Инструменты автоматизации тестирования мобильных приложений. Срав...
Solit 2014, Инструменты автоматизации тестирования мобильных приложений. Срав...solit
 
Solit 2014, Cемантическое ядро сайта, Нагибович Юлия
Solit 2014, Cемантическое ядро сайта, Нагибович ЮлияSolit 2014, Cемантическое ядро сайта, Нагибович Юлия
Solit 2014, Cемантическое ядро сайта, Нагибович Юлияsolit
 
Solit 2014, Геоанамальные зоны и сейсмоакустика. Субъективный взгляд. Миснико...
Solit 2014, Геоанамальные зоны и сейсмоакустика. Субъективный взгляд. Миснико...Solit 2014, Геоанамальные зоны и сейсмоакустика. Субъективный взгляд. Миснико...
Solit 2014, Геоанамальные зоны и сейсмоакустика. Субъективный взгляд. Миснико...solit
 
Solit 2014, Обзор белоруского интернет потребителя и рекламодателя. Что хочет...
Solit 2014, Обзор белоруского интернет потребителя и рекламодателя. Что хочет...Solit 2014, Обзор белоруского интернет потребителя и рекламодателя. Что хочет...
Solit 2014, Обзор белоруского интернет потребителя и рекламодателя. Что хочет...solit
 
Solit 2014, Как эффективно организовать Автоматизацию, Семенченко Антон
Solit 2014, Как эффективно организовать Автоматизацию, Семенченко АнтонSolit 2014, Как эффективно организовать Автоматизацию, Семенченко Антон
Solit 2014, Как эффективно организовать Автоматизацию, Семенченко Антонsolit
 
Solit 2014, Freelance and Nearshoring from a Dutch Perspective, Peter Reitsma
Solit 2014, Freelance and Nearshoring from a Dutch Perspective, Peter ReitsmaSolit 2014, Freelance and Nearshoring from a Dutch Perspective, Peter Reitsma
Solit 2014, Freelance and Nearshoring from a Dutch Perspective, Peter Reitsmasolit
 
Solit 2014, Мифы и легенды SEO, Крылов Александр
Solit 2014, Мифы и легенды SEO, Крылов АлександрSolit 2014, Мифы и легенды SEO, Крылов Александр
Solit 2014, Мифы и легенды SEO, Крылов Александрsolit
 
Solit 2014, Измеряем производительность Webприложения на сторне клиента с пом...
Solit 2014, Измеряем производительность Webприложения на сторне клиента с пом...Solit 2014, Измеряем производительность Webприложения на сторне клиента с пом...
Solit 2014, Измеряем производительность Webприложения на сторне клиента с пом...solit
 
Solit 2014, Непрерывная интеграция сложного проекта. Кто все сломал?, Русаков...
Solit 2014, Непрерывная интеграция сложного проекта. Кто все сломал?, Русаков...Solit 2014, Непрерывная интеграция сложного проекта. Кто все сломал?, Русаков...
Solit 2014, Непрерывная интеграция сложного проекта. Кто все сломал?, Русаков...solit
 
Solit 2014, Реактивный Javascript. Победа над асинхронностью и вложенностью, ...
Solit 2014, Реактивный Javascript. Победа над асинхронностью и вложенностью, ...Solit 2014, Реактивный Javascript. Победа над асинхронностью и вложенностью, ...
Solit 2014, Реактивный Javascript. Победа над асинхронностью и вложенностью, ...solit
 
Solit 2014, 3 этапа развития аналитики вашего бизнеса. Как правильно определи...
Solit 2014, 3 этапа развития аналитики вашего бизнеса. Как правильно определи...Solit 2014, 3 этапа развития аналитики вашего бизнеса. Как правильно определи...
Solit 2014, 3 этапа развития аналитики вашего бизнеса. Как правильно определи...solit
 
Solit 2014, Опыт участия в конкурсе по спортивному программированию Russian A...
Solit 2014, Опыт участия в конкурсе по спортивному программированию Russian A...Solit 2014, Опыт участия в конкурсе по спортивному программированию Russian A...
Solit 2014, Опыт участия в конкурсе по спортивному программированию Russian A...solit
 
Solit 2014, MapReduce и машинное обучение на hadoop и mahout, Слисенко Конста...
Solit 2014, MapReduce и машинное обучение на hadoop и mahout, Слисенко Конста...Solit 2014, MapReduce и машинное обучение на hadoop и mahout, Слисенко Конста...
Solit 2014, MapReduce и машинное обучение на hadoop и mahout, Слисенко Конста...solit
 

More from solit (20)

Jazz team cooperation roadmap
Jazz team cooperation roadmapJazz team cooperation roadmap
Jazz team cooperation roadmap
 
JazzTeam company presentation
JazzTeam company presentationJazzTeam company presentation
JazzTeam company presentation
 
Solit 2014, Agile ValueTeam, учимся понимать Scrum, Семенченко Антон
Solit 2014, Agile ValueTeam, учимся понимать Scrum, Семенченко АнтонSolit 2014, Agile ValueTeam, учимся понимать Scrum, Семенченко Антон
Solit 2014, Agile ValueTeam, учимся понимать Scrum, Семенченко Антон
 
Solit 2014, Scrum guide 2013, Семенченко Антон
Solit 2014, Scrum guide 2013, Семенченко АнтонSolit 2014, Scrum guide 2013, Семенченко Антон
Solit 2014, Scrum guide 2013, Семенченко Антон
 
Solit 2014, Подготовка специалистов в сфере It на факультетe информационных т...
Solit 2014, Подготовка специалистов в сфере It на факультетe информационных т...Solit 2014, Подготовка специалистов в сфере It на факультетe информационных т...
Solit 2014, Подготовка специалистов в сфере It на факультетe информационных т...
 
Solit 2014, Адраджэнне Памяти аб продках пачынаецца з дзеянняу нашчадкау, Уру...
Solit 2014, Адраджэнне Памяти аб продках пачынаецца з дзеянняу нашчадкау, Уру...Solit 2014, Адраджэнне Памяти аб продках пачынаецца з дзеянняу нашчадкау, Уру...
Solit 2014, Адраджэнне Памяти аб продках пачынаецца з дзеянняу нашчадкау, Уру...
 
Solit 2014, Централизованное управление тестами с помощью TestLink, Зубович В...
Solit 2014, Централизованное управление тестами с помощью TestLink, Зубович В...Solit 2014, Централизованное управление тестами с помощью TestLink, Зубович В...
Solit 2014, Централизованное управление тестами с помощью TestLink, Зубович В...
 
Solit 2014, Инструменты автоматизации тестирования мобильных приложений. Срав...
Solit 2014, Инструменты автоматизации тестирования мобильных приложений. Срав...Solit 2014, Инструменты автоматизации тестирования мобильных приложений. Срав...
Solit 2014, Инструменты автоматизации тестирования мобильных приложений. Срав...
 
Solit 2014, Cемантическое ядро сайта, Нагибович Юлия
Solit 2014, Cемантическое ядро сайта, Нагибович ЮлияSolit 2014, Cемантическое ядро сайта, Нагибович Юлия
Solit 2014, Cемантическое ядро сайта, Нагибович Юлия
 
Solit 2014, Геоанамальные зоны и сейсмоакустика. Субъективный взгляд. Миснико...
Solit 2014, Геоанамальные зоны и сейсмоакустика. Субъективный взгляд. Миснико...Solit 2014, Геоанамальные зоны и сейсмоакустика. Субъективный взгляд. Миснико...
Solit 2014, Геоанамальные зоны и сейсмоакустика. Субъективный взгляд. Миснико...
 
Solit 2014, Обзор белоруского интернет потребителя и рекламодателя. Что хочет...
Solit 2014, Обзор белоруского интернет потребителя и рекламодателя. Что хочет...Solit 2014, Обзор белоруского интернет потребителя и рекламодателя. Что хочет...
Solit 2014, Обзор белоруского интернет потребителя и рекламодателя. Что хочет...
 
Solit 2014, Как эффективно организовать Автоматизацию, Семенченко Антон
Solit 2014, Как эффективно организовать Автоматизацию, Семенченко АнтонSolit 2014, Как эффективно организовать Автоматизацию, Семенченко Антон
Solit 2014, Как эффективно организовать Автоматизацию, Семенченко Антон
 
Solit 2014, Freelance and Nearshoring from a Dutch Perspective, Peter Reitsma
Solit 2014, Freelance and Nearshoring from a Dutch Perspective, Peter ReitsmaSolit 2014, Freelance and Nearshoring from a Dutch Perspective, Peter Reitsma
Solit 2014, Freelance and Nearshoring from a Dutch Perspective, Peter Reitsma
 
Solit 2014, Мифы и легенды SEO, Крылов Александр
Solit 2014, Мифы и легенды SEO, Крылов АлександрSolit 2014, Мифы и легенды SEO, Крылов Александр
Solit 2014, Мифы и легенды SEO, Крылов Александр
 
Solit 2014, Измеряем производительность Webприложения на сторне клиента с пом...
Solit 2014, Измеряем производительность Webприложения на сторне клиента с пом...Solit 2014, Измеряем производительность Webприложения на сторне клиента с пом...
Solit 2014, Измеряем производительность Webприложения на сторне клиента с пом...
 
Solit 2014, Непрерывная интеграция сложного проекта. Кто все сломал?, Русаков...
Solit 2014, Непрерывная интеграция сложного проекта. Кто все сломал?, Русаков...Solit 2014, Непрерывная интеграция сложного проекта. Кто все сломал?, Русаков...
Solit 2014, Непрерывная интеграция сложного проекта. Кто все сломал?, Русаков...
 
Solit 2014, Реактивный Javascript. Победа над асинхронностью и вложенностью, ...
Solit 2014, Реактивный Javascript. Победа над асинхронностью и вложенностью, ...Solit 2014, Реактивный Javascript. Победа над асинхронностью и вложенностью, ...
Solit 2014, Реактивный Javascript. Победа над асинхронностью и вложенностью, ...
 
Solit 2014, 3 этапа развития аналитики вашего бизнеса. Как правильно определи...
Solit 2014, 3 этапа развития аналитики вашего бизнеса. Как правильно определи...Solit 2014, 3 этапа развития аналитики вашего бизнеса. Как правильно определи...
Solit 2014, 3 этапа развития аналитики вашего бизнеса. Как правильно определи...
 
Solit 2014, Опыт участия в конкурсе по спортивному программированию Russian A...
Solit 2014, Опыт участия в конкурсе по спортивному программированию Russian A...Solit 2014, Опыт участия в конкурсе по спортивному программированию Russian A...
Solit 2014, Опыт участия в конкурсе по спортивному программированию Russian A...
 
Solit 2014, MapReduce и машинное обучение на hadoop и mahout, Слисенко Конста...
Solit 2014, MapReduce и машинное обучение на hadoop и mahout, Слисенко Конста...Solit 2014, MapReduce и машинное обучение на hadoop и mahout, Слисенко Конста...
Solit 2014, MapReduce и машинное обучение на hadoop и mahout, Слисенко Конста...
 

Recently uploaded

Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentationphoebematthew05
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 

Recently uploaded (20)

Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentation
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 

Solit 2013, Автоматизация тестирования сложных систем: mixed mode automated test case, Короневич Виктор

  • 1. Автоматизация тестирования сложных систем: mixed mode automated test case. Виктор Короневич
  • 2. Content 1. Структура mixed-mode теста 2. Особенности реализации решения 3. Пример mixed-mode теста 4. Demo
  • 3. Структура mixed-mode теста Тест: - pre-test actions; - preconditions; - set up fixture; - steps; - check; - post-test actions;
  • 4. Особенности реализации решения Modes: - db testing (create/clean-up scripts – mysql driver); link: http://www.mysql.com/products/connector/ - web services testing (create/load scripts – apache httpclient wrapper); link: http://hc.apache.org/httpclient-3.x/ - web testing (functional scripts – Selenium 2.x Web Driver); link: http://seleniumhq.org/docs/03_webdriver.jsp# - iOS testing (functional scripts – Frank project); link: https://github.com/moredip/Frank
  • 5. Пример @TestFixture(username = test_user, password = test_pass) @CleanUp(script = "./scripts/clean_up_db_users.sql") @Test(timeout = min_timeout) public void testUserBuyPaidExercise(){ // [STEPS] // scenario: 1.login -> 2.tap buy items -> 3.gather expected data -> // 4.buy the first item -> 5.go to my items -> 6.gather actual data // step 1-2 BuyItemsScreen buyItemsScreen = ScreenFactory.getInstance().getLoginScreen().login(username, password).tapBuyItems(); // step 3 Exercise expectedExercise = buyItemsScreen.getFirstItem(); int moneyCount = buyItemsScreen.getMoneyCount(); int expectedItemsCount = 1; int expectedMoneyCount = moneyCount - CurrencyExchange.convertToBYR(expectedExercise.getPrice(), Currency.USD);
  • 6. Пример @TestFixture(username = test_user, password = test_pass) @CleanUp(script = "./scripts/clean_up_db_users.sql") @Test(timeout = min_timeout) public void testUserBuyPaidExercise(){ // [STEPS] // scenario: 1.login -> 2.tap buy items -> 3.gather expected data -> // 4.buy the first item -> 5.go to my items -> 6.gather actual data … // step 4-5 MyItemsScreen myItemsScreen = buyItemsScreen.tapFirstItem().tapBuyButton().tapMyItems(); // step 6 int actualItemsCount = myItemsScreen.getItemsCount(); Exercise actualExercise = myItemsScreen.getFirstItem(); int actualMoneyCount = myItemsScreen.getMoneyCount(); }
  • 7. Пример @TestFixture(username = test_user, password = test_pass) @CleanUp(script = "./scripts/clean_up_db_users.sql") @Test(timeout = min_timeout) public void testUserBuyPaidExercise(){ // [STEPS] // scenario: 1.login -> 2.tap buy items -> 3.gather expected data -> // 4.buy the first item -> 5.go to my items -> 6.gather actual data … // [CHECK] // #1: exercises count should be 1 (we buy only 1 item) Assert.assertEquals(expectedItemsCount, actualItemsCount); // #2: exercise name and price should be equal CustomAssert.assertEquals(expectedExercise, actualExercise); // #3: money count should be reduced on expected exercise price including the current valid currency course Assert.assertEquals(expectedMoneyCount, actualMoneyCount); }
  • 8. Пример public class IntegrationTestSet extends TestSetTexture{ @BeforeClass public static void setUpAllTests(){ install_iPhoneApp(); } @Before public void setUpTest(){ sharedTCFixture(); } @After public void tearDownTest(){ ScreenFactory.getInstance().getMyItemsScreen().logout(); } @AfterClass public static void tearDownAllTests(){ quit_iPhoneApp(); } …
  • 9. Пример public class TestSetTexture extends JUnitExtension{ protected final static String test_user = "test_user"; protected final static String test_pass = "test_pass"; … protected static void install_iPhoneApp(){ SUT.start(); } protected static void quit_iPhoneApp(){ SUT.quit(); } protected void sharedTCFixture(){ int eCount = 100; SUT.registerUser(test_user, test_pass); SUT.createExercises(eCount); } }
  • 10. Demo
  • 12. Feedback Виктор Короневич Senior Software Test Automation Engineer Contacts: - LinkedIn at www.linkedin.com/in/agileseph - Email at koronevichw@tut.by - Skype at viktar_karanevich