SlideShare a Scribd company logo
1 of 14
Автоматические тесты на PHP

        Максим Екатериненко,
     Технический менеджер PaaS
Тестирование
                 User Acceptance




                   Performance




               Integration/Functional




                       Unit
Автоматические Тесты
• Unit
• Integration
• Functional
Что нужно что бы начать писать Unit-тесты
• PHP
• Pear
• PHPUnit by Sebastian Bergmann.
  – http://www.phpunit.de/manual/3.6/en/index.html
• Code*
Простой Unit-test
•   MyTest extends PHPUnit_Framework_TestCase
•   function setUp()
•   function tearDown()
•   function testNAME()
•   phpunit.xml
Annotations (18)
• http://www.phpunit.de/manual/3.6/en/appen
  dixes.annotations.html
• @dataProvider
• @expectedException
• @depends
• @assert
• @test
Test Doubles
Test Doubles - Mocks
Mocks – are fake object that helps decide if a test
failed or passed, by verifying if an interaction on
an object occurred or not.
Test Doubles - Stubs
Stubs provide canned answers to calls made
during the test, usually not responding at all to
anything outside what's programmed in for the
test.
Integration
• Сложный фреймворк построенный на
  архитектуре приложения
  – Фикстуры
  – Изоляция запросов в БД
  – PHPunit
• Больше времени на выполнение тестов
Functional
•   Selenium
•   PhpUnit
•   SeleniumGrid
•   uimap
•   TAF
Инструменты
• CI
  – Tests Code-Coverage
  – Code-sniffer
  – Run Tests
• Удаленный запуск тестов
Спасибо.

max@magento.com
Skype: maksek_ua

More Related Content

What's hot

Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеSQALab
 
Непрерывная интеграция и автотесты. Сравнительный анализ инструментов
Непрерывная интеграция и автотесты. Сравнительный анализ инструментовНепрерывная интеграция и автотесты. Сравнительный анализ инструментов
Непрерывная интеграция и автотесты. Сравнительный анализ инструментовSQALab
 
Testing tools
Testing toolsTesting tools
Testing toolsQA Guards
 
COMAQA.BY Conf #2: “Настройка Allure при использовании TestNG-Retry, Антон Ем...
COMAQA.BY Conf #2: “Настройка Allure при использовании TestNG-Retry, Антон Ем...COMAQA.BY Conf #2: “Настройка Allure при использовании TestNG-Retry, Антон Ем...
COMAQA.BY Conf #2: “Настройка Allure при использовании TestNG-Retry, Антон Ем...COMAQA.BY
 
Automated tests ci
Automated tests ci Automated tests ci
Automated tests ci COMAQA.BY
 
Тестирование слоёного пирога
Тестирование слоёного пирогаТестирование слоёного пирога
Тестирование слоёного пирогаSQALab
 
Непрерывная интеграция и автотесты. Сравнительный анализ инструментов
Непрерывная интеграция и автотесты. Сравнительный анализ инструментовНепрерывная интеграция и автотесты. Сравнительный анализ инструментов
Непрерывная интеграция и автотесты. Сравнительный анализ инструментовCOMAQA.BY
 
ASP.NET Core: подход к написанию интеграционных тестов для WebAPI
ASP.NET Core: подход к написанию интеграционных тестов для WebAPIASP.NET Core: подход к написанию интеграционных тестов для WebAPI
ASP.NET Core: подход к написанию интеграционных тестов для WebAPIByndyusoft
 
Контроль качетсва в компании iiko
Контроль качетсва в компании iikoКонтроль качетсва в компании iiko
Контроль качетсва в компании iikoAlexey Chumagin
 
Алексей Петров, Mail.Ru Group, "Организация конвейера автоматизации тестирова...
Алексей Петров, Mail.Ru Group, "Организация конвейера автоматизации тестирова...Алексей Петров, Mail.Ru Group, "Организация конвейера автоматизации тестирова...
Алексей Петров, Mail.Ru Group, "Организация конвейера автоматизации тестирова...Mail.ru Group
 
Новый процесс тестирования на "старом" проекте
Новый процесс тестирования на "старом" проектеНовый процесс тестирования на "старом" проекте
Новый процесс тестирования на "старом" проектеSQALab
 
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNG
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNGДмитрий Лукьяненко: Первый фреймворк на Selenium + TestNG
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNGDataArt
 
End-2-End UI автоматизация в мобильном приложении. Наша реализация
End-2-End UI автоматизация в мобильном приложении. Наша реализацияEnd-2-End UI автоматизация в мобильном приложении. Наша реализация
End-2-End UI автоматизация в мобильном приложении. Наша реализацияSQALab
 
Автоматизация в тестировании инфраструктуры
Автоматизация в тестировании инфраструктурыАвтоматизация в тестировании инфраструктуры
Автоматизация в тестировании инфраструктурыSQALab
 
Контроль качества с использованием продуктов Ibm rational
Контроль качества с использованием продуктов Ibm rationalКонтроль качества с использованием продуктов Ibm rational
Контроль качества с использованием продуктов Ibm rationalAlexander Novichkov
 
Автоматизация тестирования ролей и привилегий
Автоматизация тестирования ролей и привилегийАвтоматизация тестирования ролей и привилегий
Автоматизация тестирования ролей и привилегийSQALab
 
Test automation
Test automationTest automation
Test automationQA Guards
 

What's hot (19)

Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
 
Непрерывная интеграция и автотесты. Сравнительный анализ инструментов
Непрерывная интеграция и автотесты. Сравнительный анализ инструментовНепрерывная интеграция и автотесты. Сравнительный анализ инструментов
Непрерывная интеграция и автотесты. Сравнительный анализ инструментов
 
Testing tools
Testing toolsTesting tools
Testing tools
 
COMAQA.BY Conf #2: “Настройка Allure при использовании TestNG-Retry, Антон Ем...
COMAQA.BY Conf #2: “Настройка Allure при использовании TestNG-Retry, Антон Ем...COMAQA.BY Conf #2: “Настройка Allure при использовании TestNG-Retry, Антон Ем...
COMAQA.BY Conf #2: “Настройка Allure при использовании TestNG-Retry, Антон Ем...
 
Automated tests ci
Automated tests ci Automated tests ci
Automated tests ci
 
Тестирование слоёного пирога
Тестирование слоёного пирогаТестирование слоёного пирога
Тестирование слоёного пирога
 
Непрерывная интеграция и автотесты. Сравнительный анализ инструментов
Непрерывная интеграция и автотесты. Сравнительный анализ инструментовНепрерывная интеграция и автотесты. Сравнительный анализ инструментов
Непрерывная интеграция и автотесты. Сравнительный анализ инструментов
 
ASP.NET Core: подход к написанию интеграционных тестов для WebAPI
ASP.NET Core: подход к написанию интеграционных тестов для WebAPIASP.NET Core: подход к написанию интеграционных тестов для WebAPI
ASP.NET Core: подход к написанию интеграционных тестов для WebAPI
 
Seamy side of autotests
Seamy side of autotestsSeamy side of autotests
Seamy side of autotests
 
Контроль качетсва в компании iiko
Контроль качетсва в компании iikoКонтроль качетсва в компании iiko
Контроль качетсва в компании iiko
 
Алексей Петров, Mail.Ru Group, "Организация конвейера автоматизации тестирова...
Алексей Петров, Mail.Ru Group, "Организация конвейера автоматизации тестирова...Алексей Петров, Mail.Ru Group, "Организация конвейера автоматизации тестирова...
Алексей Петров, Mail.Ru Group, "Организация конвейера автоматизации тестирова...
 
Новый процесс тестирования на "старом" проекте
Новый процесс тестирования на "старом" проектеНовый процесс тестирования на "старом" проекте
Новый процесс тестирования на "старом" проекте
 
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNG
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNGДмитрий Лукьяненко: Первый фреймворк на Selenium + TestNG
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNG
 
Allure Framework
Allure FrameworkAllure Framework
Allure Framework
 
End-2-End UI автоматизация в мобильном приложении. Наша реализация
End-2-End UI автоматизация в мобильном приложении. Наша реализацияEnd-2-End UI автоматизация в мобильном приложении. Наша реализация
End-2-End UI автоматизация в мобильном приложении. Наша реализация
 
Автоматизация в тестировании инфраструктуры
Автоматизация в тестировании инфраструктурыАвтоматизация в тестировании инфраструктуры
Автоматизация в тестировании инфраструктуры
 
Контроль качества с использованием продуктов Ibm rational
Контроль качества с использованием продуктов Ibm rationalКонтроль качества с использованием продуктов Ibm rational
Контроль качества с использованием продуктов Ibm rational
 
Автоматизация тестирования ролей и привилегий
Автоматизация тестирования ролей и привилегийАвтоматизация тестирования ролей и привилегий
Автоматизация тестирования ролей и привилегий
 
Test automation
Test automationTest automation
Test automation
 

Similar to Autotest

Обеспечение качества: Практические советы
Обеспечение качества: Практические советыОбеспечение качества: Практические советы
Обеспечение качества: Практические советыSQALab
 
Тестирование весна 2013 лекция 5
Тестирование весна 2013 лекция 5Тестирование весна 2013 лекция 5
Тестирование весна 2013 лекция 5Technopark
 
Слои тестового фрамеворка. Что? Где? Когда?
Слои тестового фрамеворка. Что? Где? Когда?Слои тестового фрамеворка. Что? Где? Когда?
Слои тестового фрамеворка. Что? Где? Когда?COMAQA.BY
 
QA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
QA Fes 2016. Анастасия Асеева. Роль тестирования в DevopsQA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
QA Fes 2016. Анастасия Асеева. Роль тестирования в DevopsQAFest
 
Magento Test Automation Framework
Magento Test Automation FrameworkMagento Test Automation Framework
Magento Test Automation FrameworkaheadWorks
 
Шаги мануальщика к автоматизации на крупном проекте
Шаги мануальщика к автоматизации на крупном проектеШаги мануальщика к автоматизации на крупном проекте
Шаги мануальщика к автоматизации на крупном проектеSQALab
 
Python tools for web development (Python meetup Almaty #ALAPY)
Python tools for web development (Python meetup Almaty #ALAPY)Python tools for web development (Python meetup Almaty #ALAPY)
Python tools for web development (Python meetup Almaty #ALAPY)aviatakz
 
Сергей Ревко
Сергей РевкоСергей Ревко
Сергей РевкоSQALab
 
Solit 2012, Enterprise разработка PHP приложений, Иван Захарченко
Solit 2012, Enterprise разработка PHP приложений, Иван ЗахарченкоSolit 2012, Enterprise разработка PHP приложений, Иван Захарченко
Solit 2012, Enterprise разработка PHP приложений, Иван Захарченкоsolit
 
ук 03.007.02 2011
ук 03.007.02 2011ук 03.007.02 2011
ук 03.007.02 2011etyumentcev
 
Continious integration-Automated Testing-Solid-Agile
Continious integration-Automated Testing-Solid-AgileContinious integration-Automated Testing-Solid-Agile
Continious integration-Automated Testing-Solid-AgileKairat Yussupov
 
iPhone Unit Testing (Google tool Box)
iPhone Unit Testing (Google tool Box)iPhone Unit Testing (Google tool Box)
iPhone Unit Testing (Google tool Box)Yandex
 
Artem Shabarshin. CSEDays
Artem Shabarshin. CSEDaysArtem Shabarshin. CSEDays
Artem Shabarshin. CSEDaysLiloSEA
 
Keyword-driven framework
Keyword-driven frameworkKeyword-driven framework
Keyword-driven frameworkSQALab
 
Дело тестера боится: как в опытных руках могут заиграть Java и TestNg
Дело тестера боится: как в опытных руках могут заиграть Java и TestNgДело тестера боится: как в опытных руках могут заиграть Java и TestNg
Дело тестера боится: как в опытных руках могут заиграть Java и TestNgIT61
 

Similar to Autotest (20)

Introduction to Automation Testing
Introduction to Automation TestingIntroduction to Automation Testing
Introduction to Automation Testing
 
Обеспечение качества: Практические советы
Обеспечение качества: Практические советыОбеспечение качества: Практические советы
Обеспечение качества: Практические советы
 
Тестирование весна 2013 лекция 5
Тестирование весна 2013 лекция 5Тестирование весна 2013 лекция 5
Тестирование весна 2013 лекция 5
 
Слои тестового фрамеворка. Что? Где? Когда?
Слои тестового фрамеворка. Что? Где? Когда?Слои тестового фрамеворка. Что? Где? Когда?
Слои тестового фрамеворка. Что? Где? Когда?
 
QA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
QA Fes 2016. Анастасия Асеева. Роль тестирования в DevopsQA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
QA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
 
QAFest. Роль тестирования в Devops
QAFest. Роль тестирования в DevopsQAFest. Роль тестирования в Devops
QAFest. Роль тестирования в Devops
 
Magento Test Automation Framework
Magento Test Automation FrameworkMagento Test Automation Framework
Magento Test Automation Framework
 
Шаги мануальщика к автоматизации на крупном проекте
Шаги мануальщика к автоматизации на крупном проектеШаги мануальщика к автоматизации на крупном проекте
Шаги мануальщика к автоматизации на крупном проекте
 
Python tools for web development (Python meetup Almaty #ALAPY)
Python tools for web development (Python meetup Almaty #ALAPY)Python tools for web development (Python meetup Almaty #ALAPY)
Python tools for web development (Python meetup Almaty #ALAPY)
 
План тестирования
План тестированияПлан тестирования
План тестирования
 
Сергей Ревко
Сергей РевкоСергей Ревко
Сергей Ревко
 
Solit 2012, Enterprise разработка PHP приложений, Иван Захарченко
Solit 2012, Enterprise разработка PHP приложений, Иван ЗахарченкоSolit 2012, Enterprise разработка PHP приложений, Иван Захарченко
Solit 2012, Enterprise разработка PHP приложений, Иван Захарченко
 
ук 03.007.02 2011
ук 03.007.02 2011ук 03.007.02 2011
ук 03.007.02 2011
 
Continious integration-Automated Testing-Solid-Agile
Continious integration-Automated Testing-Solid-AgileContinious integration-Automated Testing-Solid-Agile
Continious integration-Automated Testing-Solid-Agile
 
iPhone Unit Testing (Google tool Box)
iPhone Unit Testing (Google tool Box)iPhone Unit Testing (Google tool Box)
iPhone Unit Testing (Google tool Box)
 
Artem Shabarshin. CSEDays
Artem Shabarshin. CSEDaysArtem Shabarshin. CSEDays
Artem Shabarshin. CSEDays
 
DevOps guide for awesome quality assurance
DevOps guide for awesome quality assuranceDevOps guide for awesome quality assurance
DevOps guide for awesome quality assurance
 
Keyword-driven framework
Keyword-driven frameworkKeyword-driven framework
Keyword-driven framework
 
Дело тестера боится: как в опытных руках могут заиграть Java и TestNg
Дело тестера боится: как в опытных руках могут заиграть Java и TestNgДело тестера боится: как в опытных руках могут заиграть Java и TestNg
Дело тестера боится: как в опытных руках могут заиграть Java и TestNg
 
Автоматизация тестирования
Автоматизация тестированияАвтоматизация тестирования
Автоматизация тестирования
 

More from Magento Dev

Yurii Hryhoriev "Php storm tips&tricks"
Yurii Hryhoriev "Php storm tips&tricks"Yurii Hryhoriev "Php storm tips&tricks"
Yurii Hryhoriev "Php storm tips&tricks"Magento Dev
 
DevHub 3 - Composer plus Magento
DevHub 3 - Composer plus MagentoDevHub 3 - Composer plus Magento
DevHub 3 - Composer plus MagentoMagento Dev
 
DevHub 3 - Pricing
DevHub 3 - PricingDevHub 3 - Pricing
DevHub 3 - PricingMagento Dev
 
Magento2 airplane
Magento2 airplaneMagento2 airplane
Magento2 airplaneMagento Dev
 
Imagine recap-devhub
Imagine recap-devhubImagine recap-devhub
Imagine recap-devhubMagento Dev
 
Разработка на стероидах или как я перестал бояться и полюбил свою IDE
Разработка на стероидах или как я перестал бояться и полюбил свою IDEРазработка на стероидах или как я перестал бояться и полюбил свою IDE
Разработка на стероидах или как я перестал бояться и полюбил свою IDEMagento Dev
 
Top 5 magento secure coding best practices Alex Zarichnyi
Top 5 magento secure coding best practices   Alex ZarichnyiTop 5 magento secure coding best practices   Alex Zarichnyi
Top 5 magento secure coding best practices Alex ZarichnyiMagento Dev
 
Magento 2 Page Cache
Magento 2 Page CacheMagento 2 Page Cache
Magento 2 Page CacheMagento Dev
 
Data migration into eav model
Data migration into eav modelData migration into eav model
Data migration into eav modelMagento Dev
 
Gearman jobqueue
Gearman jobqueueGearman jobqueue
Gearman jobqueueMagento Dev
 
Choreography of web-services
Choreography of web-servicesChoreography of web-services
Choreography of web-servicesMagento Dev
 
Take more from Jquery
Take more from JqueryTake more from Jquery
Take more from JqueryMagento Dev
 

More from Magento Dev (17)

Yurii Hryhoriev "Php storm tips&tricks"
Yurii Hryhoriev "Php storm tips&tricks"Yurii Hryhoriev "Php storm tips&tricks"
Yurii Hryhoriev "Php storm tips&tricks"
 
DevHub 3 - Composer plus Magento
DevHub 3 - Composer plus MagentoDevHub 3 - Composer plus Magento
DevHub 3 - Composer plus Magento
 
DevHub 3 - Pricing
DevHub 3 - PricingDevHub 3 - Pricing
DevHub 3 - Pricing
 
DevHub 3 - CVS
DevHub 3 - CVSDevHub 3 - CVS
DevHub 3 - CVS
 
Magento2 airplane
Magento2 airplaneMagento2 airplane
Magento2 airplane
 
Imagine recap-devhub
Imagine recap-devhubImagine recap-devhub
Imagine recap-devhub
 
Разработка на стероидах или как я перестал бояться и полюбил свою IDE
Разработка на стероидах или как я перестал бояться и полюбил свою IDEРазработка на стероидах или как я перестал бояться и полюбил свою IDE
Разработка на стероидах или как я перестал бояться и полюбил свою IDE
 
Top 5 magento secure coding best practices Alex Zarichnyi
Top 5 magento secure coding best practices   Alex ZarichnyiTop 5 magento secure coding best practices   Alex Zarichnyi
Top 5 magento secure coding best practices Alex Zarichnyi
 
Magento 2 Page Cache
Magento 2 Page CacheMagento 2 Page Cache
Magento 2 Page Cache
 
Data migration into eav model
Data migration into eav modelData migration into eav model
Data migration into eav model
 
Magento devhub
Magento devhubMagento devhub
Magento devhub
 
Php + erlang
Php + erlangPhp + erlang
Php + erlang
 
Tdd php
Tdd phpTdd php
Tdd php
 
Gearman jobqueue
Gearman jobqueueGearman jobqueue
Gearman jobqueue
 
Choreography of web-services
Choreography of web-servicesChoreography of web-services
Choreography of web-services
 
Security in PHP
Security in PHPSecurity in PHP
Security in PHP
 
Take more from Jquery
Take more from JqueryTake more from Jquery
Take more from Jquery
 

Autotest