SlideShare a Scribd company logo
1 of 75
10 причин
моей ненависти
Andrei Solntsev
twitter.com/asolntsev
1. Пэджъ объжекты
2. Параллелизация
3. Параметризация
4. BDD
5. Красивые отчёты
6. TestNG
7. Оверинжиниринг
План
Чем плох
Пэдж обжект?
1/7
Пэдж обжект -
это хорошая идея
но
плохая практика
Классический пэдж обжект
@Test
public void googleSearch() {
GooglePage page = new GooglePage(webdriver);
page.setQuery("selenide");
page.submitQuery();
}
Классический пэдж обжект
public class GooglePage {
@FindBy(name = “q”)
private WebElement queue;
public GooglePage(WebDriver webdriver) {
PageFactory.initElements(webdriver, this);
}
public void setQuery(String query) {
queue.clear();
queue.sendKeys(query);
}
Классический пэдж обжект
public class GooglePage {
@FindBy(name = “q”)
private WebElement queue;
public GooglePage(WebDriver webdriver) {
PageFactory.initElements(webdriver, this);
}
public void setQuery(String query) {
queue.clear();
queue.sendKeys(query);
}
Бойлерплейт!
Selenide пэдж обжект
public class GooglePage {
public void search(String query) {
$(By.name(“q”))
.val(queue)
.pressEnter();
}
}
Чем плох
@FindBy?
Чем плох @FindBy?
public class MyPage {
@FindBy(xpath = "//div[1]/div[2]/input[@name=bd]")
public WebElement birthday;
}
@Test {
MyPage page = new MyPage(webdriver);
birthday.sendKeys("19.03.1955");
}
если изменится локатор,
придётся поменять только в одном месте.
но
меняется не только локатор.
Меняется поведение.
типа
Что, если изменится не это:
public class MyPage {
@FindBy(xpath = "//div[1]/div[2]/input[@name=bd]")
public WebElement birthday;
}
@Test {
MyPage page = new MyPage(webdriver);
birthday.sendKeys("19.03.1955");
}
А вот это:
public class MyPage {
@FindBy(xpath = "//div[1]/div[2]/input[@name=bd]")
public WebElement birthday;
}
@Test {
MyPage page = new MyPage(webdriver);
birthday.sendKeys("19.03.1955");
}
1. Открыть календарь
2. Выбрать год
3. Выбрать месяц...
Упс! Придётся
менять кучу тестов.
данные и операции с ними.
Объект - это поведение.
Объект - это НЕ
Настоящие пэдж-объекты
Решение: поля -> методы
public class MyPage {
public void selectBirthday(String date) {
...
}
}
@Test {
page.selectBirthday("19.03.1955");
}
● Публичный только метод
● Внутри - делай что хочешь
Это инкапсуляция, братан!
Можно приватное поле с @FindBy:
public class MyPage {
@FindBy(xpath = "//div[1]/div[2]/input[@name=bd]")
private WebElement birthday;
public void selectBirthday(String date) {
...
}
}
Можно приватное поле By:
public class MyPage {
private By birthday = By.xpath(“...”);
public void selectBirthday(String date) {
$(birthday).sendKeys(date);
}
}
Можно приватное поле String:
public class MyPage {
private String birthday = “input[name=bday]”;
public void selectBirthday(String date) {
$(birthday).sendKeys(date);
}
}
А можно...
ой, божечки!..
вообще без поля.
public class MyPage {
public void selectBirthday(String date) {
$(“#birthday”).sendKeys(date);
}
}
А что,
так можно было?
Какие проблемы должен решать ПО
Плохие локаторы1.
public class MyPage {
@FindBy(xpath = "//div[1]/div[2]/input[@name=bd]")
private WebElement birthday;
}
Какие проблемы должен решать ПО
2.
Плохие локаторы1.
Дублирование локаторов
Но эти проблемы -
следствия
плохого процесса
Плохой процесс:
● Разрабы не пишут тесты
○ Нет юнит-тестов
● Через UI тестируется много кейсов
○ (но далеко не все!)
● Тесты медленные & нестабильные
○ (хотим отчёты и рипортпорталы)
● QA не сотрудничают с разрабами
Экономически эффективный процесс тестирования
При правильном процессе:
Плохие
локаторы
1. ● Разрабы делают
хорошие локаторы
public class MyPage {
WebElement birthday = $(“#birthday”);
}
ПО больше не такой уж ценный:
При правильном процессе:
2.
Плохие
локаторы
1.
Дублирование
локаторов
● Разрабы делают
хорошие локаторы
● Большинство кейсов покрыто
юнит-тестами.
● UI-тестами покрывается только
один-два сценария
● Каждый локатор используется
мало"Пацан накодил
- пацан протестил!"
Поговори с разрабом!
В чём он заинтересован?
● Он не любит получать по рукам
● Он не хочет, чтобы его фича сломалась
● Он не мечтает фиксить багу все выходные
Поговори с разрабом!
В чём он заинтересован?
● Он не любит получать по рукам
● Он не хочет, чтобы его фича сломалась
● Он не мечтает фиксить багу все выходные
Крошка Енот
Вы можете
помочь
друг другу!
Пэдж обжекты -
техническое решение
для
нетехнической проблемы
А это всегда плохая идея!
Чем плоха
параллелизация?
2/7
Снова плохой процесс
● Нет юнит-тестов
● UI-тестами покрываются многие комбинации
○ Сложные сценарии
○ Медленные сценарии
○ Трудновоспроизводимые сценарии
● Testability на дне
○ Медленный тестовый стенд
● Тесты бегут 12 часов
●
Снова плохой процесс
● Нет юнит-тестов
● UI-тестами покрываются многие комбинации
○ Сложные сценарии
○ Медленные сценарии
○ Трудновоспроизводимые сценарии
● Testability на дне
○ Медленный тестовый стенд
● Почему бы не запустить
параллельно?
● В 100500 потоков?
● Ферма, йопта!
● Клауд, йопта!
● TestNG, йопта!
● Я теперь SDET, йопта!
При правильном процессе:
● Юнит-тестов много
● UI-тестов мало
● Они бегут быстро
Экономически эффективный
процесс тестирования
Test Pyramid
Чак Норрис
не параллелит тесты
Они и в одном потоке быстро бегут
Чак Норрис
не параллелит тесты
Чак Норрис
ПЕРПЕНДИКУЛЯРИТ тесты!
Параллелить, конечно, можно,
если всё остальное решено:
14 часов -> 3 часа
не норм!
40 минут -> 10
норм!
Чем плохи
параметризированные
тесты?
3/7
Болезнь индустрии
-
Слишком много через UI тесты
а
параметризированные тесты
делают это проще
Параметризированные тесты
:
Для UI-тестов
плохо!
Для unit-тестов
хорошо!
Чем плох
BDD?
4/7
BDD -
это офигенная идея
но
она не работает
BDD - это
язык для
заказчика и исполнителя
взаимодействия
(в теории)
BDD - это
отчёты с картинками
заказчик не читает
которые
(на практике)
Это не про тесты
Это про разработку
Это не про отчёты
Это про взаимодействие
с заказчиком
BDD
Bullshit driven development
BDD обещает Красивые отчёты
Менеджер надеется
решить
Отсутствие доверия к команде.
Непрозрачный рабочий процесс.
Решает ли BDD
эту проблему?
Нет.
Доверия как не было, так и нет.
BDD: Болезни vs. симптомы
BDD обещает Красивые отчёты
Менеджер надеется
решить
Показать своему боссу /
заказчику, что "у нас всё круто",
работа кипит.
Какая проблема
на самом деле
Этот менеджер - промежуточный
человек, ничего полезного в
проект не привносит.
Решает ли BDD
эту проблему?
Нет.
Гнать таких в шею - вот решение.
BDD обещает
тесты смогут писать даже
нетехнические люди
Менеджер надеется
решить
Технарей мало, они всё не
успевают. Хочется часть работы
переложить на гуманитариев.
Решает ли BDD
эту проблему?
Нет.
Вся работа по поддержке степов
и прочей БелиБерДы по-любому
ложится на плечи технарей.P.S. Кстати, толковых гуманитариев тоже мало.
А бестолковые только мешают.
Что
не так
с отчётами? 5/7
● отчёт JUnit/TestNG - достаточно хорош
● Selenide добавляет скриншот+html
Element should be hidden {#gameWin}
Element: '<img class="gameOver" id="gameWin" src="img/thumbs-up.jpeg"></img>'
Screenshot: file:/.../hangman/build/reports/tests/1510751914648.0.png
Page source: file:/.../hangman/build/reports/tests/1510751914648.0.html
Timeout: 4 s.
Этого достаточно!
Что не так с
TestNG? 6/7
Разница между JUnit и TestNG
JUnit TestNG
Новый инстанс перед
каждым тестом
Один инстанс на все
тест-методы
JUnit pain
JUnit TestNG
Created MyTest
Created MyTest
Created MyTest
public class MyTest {
public MyTest() {
System.out.println(“Created MyTest”);
}
@Test public void testA() {}
@Test public void testB() {}
@Test public void testC() {}
}
Created MyTest
JUnit TestNG
public class MyTest {
Foo foo = mock(Foo.class);
Counter cnt = new Counter(0);
}
public class MyTest {
Foo foo;
Counter cnt;
@BeforeEach
public void setUp() {
foo = mock(Foo.class);
cnt = new Counter(0);
}
}
Почему это важно?
Риск зависимых тестов!
Фичи TestNG
● Конфигурация в XML
● Порядок тестов
● Зависимые тесты
(которых нет в JUnit)
Эти фичи - ЗЛО!
Не используй их, братан!
TestNG
“Не хочешь злые фичи - не используй.
Никто ж не заставляет.”
Бог с вами, хотите - используйте TestNG.
Но не называйте его “тулом для продвинутого
интеграционного тестирования”.
Он для неэффективного, неуправляемого,
медленного, нестабильного
интеграционного тестирования.
Arrange, mazafaka!
Беда IT -
оверинжиниринг!
7/7
Оверинжиниринг
protected void waitForElementClickable(By locator, Integer... timeOutInSeconds) {
int attempts = 0;
while (attempts < 2) {
try {
waitFor(elementToBeClickable(locator),
(timeOutInSeconds.length > 0 ? timeOutInSeconds[0] : null));
break;
} catch (StaleElementReferenceException e) {
}
attempts++;
}
void waitFor(ExpectedCondition<WebElement> condition, Integer timeOutInSeconds) {
timeOutInSeconds = timeOutInSeconds != null ? timeOutInSeconds : 30;
WebDriverWait wait = new WebDriverWait(driver, timeOutInSeconds);
wait.until(condition);
}
Оверинжиниринг
protected void waitForElementClickable(By locator, Integer... timeOutInSeconds) {
int attempts = 0;
while (attempts < 2) {
try {
waitFor(elementToBeClickable(locator),
(timeOutInSeconds.length > 0 ? timeOutInSeconds[0] : null));
break;
} catch (StaleElementReferenceException e) {
}
attempts++;
}
void waitFor(ExpectedCondition<WebElement> condition, Integer timeOutInSeconds) {
timeOutInSeconds = timeOutInSeconds != null ? timeOutInSeconds : 30;
WebDriverWait wait = new WebDriverWait(driver, timeOutInSeconds);
wait.until(condition);
}
Оверинжиниринг
protected void waitForElementClickable(By locator, Integer... timeOutInSeconds) {
int attempts = 0;
while (attempts < 2) {
try {
waitFor(elementToBeClickable(locator),
(timeOutInSeconds.length > 0 ? timeOutInSeconds[0] : null));
break;
} catch (StaleElementReferenceException e) {
}
attempts++;
}
void waitFor(ExpectedCondition<WebElement> condition, Integer timeOutInSeconds) {
timeOutInSeconds = timeOutInSeconds != null ? timeOutInSeconds : 30;
WebDriverWait wait = new WebDriverWait(driver, timeOutInSeconds);
wait.until(condition);
}
KISS
protected void waitForElementClickable(By locator, int timeout) {
new WebDriverWait(driver, timeout).until(condition);
}
protected void waitForElementClickable(By locator) {
waitForElementClickable(locator, 30);
}
: Keep it scuko simple!
KISS by Selenide
$(locator).click();
$(locator).shouldBe(visible).click();
$(locator).waitUntil(visible, 30_000).click();
Винтовка -
Выбор профессионала -
Оружие новичка.
НОЖ!
Самая опасная идея
та,
которая кажется хорошей.
Douglas Crockford
JavaScript: The Good Parts
Андрей Солнцев
@asolntsev
ru.selenide.org
Больше видео
Спасибо за фотки:
1. https://stories.genvagula.com/my-magical-estonia-500aafd5b2c0
2. https://www.facebook.com/stan.vasilyev
3. https://i-love-tallinn.livejournal.com/306474.html
4. https://www.facebook.com/lyosha.razin
5. https://www.facebook.com/ttrk19/

More Related Content

What's hot

QA Fes 2016. Алексей Виноградов. Page Objects: лучше проще, да лучшe
QA Fes 2016. Алексей Виноградов. Page Objects: лучше проще, да лучшeQA Fes 2016. Алексей Виноградов. Page Objects: лучше проще, да лучшe
QA Fes 2016. Алексей Виноградов. Page Objects: лучше проще, да лучшeQAFest
 
Robot Framework Introduction
Robot Framework IntroductionRobot Framework Introduction
Robot Framework IntroductionPekka Klärck
 
Performance testing jmeter
Performance testing jmeterPerformance testing jmeter
Performance testing jmeterBhojan Rajan
 
Why Should we use Microsoft's Playwright
Why Should we use Microsoft's PlaywrightWhy Should we use Microsoft's Playwright
Why Should we use Microsoft's PlaywrightKnoldus Inc.
 
Cypress-vs-Playwright: Let the Code Speak
Cypress-vs-Playwright: Let the Code SpeakCypress-vs-Playwright: Let the Code Speak
Cypress-vs-Playwright: Let the Code SpeakApplitools
 
Testing Your APIs: Postman, Newman, and Beyond
Testing Your APIs: Postman, Newman, and BeyondTesting Your APIs: Postman, Newman, and Beyond
Testing Your APIs: Postman, Newman, and BeyondPostman
 
Detecting headless browsers
Detecting headless browsersDetecting headless browsers
Detecting headless browsersSergey Shekyan
 
Test automation: the ROI myth
Test automation: the ROI mythTest automation: the ROI myth
Test automation: the ROI mythGilles Mantel
 
Self healing test automation with Healenium and Minimization of regression su...
Self healing test automation with Healenium and Minimization of regression su...Self healing test automation with Healenium and Minimization of regression su...
Self healing test automation with Healenium and Minimization of regression su...Dmitriy Gumeniuk
 
Test Automation - Principles and Practices
Test Automation - Principles and PracticesTest Automation - Principles and Practices
Test Automation - Principles and PracticesAnand Bagmar
 
No drama here - E2E-testing django with playwright
No drama here - E2E-testing django with playwrightNo drama here - E2E-testing django with playwright
No drama here - E2E-testing django with playwrightMastacheata1
 
Introduction to jmeter
Introduction to jmeterIntroduction to jmeter
Introduction to jmetertest test
 
API Testing following the Test Pyramid
API Testing following the Test PyramidAPI Testing following the Test Pyramid
API Testing following the Test PyramidElias Nogueira
 

What's hot (20)

QA Fes 2016. Алексей Виноградов. Page Objects: лучше проще, да лучшe
QA Fes 2016. Алексей Виноградов. Page Objects: лучше проще, да лучшeQA Fes 2016. Алексей Виноградов. Page Objects: лучше проще, да лучшe
QA Fes 2016. Алексей Виноградов. Page Objects: лучше проще, да лучшe
 
Robot Framework Introduction
Robot Framework IntroductionRobot Framework Introduction
Robot Framework Introduction
 
Selenium Primer
Selenium PrimerSelenium Primer
Selenium Primer
 
Performance testing jmeter
Performance testing jmeterPerformance testing jmeter
Performance testing jmeter
 
Unit testing with JUnit
Unit testing with JUnitUnit testing with JUnit
Unit testing with JUnit
 
Why Should we use Microsoft's Playwright
Why Should we use Microsoft's PlaywrightWhy Should we use Microsoft's Playwright
Why Should we use Microsoft's Playwright
 
Cypress-vs-Playwright: Let the Code Speak
Cypress-vs-Playwright: Let the Code SpeakCypress-vs-Playwright: Let the Code Speak
Cypress-vs-Playwright: Let the Code Speak
 
Selenium-4-and-appium-2
Selenium-4-and-appium-2Selenium-4-and-appium-2
Selenium-4-and-appium-2
 
TestNG Framework
TestNG Framework TestNG Framework
TestNG Framework
 
Automation Testing by Selenium Web Driver
Automation Testing by Selenium Web DriverAutomation Testing by Selenium Web Driver
Automation Testing by Selenium Web Driver
 
Testing Your APIs: Postman, Newman, and Beyond
Testing Your APIs: Postman, Newman, and BeyondTesting Your APIs: Postman, Newman, and Beyond
Testing Your APIs: Postman, Newman, and Beyond
 
Apache jMeter
Apache jMeterApache jMeter
Apache jMeter
 
Detecting headless browsers
Detecting headless browsersDetecting headless browsers
Detecting headless browsers
 
Test automation: the ROI myth
Test automation: the ROI mythTest automation: the ROI myth
Test automation: the ROI myth
 
Self healing test automation with Healenium and Minimization of regression su...
Self healing test automation with Healenium and Minimization of regression su...Self healing test automation with Healenium and Minimization of regression su...
Self healing test automation with Healenium and Minimization of regression su...
 
Test Automation - Principles and Practices
Test Automation - Principles and PracticesTest Automation - Principles and Practices
Test Automation - Principles and Practices
 
No drama here - E2E-testing django with playwright
No drama here - E2E-testing django with playwrightNo drama here - E2E-testing django with playwright
No drama here - E2E-testing django with playwright
 
Api Testing
Api TestingApi Testing
Api Testing
 
Introduction to jmeter
Introduction to jmeterIntroduction to jmeter
Introduction to jmeter
 
API Testing following the Test Pyramid
API Testing following the Test PyramidAPI Testing following the Test Pyramid
API Testing following the Test Pyramid
 

Similar to QA Fest 2019. Андрей Солнцев. Десять причин моей ненависти

Continious integration-Automated Testing-Solid-Agile
Continious integration-Automated Testing-Solid-AgileContinious integration-Automated Testing-Solid-Agile
Continious integration-Automated Testing-Solid-AgileKairat Yussupov
 
Светлана Федянина - Процесс тестирования в распределенной команде
Светлана Федянина - Процесс тестирования в распределенной командеСветлана Федянина - Процесс тестирования в распределенной команде
Светлана Федянина - Процесс тестирования в распределенной командеSQALab
 
Процесс тестирования в распределенной команде
Процесс тестирования в распределенной командеПроцесс тестирования в распределенной команде
Процесс тестирования в распределенной командеSvetlana Fedyanina
 
"Outside In". Web application testing.
"Outside In". Web application testing."Outside In". Web application testing.
"Outside In". Web application testing.Mad Devs
 
Can we have some more quality - Russian version
Can we have some more quality - Russian versionCan we have some more quality - Russian version
Can we have some more quality - Russian versionAlexander Pushkarev
 
JavaTalks.Unit Testing.Part 1
JavaTalks.Unit Testing.Part 1JavaTalks.Unit Testing.Part 1
JavaTalks.Unit Testing.Part 1sgdread
 
Jbreak 2016: Твой личный Spring Boot Starter
Jbreak 2016: Твой личный Spring Boot StarterJbreak 2016: Твой личный Spring Boot Starter
Jbreak 2016: Твой личный Spring Boot StarterAleksandr Tarasov
 
организация и проведение тестирования
организация и проведение тестированияорганизация и проведение тестирования
организация и проведение тестированияIgor Pozumentov
 
Внедрение тестирования в Scrum
Внедрение тестирования в ScrumВнедрение тестирования в Scrum
Внедрение тестирования в ScrumDenis Petelin
 
Внедрение тестирования в Scrum
Внедрение тестирования в ScrumВнедрение тестирования в Scrum
Внедрение тестирования в ScrumDenis Petelin
 
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...HappyDev
 
kranonit S11E01 Андрей Пономарёв: Тренинг по TDD в Java
kranonit S11E01 Андрей Пономарёв: Тренинг по TDD в Javakranonit S11E01 Андрей Пономарёв: Тренинг по TDD в Java
kranonit S11E01 Андрей Пономарёв: Тренинг по TDD в JavaKrivoy Rog IT Community
 
Повышение качества тестов и автоматическая валидация REST API документации
Повышение качества тестов и автоматическая валидация REST API документацииПовышение качества тестов и автоматическая валидация REST API документации
Повышение качества тестов и автоматическая валидация REST API документацииCEE-SEC(R)
 
IT-шная история игрушек или feature-driven тестирование в действии
IT-шная история игрушек или feature-driven тестирование в действииIT-шная история игрушек или feature-driven тестирование в действии
IT-шная история игрушек или feature-driven тестирование в действииGleb Rybalko
 
Стратегия тестирования крупного проекта в условиях Agile разработки v2
Стратегия тестирования крупного проекта в условиях Agile разработки v2Стратегия тестирования крупного проекта в условиях Agile разработки v2
Стратегия тестирования крупного проекта в условиях Agile разработки v2Magneta AI
 
Тестируем код с Visual Studio 2012 - XP Days Ukraine 2012
Тестируем код с Visual Studio 2012 - XP Days Ukraine 2012Тестируем код с Visual Studio 2012 - XP Days Ukraine 2012
Тестируем код с Visual Studio 2012 - XP Days Ukraine 2012Dmytro Mindra
 
Как сделать наши проекты немного более управляемыми с Agile
Как сделать наши проекты немного более управляемыми с AgileКак сделать наши проекты немного более управляемыми с Agile
Как сделать наши проекты немного более управляемыми с AgileAlexey Krivitsky
 

Similar to QA Fest 2019. Андрей Солнцев. Десять причин моей ненависти (20)

10M tests per day
10M tests per day10M tests per day
10M tests per day
 
Continious integration-Automated Testing-Solid-Agile
Continious integration-Automated Testing-Solid-AgileContinious integration-Automated Testing-Solid-Agile
Continious integration-Automated Testing-Solid-Agile
 
Светлана Федянина - Процесс тестирования в распределенной команде
Светлана Федянина - Процесс тестирования в распределенной командеСветлана Федянина - Процесс тестирования в распределенной команде
Светлана Федянина - Процесс тестирования в распределенной команде
 
Процесс тестирования в распределенной команде
Процесс тестирования в распределенной командеПроцесс тестирования в распределенной команде
Процесс тестирования в распределенной команде
 
"Outside In". Web application testing.
"Outside In". Web application testing."Outside In". Web application testing.
"Outside In". Web application testing.
 
Can we have some more quality - Russian version
Can we have some more quality - Russian versionCan we have some more quality - Russian version
Can we have some more quality - Russian version
 
JavaTalks.Unit Testing.Part 1
JavaTalks.Unit Testing.Part 1JavaTalks.Unit Testing.Part 1
JavaTalks.Unit Testing.Part 1
 
Jbreak 2016: Твой личный Spring Boot Starter
Jbreak 2016: Твой личный Spring Boot StarterJbreak 2016: Твой личный Spring Boot Starter
Jbreak 2016: Твой личный Spring Boot Starter
 
организация и проведение тестирования
организация и проведение тестированияорганизация и проведение тестирования
организация и проведение тестирования
 
Внедрение тестирования в Scrum
Внедрение тестирования в ScrumВнедрение тестирования в Scrum
Внедрение тестирования в Scrum
 
Внедрение тестирования в Scrum
Внедрение тестирования в ScrumВнедрение тестирования в Scrum
Внедрение тестирования в Scrum
 
10_tips_for_become_qa
10_tips_for_become_qa10_tips_for_become_qa
10_tips_for_become_qa
 
Unit Testing
Unit TestingUnit Testing
Unit Testing
 
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...
 
kranonit S11E01 Андрей Пономарёв: Тренинг по TDD в Java
kranonit S11E01 Андрей Пономарёв: Тренинг по TDD в Javakranonit S11E01 Андрей Пономарёв: Тренинг по TDD в Java
kranonit S11E01 Андрей Пономарёв: Тренинг по TDD в Java
 
Повышение качества тестов и автоматическая валидация REST API документации
Повышение качества тестов и автоматическая валидация REST API документацииПовышение качества тестов и автоматическая валидация REST API документации
Повышение качества тестов и автоматическая валидация REST API документации
 
IT-шная история игрушек или feature-driven тестирование в действии
IT-шная история игрушек или feature-driven тестирование в действииIT-шная история игрушек или feature-driven тестирование в действии
IT-шная история игрушек или feature-driven тестирование в действии
 
Стратегия тестирования крупного проекта в условиях Agile разработки v2
Стратегия тестирования крупного проекта в условиях Agile разработки v2Стратегия тестирования крупного проекта в условиях Agile разработки v2
Стратегия тестирования крупного проекта в условиях Agile разработки v2
 
Тестируем код с Visual Studio 2012 - XP Days Ukraine 2012
Тестируем код с Visual Studio 2012 - XP Days Ukraine 2012Тестируем код с Visual Studio 2012 - XP Days Ukraine 2012
Тестируем код с Visual Studio 2012 - XP Days Ukraine 2012
 
Как сделать наши проекты немного более управляемыми с Agile
Как сделать наши проекты немного более управляемыми с AgileКак сделать наши проекты немного более управляемыми с Agile
Как сделать наши проекты немного более управляемыми с Agile
 

More from QAFest

QA Fest 2019. Сергій Короленко. Топ веб вразливостей за 40 хвилин
QA Fest 2019. Сергій Короленко. Топ веб вразливостей за 40 хвилинQA Fest 2019. Сергій Короленко. Топ веб вразливостей за 40 хвилин
QA Fest 2019. Сергій Короленко. Топ веб вразливостей за 40 хвилинQAFest
 
QA Fest 2019. Анна Чернышова. Self-healing test automation 2.0. The Future
QA Fest 2019. Анна Чернышова. Self-healing test automation 2.0. The FutureQA Fest 2019. Анна Чернышова. Self-healing test automation 2.0. The Future
QA Fest 2019. Анна Чернышова. Self-healing test automation 2.0. The FutureQAFest
 
QA Fest 2019. Doug Sillars. It's just too Slow: Testing Mobile application pe...
QA Fest 2019. Doug Sillars. It's just too Slow: Testing Mobile application pe...QA Fest 2019. Doug Sillars. It's just too Slow: Testing Mobile application pe...
QA Fest 2019. Doug Sillars. It's just too Slow: Testing Mobile application pe...QAFest
 
QA Fest 2019. Катерина Спринсян. Параллельное покрытие автотестами и другие и...
QA Fest 2019. Катерина Спринсян. Параллельное покрытие автотестами и другие и...QA Fest 2019. Катерина Спринсян. Параллельное покрытие автотестами и другие и...
QA Fest 2019. Катерина Спринсян. Параллельное покрытие автотестами и другие и...QAFest
 
QA Fest 2019. Никита Галкин. Как зарабатывать больше
QA Fest 2019. Никита Галкин. Как зарабатывать большеQA Fest 2019. Никита Галкин. Как зарабатывать больше
QA Fest 2019. Никита Галкин. Как зарабатывать большеQAFest
 
QA Fest 2019. Сергей Пирогов. Why everything is spoiled
QA Fest 2019. Сергей Пирогов. Why everything is spoiledQA Fest 2019. Сергей Пирогов. Why everything is spoiled
QA Fest 2019. Сергей Пирогов. Why everything is spoiledQAFest
 
QA Fest 2019. Сергей Новик. Между мотивацией и выгоранием
QA Fest 2019. Сергей Новик. Между мотивацией и выгораниемQA Fest 2019. Сергей Новик. Между мотивацией и выгоранием
QA Fest 2019. Сергей Новик. Между мотивацией и выгораниемQAFest
 
QA Fest 2019. Владимир Никонов. Код Шредингера или зачем и как мы тестируем н...
QA Fest 2019. Владимир Никонов. Код Шредингера или зачем и как мы тестируем н...QA Fest 2019. Владимир Никонов. Код Шредингера или зачем и как мы тестируем н...
QA Fest 2019. Владимир Никонов. Код Шредингера или зачем и как мы тестируем н...QAFest
 
QA Fest 2019. Владимир Трандафилов. GUI automation of WEB application with SV...
QA Fest 2019. Владимир Трандафилов. GUI automation of WEB application with SV...QA Fest 2019. Владимир Трандафилов. GUI automation of WEB application with SV...
QA Fest 2019. Владимир Трандафилов. GUI automation of WEB application with SV...QAFest
 
QA Fest 2019. Иван Крутов. Bulletproof Selenium Cluster
QA Fest 2019. Иван Крутов. Bulletproof Selenium ClusterQA Fest 2019. Иван Крутов. Bulletproof Selenium Cluster
QA Fest 2019. Иван Крутов. Bulletproof Selenium ClusterQAFest
 
QA Fest 2019. Николай Мижигурский. Миссия /*не*/выполнима: гуманитарий собесе...
QA Fest 2019. Николай Мижигурский. Миссия /*не*/выполнима: гуманитарий собесе...QA Fest 2019. Николай Мижигурский. Миссия /*не*/выполнима: гуманитарий собесе...
QA Fest 2019. Николай Мижигурский. Миссия /*не*/выполнима: гуманитарий собесе...QAFest
 
QA Fest 2019. Володимир Стиран. Чим раніше – тим вигідніше, але ніколи не піз...
QA Fest 2019. Володимир Стиран. Чим раніше – тим вигідніше, але ніколи не піз...QA Fest 2019. Володимир Стиран. Чим раніше – тим вигідніше, але ніколи не піз...
QA Fest 2019. Володимир Стиран. Чим раніше – тим вигідніше, але ніколи не піз...QAFest
 
QA Fest 2019. Дмитрий Прокопук. Mocks and network tricks in UI automation
QA Fest 2019. Дмитрий Прокопук. Mocks and network tricks in UI automationQA Fest 2019. Дмитрий Прокопук. Mocks and network tricks in UI automation
QA Fest 2019. Дмитрий Прокопук. Mocks and network tricks in UI automationQAFest
 
QA Fest 2019. Екатерина Дядечко. Тестирование медицинского софта — вызовы и в...
QA Fest 2019. Екатерина Дядечко. Тестирование медицинского софта — вызовы и в...QA Fest 2019. Екатерина Дядечко. Тестирование медицинского софта — вызовы и в...
QA Fest 2019. Екатерина Дядечко. Тестирование медицинского софта — вызовы и в...QAFest
 
QA Fest 2019. Катерина Черникова. Tune your P’s: the pop-art of keeping testa...
QA Fest 2019. Катерина Черникова. Tune your P’s: the pop-art of keeping testa...QA Fest 2019. Катерина Черникова. Tune your P’s: the pop-art of keeping testa...
QA Fest 2019. Катерина Черникова. Tune your P’s: the pop-art of keeping testa...QAFest
 
QA Fest 2019. Алиса Бойко. Какнезапутаться в коммуникативных сетях IT
QA Fest 2019. Алиса Бойко. Какнезапутаться в коммуникативных сетях ITQA Fest 2019. Алиса Бойко. Какнезапутаться в коммуникативных сетях IT
QA Fest 2019. Алиса Бойко. Какнезапутаться в коммуникативных сетях ITQAFest
 
QA Fest 2019. Святослав Логин. Как найти уязвимости в мобильном приложении
QA Fest 2019. Святослав Логин. Как найти уязвимости в мобильном приложенииQA Fest 2019. Святослав Логин. Как найти уязвимости в мобильном приложении
QA Fest 2019. Святослав Логин. Как найти уязвимости в мобильном приложенииQAFest
 
QA Fest 2019. Катерина Шепелєва та Інна Оснач. Що українцям потрібно знати пр...
QA Fest 2019. Катерина Шепелєва та Інна Оснач. Що українцям потрібно знати пр...QA Fest 2019. Катерина Шепелєва та Інна Оснач. Що українцям потрібно знати пр...
QA Fest 2019. Катерина Шепелєва та Інна Оснач. Що українцям потрібно знати пр...QAFest
 
QA Fest 2019. Антон Серпутько. Нагрузочное тестирование распределенных асинхр...
QA Fest 2019. Антон Серпутько. Нагрузочное тестирование распределенных асинхр...QA Fest 2019. Антон Серпутько. Нагрузочное тестирование распределенных асинхр...
QA Fest 2019. Антон Серпутько. Нагрузочное тестирование распределенных асинхр...QAFest
 
QA Fest 2019. Петр Тарасенко. QA Hackathon - The Cookbook 22
QA Fest 2019. Петр Тарасенко. QA Hackathon - The Cookbook 22QA Fest 2019. Петр Тарасенко. QA Hackathon - The Cookbook 22
QA Fest 2019. Петр Тарасенко. QA Hackathon - The Cookbook 22QAFest
 

More from QAFest (20)

QA Fest 2019. Сергій Короленко. Топ веб вразливостей за 40 хвилин
QA Fest 2019. Сергій Короленко. Топ веб вразливостей за 40 хвилинQA Fest 2019. Сергій Короленко. Топ веб вразливостей за 40 хвилин
QA Fest 2019. Сергій Короленко. Топ веб вразливостей за 40 хвилин
 
QA Fest 2019. Анна Чернышова. Self-healing test automation 2.0. The Future
QA Fest 2019. Анна Чернышова. Self-healing test automation 2.0. The FutureQA Fest 2019. Анна Чернышова. Self-healing test automation 2.0. The Future
QA Fest 2019. Анна Чернышова. Self-healing test automation 2.0. The Future
 
QA Fest 2019. Doug Sillars. It's just too Slow: Testing Mobile application pe...
QA Fest 2019. Doug Sillars. It's just too Slow: Testing Mobile application pe...QA Fest 2019. Doug Sillars. It's just too Slow: Testing Mobile application pe...
QA Fest 2019. Doug Sillars. It's just too Slow: Testing Mobile application pe...
 
QA Fest 2019. Катерина Спринсян. Параллельное покрытие автотестами и другие и...
QA Fest 2019. Катерина Спринсян. Параллельное покрытие автотестами и другие и...QA Fest 2019. Катерина Спринсян. Параллельное покрытие автотестами и другие и...
QA Fest 2019. Катерина Спринсян. Параллельное покрытие автотестами и другие и...
 
QA Fest 2019. Никита Галкин. Как зарабатывать больше
QA Fest 2019. Никита Галкин. Как зарабатывать большеQA Fest 2019. Никита Галкин. Как зарабатывать больше
QA Fest 2019. Никита Галкин. Как зарабатывать больше
 
QA Fest 2019. Сергей Пирогов. Why everything is spoiled
QA Fest 2019. Сергей Пирогов. Why everything is spoiledQA Fest 2019. Сергей Пирогов. Why everything is spoiled
QA Fest 2019. Сергей Пирогов. Why everything is spoiled
 
QA Fest 2019. Сергей Новик. Между мотивацией и выгоранием
QA Fest 2019. Сергей Новик. Между мотивацией и выгораниемQA Fest 2019. Сергей Новик. Между мотивацией и выгоранием
QA Fest 2019. Сергей Новик. Между мотивацией и выгоранием
 
QA Fest 2019. Владимир Никонов. Код Шредингера или зачем и как мы тестируем н...
QA Fest 2019. Владимир Никонов. Код Шредингера или зачем и как мы тестируем н...QA Fest 2019. Владимир Никонов. Код Шредингера или зачем и как мы тестируем н...
QA Fest 2019. Владимир Никонов. Код Шредингера или зачем и как мы тестируем н...
 
QA Fest 2019. Владимир Трандафилов. GUI automation of WEB application with SV...
QA Fest 2019. Владимир Трандафилов. GUI automation of WEB application with SV...QA Fest 2019. Владимир Трандафилов. GUI automation of WEB application with SV...
QA Fest 2019. Владимир Трандафилов. GUI automation of WEB application with SV...
 
QA Fest 2019. Иван Крутов. Bulletproof Selenium Cluster
QA Fest 2019. Иван Крутов. Bulletproof Selenium ClusterQA Fest 2019. Иван Крутов. Bulletproof Selenium Cluster
QA Fest 2019. Иван Крутов. Bulletproof Selenium Cluster
 
QA Fest 2019. Николай Мижигурский. Миссия /*не*/выполнима: гуманитарий собесе...
QA Fest 2019. Николай Мижигурский. Миссия /*не*/выполнима: гуманитарий собесе...QA Fest 2019. Николай Мижигурский. Миссия /*не*/выполнима: гуманитарий собесе...
QA Fest 2019. Николай Мижигурский. Миссия /*не*/выполнима: гуманитарий собесе...
 
QA Fest 2019. Володимир Стиран. Чим раніше – тим вигідніше, але ніколи не піз...
QA Fest 2019. Володимир Стиран. Чим раніше – тим вигідніше, але ніколи не піз...QA Fest 2019. Володимир Стиран. Чим раніше – тим вигідніше, але ніколи не піз...
QA Fest 2019. Володимир Стиран. Чим раніше – тим вигідніше, але ніколи не піз...
 
QA Fest 2019. Дмитрий Прокопук. Mocks and network tricks in UI automation
QA Fest 2019. Дмитрий Прокопук. Mocks and network tricks in UI automationQA Fest 2019. Дмитрий Прокопук. Mocks and network tricks in UI automation
QA Fest 2019. Дмитрий Прокопук. Mocks and network tricks in UI automation
 
QA Fest 2019. Екатерина Дядечко. Тестирование медицинского софта — вызовы и в...
QA Fest 2019. Екатерина Дядечко. Тестирование медицинского софта — вызовы и в...QA Fest 2019. Екатерина Дядечко. Тестирование медицинского софта — вызовы и в...
QA Fest 2019. Екатерина Дядечко. Тестирование медицинского софта — вызовы и в...
 
QA Fest 2019. Катерина Черникова. Tune your P’s: the pop-art of keeping testa...
QA Fest 2019. Катерина Черникова. Tune your P’s: the pop-art of keeping testa...QA Fest 2019. Катерина Черникова. Tune your P’s: the pop-art of keeping testa...
QA Fest 2019. Катерина Черникова. Tune your P’s: the pop-art of keeping testa...
 
QA Fest 2019. Алиса Бойко. Какнезапутаться в коммуникативных сетях IT
QA Fest 2019. Алиса Бойко. Какнезапутаться в коммуникативных сетях ITQA Fest 2019. Алиса Бойко. Какнезапутаться в коммуникативных сетях IT
QA Fest 2019. Алиса Бойко. Какнезапутаться в коммуникативных сетях IT
 
QA Fest 2019. Святослав Логин. Как найти уязвимости в мобильном приложении
QA Fest 2019. Святослав Логин. Как найти уязвимости в мобильном приложенииQA Fest 2019. Святослав Логин. Как найти уязвимости в мобильном приложении
QA Fest 2019. Святослав Логин. Как найти уязвимости в мобильном приложении
 
QA Fest 2019. Катерина Шепелєва та Інна Оснач. Що українцям потрібно знати пр...
QA Fest 2019. Катерина Шепелєва та Інна Оснач. Що українцям потрібно знати пр...QA Fest 2019. Катерина Шепелєва та Інна Оснач. Що українцям потрібно знати пр...
QA Fest 2019. Катерина Шепелєва та Інна Оснач. Що українцям потрібно знати пр...
 
QA Fest 2019. Антон Серпутько. Нагрузочное тестирование распределенных асинхр...
QA Fest 2019. Антон Серпутько. Нагрузочное тестирование распределенных асинхр...QA Fest 2019. Антон Серпутько. Нагрузочное тестирование распределенных асинхр...
QA Fest 2019. Антон Серпутько. Нагрузочное тестирование распределенных асинхр...
 
QA Fest 2019. Петр Тарасенко. QA Hackathon - The Cookbook 22
QA Fest 2019. Петр Тарасенко. QA Hackathon - The Cookbook 22QA Fest 2019. Петр Тарасенко. QA Hackathon - The Cookbook 22
QA Fest 2019. Петр Тарасенко. QA Hackathon - The Cookbook 22
 

QA Fest 2019. Андрей Солнцев. Десять причин моей ненависти