QA Fest 2017. Иван Пашко. Антипаттерны и запахи в автоматизации тестирования

Q
Антипаттерны и запахи в
автоматизации тестирования
QAFest - Kiev - 2017
О себе
Follow me on Fb
https://www.facebook.com/gr
oups/1180099188730673/
Иван Пашко
● Scrum Master
● QA Automation Engineer
● 9+ лет в ИТ
● 0+ лет счастливый отец
Антипаттерны и запахи тестов
◎Личный опыт
◎Собеседования!
◎Форумы  Соц. Сети
◎Конференции  митапы
Антипаттерны
Антипаттерны процесса автоматизации
тестирования
Что такое анти-паттерн?
Анти-паттерн - это распространенный
подход к решению класса часто
встречающихся проблем, являющийся
неэффективным, рискованным или
непродуктивным.
Причина возникновения антипаттернов
Отсутствие:
◎ЖЕЛАНИЯ
◎ВРЕМЕНИ
◎ЗНАНИЯ
*амбиции?..
#1 - Изолированная Автоматизация
◎ Изоляция от процесса  тест-кейзов 
тест-плана  регрессии
#2 - Ручная Автоматизация
Выполняется вручную:
◎ Запуск
◎ Проверка состояния  репорт
◎ Настройка тестового окружения
#3 - “Коварная” автоматизация
Автоматизация полностью вытесняет
ручное тестирование
#4 - Автоматизация на стероидах
◎“Сначала был фреймворк - сложный
фреймворк”
◎Автоматизация - инструмент:
Выбирайте и применяйте с умом
◎Подружите автоматизацию с
процессом тестирования!
Что же делать?
Запахи тестов
Что такое запах теста?
Тест (код) с запашком - термин,
обозначающий признаки (запахи)
проблем в системекодесценарие.
Ключевые признаки необходимости
рефакторинга.
#1 Неясный тест (Obscure test)
Тест, который трудно понять с первого
взгляда.
#2 Мучительный тест (Eager test)
public void MakeVisaPayment()
{
// Create customer
var customer = new Customer();
Assert.IsNotNull(customer);
// Configure method
var visaMethod = new PaymentMethod("VISA") {
Limits = new Limits(5, 1000, "USD");
SetConfigurationGateway = "https://payment.visa.com";
};
Assert.IsTrue(visaMethod.GatewayPingIsOk());
// Link customer to method
customer.AssignPaymentMethod(visaMethod);
// MakePayment
var result = customer.ProcessPayment( 100, "USD", "VISA");
//Check status
Assert.AreEqual("OK", result.Status);
}
Вроде как проверка возможности платежа визой
Зачем тогда эти проверки?
public void CheckVisaGatewayConfiguration()
{
// Create customer
var customer = new Customer();
Assert.IsNotNull(customer);
// Configure method
var visaMethod = new PaymentMethod("VISA") {
Limits = new Limits(5, 1000, "USD");
SetConfigurationGateway = "https://payment.visa.com";
};
Assert.IsTrue(visaMethod.GatewayPingIsOk());
// Link customer to method
customer.AssignPaymentMethod(visaMethod);
// MakePayment
var result = customer.ProcessPayment( 100, "USD", "VISA");
//Check status
Assert.AreEqual("OK", result.Status);
}
#2 Мучительный тест (Eager test)
А зачем тогда эта
проверка?
#3 Однострочный тест (Mystery Guest)
[TestMethod]
public void CheckVisaPayment()
{
DoPaymentTest("VISA");
}
[TestMethod]
public void CheckMasterCardPayment()
{
DoPaymentTest("MasterCard");
}
#4 Тест с ветвлениями
[TestMethod]
public void CheckPaymentChargeback()
{
var ppid = DoPaymentTest("VISA");
if (string.IsNullOrEmpty(ppid))
{
MakePaymentRefund("VISA");
}
}
Хороший тест - это баланс кода и
документирования
// Arrange
var result = new DepositFlow()
.ByMethod("VISA")
.WithCreditCard("4111 1111 1111 1111")
.WithAmount(100, "UAH")
// Act
.Submit();
// Assert
Assert.AreEqual("OK",
result.Status);
#5 Замусоривание
Все что не относится к тесту или его
интерпретации - мусор
#5.1 Дубликация-дублирование-
повторение
driver.FindElement(By.Name("q")).SendKeys( ...
driver.FindElement(By.Name("btnK")).Click();
driver.FindElement(By.XPath("//div[@class= ...
Дубликация не только
в поведении.
#5.2 Комментарии - плохо
// Строка для поиска
const string tmp = "I want to join QAFest";
// Инициализация драйвера, не забудьте потом закрыть сессию
var driver = new ChromeDriver();
// Переход на сайт-поисковик
driver.Navigate().GoToUrl(new Uri("https://www.google.com.ua"));
// Ввод в строку поиска
driver.FindElement(OpenQA.Selenium.By.Name("q")).SendKeys( …
// Нажатие кнопки поиска
driver.FindElement(OpenQA.Selenium.By.Name("btnK")).Click();
#5.2 Комментарии - хорошо
// Arrage
const string SEARCH_STRING = "I want to join QAFest2017";
// Act
var googlePage = new SearchPage()
.WithUrl("https://www.google.com.ua");
var firstResult = googlePage.DoSearch(SEARCH_STRING).First();
// Assert
Assert.AreEqual("qafest.com", firstResult);
#6 Код про запас, на будущее
Пишем, и оставляем неиспользуемый код,
авось когда-то пригодится
#7 Чрезмерная инициализация
Использование сложных флоу / вызовы
АПИ для инициализации состояния
#8 Общая инициализация
Приводит к зависимым, хрупким и
фантомные тестам
#9 Запахи в тестовых проверках
Основа теста - его проверки
#9.1 Множественные проверки
//Проверяем Int32
Assert.IsTrue(Int32.TryParse("1", out n));
Assert.AreEqual(1, Int32.Parse("1"));
Assert.IsTrue(Int32.TryParse("-1", out n));
Assert.AreEqual(-1, Int32.Parse("-1"));
....
//Мульти-проверки NUnit
Assert.Multiple(() =>
{
Assert.IsTrue(Int32.TryParse("-1", out n));
Assert.AreEqual(-1, Int32.Parse("-1"));
});
А если мы упадем
тут. Надо заново
запускать тест...
#9.2 Запутанная проверка
[TestMethod]
public void TestInt32Parser()
…
Assert.IsTrue(Int32.TryParse("1", out n));
Assert.AreEqual(1, Int32.Parse("1"));
//Граничные значения
Assert.IsTrue(Int32.TryParse("2147483648", out n));
Assert.AreEqual(2147483648, Int32.Parse("2147483648"));
//Переполнение буфера
Assert.IsFalse(Int32.TryParse("2147483649", out n));
Assert.AreEqual(-2147483648, Int32.MaxValue + 1);
Интересно, что
же проверяет
этот тест..
#9.3 Условная проверка
// Assert
if (searchResults.Count > 0)
{
Assert.AreEqual("http://qafest.com/", searchResults.First( …
}
else
{
var notFoundElm = driver.FindElement(OpenQA.Selenium.By.Id( …
Assert.AreEqual("По запросу ничего не найдено. ", notFoundE …
}
#9.4 Молчаливая проверка
Assert.IsNotNull(user);
Assert.IsTrue(IsShown);
Assert.AreEqual(1, count);
Assert.IsNotNull(user,
"User doesn’t exist");
“
Good test
is like a
good joke
- it needs no explanation
Мои характеристики хорошего теста:
◎Читаемый (Readability)
◎Поддерживаемый (Maintainability)
◎Полезный (Usability)
◎Гибкий (Flexibility)
СПАСИБО ЗА ВНИМАНИЕ
Вопросы?
Полезности
Join me in FB- Testing Jam
1 of 35

Recommended

QA Fest 2017. Игорь Хрол. Кто должен писать автоматические тесты? by
QA Fest 2017. Игорь Хрол. Кто должен писать автоматические тесты?QA Fest 2017. Игорь Хрол. Кто должен писать автоматические тесты?
QA Fest 2017. Игорь Хрол. Кто должен писать автоматические тесты?QAFest
548 views45 slides
QA Fest 2017. Никита Галкин. Контрактное тестирование на примерах или Contrac... by
QA Fest 2017. Никита Галкин. Контрактное тестирование на примерах или Contrac...QA Fest 2017. Никита Галкин. Контрактное тестирование на примерах или Contrac...
QA Fest 2017. Никита Галкин. Контрактное тестирование на примерах или Contrac...QAFest
1.2K views36 slides
QA Fest 2017. Яна Кокряшкина. Интеграция автоматизированных тестов с инструме... by
QA Fest 2017. Яна Кокряшкина. Интеграция автоматизированных тестов с инструме...QA Fest 2017. Яна Кокряшкина. Интеграция автоматизированных тестов с инструме...
QA Fest 2017. Яна Кокряшкина. Интеграция автоматизированных тестов с инструме...QAFest
382 views36 slides
Что ждет тестировщиков при организации процесса тестирования Enterprise-проду... by
Что ждет тестировщиков при организации процесса тестирования Enterprise-проду...Что ждет тестировщиков при организации процесса тестирования Enterprise-проду...
Что ждет тестировщиков при организации процесса тестирования Enterprise-проду...SQALab
2.1K views29 slides
Test design techniques basics by
Test design techniques basicsTest design techniques basics
Test design techniques basicsArtem Bykovets
819 views12 slides
Grail: шаги для ваших Python-тестов by
Grail: шаги для ваших Python-тестовGrail: шаги для ваших Python-тестов
Grail: шаги для ваших Python-тестовCodeFest
3.7K views71 slides

More Related Content

What's hot

Экономически эффективный процесс тестирования by
Экономически эффективный процесс тестированияЭкономически эффективный процесс тестирования
Экономически эффективный процесс тестированияCodeFest
7.6K views51 slides
QA Fest 2015. Алена Черненко-Дыба и Алексей Лупан. Секреты успешного проекта... by
QA Fest 2015. Алена Черненко-Дыба и Алексей Лупан. Секреты успешного проекта...QA Fest 2015. Алена Черненко-Дыба и Алексей Лупан. Секреты успешного проекта...
QA Fest 2015. Алена Черненко-Дыба и Алексей Лупан. Секреты успешного проекта...QAFest
828 views22 slides
QA Fest 2016. Андрей Мясников. Тест-дизайн для чайников by
QA Fest 2016. Андрей Мясников. Тест-дизайн для чайниковQA Fest 2016. Андрей Мясников. Тест-дизайн для чайников
QA Fest 2016. Андрей Мясников. Тест-дизайн для чайниковQAFest
3.4K views44 slides
Crystal Agile, или как мы приспособили процесс разработки для обеспечения мак... by
Crystal Agile, или как мы приспособили процесс разработки для обеспечения мак...Crystal Agile, или как мы приспособили процесс разработки для обеспечения мак...
Crystal Agile, или как мы приспособили процесс разработки для обеспечения мак...SQALab
3.5K views28 slides
Тестируем производительность с помощью Selenium by
Тестируем производительность с помощью SeleniumТестируем производительность с помощью Selenium
Тестируем производительность с помощью SeleniumSQALab
2.5K views45 slides
Александр Шуров, Олег Николенко «Как устроено автоматическое frontend-тестир... by
Александр Шуров, Олег Николенко  «Как устроено автоматическое frontend-тестир...Александр Шуров, Олег Николенко  «Как устроено автоматическое frontend-тестир...
Александр Шуров, Олег Николенко «Как устроено автоматическое frontend-тестир...WrikeTechClub
18.1K views19 slides

What's hot(20)

Экономически эффективный процесс тестирования by CodeFest
Экономически эффективный процесс тестированияЭкономически эффективный процесс тестирования
Экономически эффективный процесс тестирования
CodeFest7.6K views
QA Fest 2015. Алена Черненко-Дыба и Алексей Лупан. Секреты успешного проекта... by QAFest
QA Fest 2015. Алена Черненко-Дыба и Алексей Лупан. Секреты успешного проекта...QA Fest 2015. Алена Черненко-Дыба и Алексей Лупан. Секреты успешного проекта...
QA Fest 2015. Алена Черненко-Дыба и Алексей Лупан. Секреты успешного проекта...
QAFest828 views
QA Fest 2016. Андрей Мясников. Тест-дизайн для чайников by QAFest
QA Fest 2016. Андрей Мясников. Тест-дизайн для чайниковQA Fest 2016. Андрей Мясников. Тест-дизайн для чайников
QA Fest 2016. Андрей Мясников. Тест-дизайн для чайников
QAFest3.4K views
Crystal Agile, или как мы приспособили процесс разработки для обеспечения мак... by SQALab
Crystal Agile, или как мы приспособили процесс разработки для обеспечения мак...Crystal Agile, или как мы приспособили процесс разработки для обеспечения мак...
Crystal Agile, или как мы приспособили процесс разработки для обеспечения мак...
SQALab3.5K views
Тестируем производительность с помощью Selenium by SQALab
Тестируем производительность с помощью SeleniumТестируем производительность с помощью Selenium
Тестируем производительность с помощью Selenium
SQALab2.5K views
Александр Шуров, Олег Николенко «Как устроено автоматическое frontend-тестир... by WrikeTechClub
Александр Шуров, Олег Николенко  «Как устроено автоматическое frontend-тестир...Александр Шуров, Олег Николенко  «Как устроено автоматическое frontend-тестир...
Александр Шуров, Олег Николенко «Как устроено автоматическое frontend-тестир...
WrikeTechClub18.1K views
Как заслужить доверие заказчика при передаче проекта новой команде тестирования? by SQALab
Как заслужить доверие заказчика при передаче проекта новой команде тестирования?Как заслужить доверие заказчика при передаче проекта новой команде тестирования?
Как заслужить доверие заказчика при передаче проекта новой команде тестирования?
SQALab1.1K views
Технический долг: взгляд и действия со стороны QA / QC&AT by CodeFest
Технический долг: взгляд и действия со стороны QA / QC&ATТехнический долг: взгляд и действия со стороны QA / QC&AT
Технический долг: взгляд и действия со стороны QA / QC&AT
CodeFest8.7K views
Когда стоит закончить автоматизировать? by SQALab
Когда стоит закончить автоматизировать?Когда стоит закончить автоматизировать?
Когда стоит закончить автоматизировать?
SQALab872 views
QA Fest 2015. Aлександр Кузняк. Тестовая документация. How-To и типичные ошибки by QAFest
QA Fest 2015. Aлександр Кузняк. Тестовая документация. How-To и типичные ошибкиQA Fest 2015. Aлександр Кузняк. Тестовая документация. How-To и типичные ошибки
QA Fest 2015. Aлександр Кузняк. Тестовая документация. How-To и типичные ошибки
QAFest1.8K views
Процесс тестирования. Измерение и оценка by SQALab
Процесс тестирования. Измерение и оценкаПроцесс тестирования. Измерение и оценка
Процесс тестирования. Измерение и оценка
SQALab1.8K views
Концепция QaAPI: взгляд на тестирование с другой стороны баррикад by SQALab
Концепция QaAPI: взгляд на тестирование с другой стороны баррикадКонцепция QaAPI: взгляд на тестирование с другой стороны баррикад
Концепция QaAPI: взгляд на тестирование с другой стороны баррикад
SQALab6.2K views
Темная сторона метрик by Roman Ivliev
Темная сторона метрикТемная сторона метрик
Темная сторона метрик
Roman Ivliev3.8K views
QA Fest 2015. Александра Волкова. 10 принципов автоматизации, которые я не пр... by QAFest
QA Fest 2015. Александра Волкова. 10 принципов автоматизации, которые я не пр...QA Fest 2015. Александра Волкова. 10 принципов автоматизации, которые я не пр...
QA Fest 2015. Александра Волкова. 10 принципов автоматизации, которые я не пр...
QAFest927 views
QA Fest 2015. Юлия Завертайло. Практическая визуализация пользы тестирования... by QAFest
QA Fest 2015. Юлия Завертайло. Практическая визуализация пользы тестирования...QA Fest 2015. Юлия Завертайло. Практическая визуализация пользы тестирования...
QA Fest 2015. Юлия Завертайло. Практическая визуализация пользы тестирования...
QAFest691 views
Пополняем арсенал тестировщика. Учимся применять новые техники by SQALab
Пополняем арсенал тестировщика. Учимся применять новые техникиПополняем арсенал тестировщика. Учимся применять новые техники
Пополняем арсенал тестировщика. Учимся применять новые техники
SQALab14.5K views
Обеспечение качества: Практические советы by SQALab
Обеспечение качества: Практические советыОбеспечение качества: Практические советы
Обеспечение качества: Практические советы
SQALab4.5K views
QA Fest 2015. Владимир Скляр. Организация тестирования встроенных систем в ко... by QAFest
QA Fest 2015. Владимир Скляр. Организация тестирования встроенных систем в ко...QA Fest 2015. Владимир Скляр. Организация тестирования встроенных систем в ко...
QA Fest 2015. Владимир Скляр. Организация тестирования встроенных систем в ко...
QAFest739 views
Test Strategy: creation and optimization - QA Fest-2017 (Тестовая стратегия: ... by Andrey Ladutko
Test Strategy: creation and optimization - QA Fest-2017 (Тестовая стратегия: ...Test Strategy: creation and optimization - QA Fest-2017 (Тестовая стратегия: ...
Test Strategy: creation and optimization - QA Fest-2017 (Тестовая стратегия: ...
Andrey Ladutko2.1K views
Метод No-Test-Cases: избавьтесь от тест-кейсов в тестировании by SQALab
Метод No-Test-Cases: избавьтесь от тест-кейсов в тестированииМетод No-Test-Cases: избавьтесь от тест-кейсов в тестировании
Метод No-Test-Cases: избавьтесь от тест-кейсов в тестировании
SQALab10.8K views

Similar to QA Fest 2017. Иван Пашко. Антипаттерны и запахи в автоматизации тестирования

10_tips_for_become_qa by
10_tips_for_become_qa10_tips_for_become_qa
10_tips_for_become_qaSoftengiTrainingCenter
354 views43 slides
Тестирование весна 2013 лекция 2 by
Тестирование весна 2013 лекция 2Тестирование весна 2013 лекция 2
Тестирование весна 2013 лекция 2Technopark
966 views58 slides
DevPoint 2016: Признаки плохого кода и как с ним бороться в PHP проектах - Па... by
DevPoint 2016: Признаки плохого кода и как с ним бороться в PHP проектах - Па...DevPoint 2016: Признаки плохого кода и как с ним бороться в PHP проектах - Па...
DevPoint 2016: Признаки плохого кода и как с ним бороться в PHP проектах - Па...DevPoint Kyiv
516 views101 slides
10M tests per day by
10M tests per day10M tests per day
10M tests per daySergey Grinev
91 views77 slides
[JAM 1.1] Testing not for Fun (Evgeny Kaziak) by
[JAM 1.1] Testing not for Fun (Evgeny Kaziak)[JAM 1.1] Testing not for Fun (Evgeny Kaziak)
[JAM 1.1] Testing not for Fun (Evgeny Kaziak)Evgeny Kaziak
397 views31 slides
Промышленный подход к автоматизации тестирования или Keyword-driven testing в... by
Промышленный подход к автоматизации тестирования или Keyword-driven testing в...Промышленный подход к автоматизации тестирования или Keyword-driven testing в...
Промышленный подход к автоматизации тестирования или Keyword-driven testing в...SQALab
1.5K views22 slides

Similar to QA Fest 2017. Иван Пашко. Антипаттерны и запахи в автоматизации тестирования(20)

Тестирование весна 2013 лекция 2 by Technopark
Тестирование весна 2013 лекция 2Тестирование весна 2013 лекция 2
Тестирование весна 2013 лекция 2
Technopark966 views
DevPoint 2016: Признаки плохого кода и как с ним бороться в PHP проектах - Па... by DevPoint Kyiv
DevPoint 2016: Признаки плохого кода и как с ним бороться в PHP проектах - Па...DevPoint 2016: Признаки плохого кода и как с ним бороться в PHP проектах - Па...
DevPoint 2016: Признаки плохого кода и как с ним бороться в PHP проектах - Па...
DevPoint Kyiv516 views
[JAM 1.1] Testing not for Fun (Evgeny Kaziak) by Evgeny Kaziak
[JAM 1.1] Testing not for Fun (Evgeny Kaziak)[JAM 1.1] Testing not for Fun (Evgeny Kaziak)
[JAM 1.1] Testing not for Fun (Evgeny Kaziak)
Evgeny Kaziak397 views
Промышленный подход к автоматизации тестирования или Keyword-driven testing в... by SQALab
Промышленный подход к автоматизации тестирования или Keyword-driven testing в...Промышленный подход к автоматизации тестирования или Keyword-driven testing в...
Промышленный подход к автоматизации тестирования или Keyword-driven testing в...
SQALab1.5K views
Промышленный подход к автоматизации тестирования или Keyword-driven testing в... by Maksim Grinevich
Промышленный подход к автоматизации тестирования или Keyword-driven testing в...Промышленный подход к автоматизации тестирования или Keyword-driven testing в...
Промышленный подход к автоматизации тестирования или Keyword-driven testing в...
Maksim Grinevich5K views
Улучшение качества открытого программного обеспечения с помощью инструментов ... by Andrey Karpov
Улучшение качества открытого программного обеспечения с помощью инструментов ...Улучшение качества открытого программного обеспечения с помощью инструментов ...
Улучшение качества открытого программного обеспечения с помощью инструментов ...
Andrey Karpov36 views
Как управлять автоматизацией тестирования by DevDay
Как управлять автоматизацией тестированияКак управлять автоматизацией тестирования
Как управлять автоматизацией тестирования
DevDay45 views
SQA Days 19 - Self-dependent QA Assessment - how to start (Самостоятельная оц... by Andrey Ladutko
SQA Days 19 - Self-dependent QA Assessment - how to start (Самостоятельная оц...SQA Days 19 - Self-dependent QA Assessment - how to start (Самостоятельная оц...
SQA Days 19 - Self-dependent QA Assessment - how to start (Самостоятельная оц...
Andrey Ladutko277 views
Статический анализ кода в DDD by Aleksei Alekseev
Статический анализ кода в DDDСтатический анализ кода в DDD
Статический анализ кода в DDD
Aleksei Alekseev293 views
Викторина для тестировщиков by Uladzimir Kryvenka
Викторина для тестировщиковВикторина для тестировщиков
Викторина для тестировщиков
Uladzimir Kryvenka12.6K views
Moscow Python Conf 2016. Почему 100% покрытие это плохо? by Ivan Tsyganov
Moscow Python Conf 2016. Почему 100% покрытие это плохо?Moscow Python Conf 2016. Почему 100% покрытие это плохо?
Moscow Python Conf 2016. Почему 100% покрытие это плохо?
Ivan Tsyganov952 views
Техники пентеста для активной защиты - Николай Овчарук by HackIT Ukraine
Техники пентеста для активной защиты - Николай ОвчарукТехники пентеста для активной защиты - Николай Овчарук
Техники пентеста для активной защиты - Николай Овчарук
HackIT Ukraine819 views
Алексей Петров, Mail.Ru Group, "Организация конвейера автоматизации тестирова... by Mail.ru Group
Алексей Петров, Mail.Ru Group, "Организация конвейера автоматизации тестирова...Алексей Петров, Mail.Ru Group, "Организация конвейера автоматизации тестирова...
Алексей Петров, Mail.Ru Group, "Организация конвейера автоматизации тестирова...
Mail.ru Group5K views
Организация конвейера автоматизации тестирования / Алексей Петров (Mail.ru Gr... by Ontico
Организация конвейера автоматизации тестирования / Алексей Петров (Mail.ru Gr...Организация конвейера автоматизации тестирования / Алексей Петров (Mail.ru Gr...
Организация конвейера автоматизации тестирования / Алексей Петров (Mail.ru Gr...
Ontico681 views
Cовременный контроль качества: давай сделаем это по-быстрому... by Igor Khrol
Cовременный контроль качества: давай сделаем это по-быстрому...Cовременный контроль качества: давай сделаем это по-быстрому...
Cовременный контроль качества: давай сделаем это по-быстрому...
Igor Khrol22.3K views
Нагрузочное тестирование web-приложений с помощью Load Runner by SQALab
Нагрузочное тестирование web-приложений с помощью Load RunnerНагрузочное тестирование web-приложений с помощью Load Runner
Нагрузочное тестирование web-приложений с помощью Load Runner
SQALab2.2K views
QA Fest 2016. Инна Блажко. ISTQB – What is it? Who needs it? How to prepare a... by QAFest
QA Fest 2016. Инна Блажко. ISTQB – What is it? Who needs it? How to prepare a...QA Fest 2016. Инна Блажко. ISTQB – What is it? Who needs it? How to prepare a...
QA Fest 2016. Инна Блажко. ISTQB – What is it? Who needs it? How to prepare a...
QAFest1K views

More from QAFest

QA Fest 2019. Сергій Короленко. Топ веб вразливостей за 40 хвилин by
QA Fest 2019. Сергій Короленко. Топ веб вразливостей за 40 хвилинQA Fest 2019. Сергій Короленко. Топ веб вразливостей за 40 хвилин
QA Fest 2019. Сергій Короленко. Топ веб вразливостей за 40 хвилинQAFest
979 views44 slides
QA Fest 2019. Анна Чернышова. Self-healing test automation 2.0. The Future by
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
931 views44 slides
QA Fest 2019. Doug Sillars. It's just too Slow: Testing Mobile application pe... by
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
322 views131 slides
QA Fest 2019. Катерина Спринсян. Параллельное покрытие автотестами и другие и... by
QA Fest 2019. Катерина Спринсян. Параллельное покрытие автотестами и другие и...QA Fest 2019. Катерина Спринсян. Параллельное покрытие автотестами и другие и...
QA Fest 2019. Катерина Спринсян. Параллельное покрытие автотестами и другие и...QAFest
336 views92 slides
QA Fest 2019. Никита Галкин. Как зарабатывать больше by
QA Fest 2019. Никита Галкин. Как зарабатывать большеQA Fest 2019. Никита Галкин. Как зарабатывать больше
QA Fest 2019. Никита Галкин. Как зарабатывать большеQAFest
389 views40 slides
QA Fest 2019. Сергей Пирогов. Why everything is spoiled by
QA Fest 2019. Сергей Пирогов. Why everything is spoiledQA Fest 2019. Сергей Пирогов. Why everything is spoiled
QA Fest 2019. Сергей Пирогов. Why everything is spoiledQAFest
342 views33 slides

More from QAFest(20)

QA Fest 2019. Сергій Короленко. Топ веб вразливостей за 40 хвилин by QAFest
QA Fest 2019. Сергій Короленко. Топ веб вразливостей за 40 хвилинQA Fest 2019. Сергій Короленко. Топ веб вразливостей за 40 хвилин
QA Fest 2019. Сергій Короленко. Топ веб вразливостей за 40 хвилин
QAFest979 views
QA Fest 2019. Анна Чернышова. Self-healing test automation 2.0. The Future by QAFest
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
QAFest931 views
QA Fest 2019. Doug Sillars. It's just too Slow: Testing Mobile application pe... by QAFest
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...
QAFest322 views
QA Fest 2019. Катерина Спринсян. Параллельное покрытие автотестами и другие и... by QAFest
QA Fest 2019. Катерина Спринсян. Параллельное покрытие автотестами и другие и...QA Fest 2019. Катерина Спринсян. Параллельное покрытие автотестами и другие и...
QA Fest 2019. Катерина Спринсян. Параллельное покрытие автотестами и другие и...
QAFest336 views
QA Fest 2019. Никита Галкин. Как зарабатывать больше by QAFest
QA Fest 2019. Никита Галкин. Как зарабатывать большеQA Fest 2019. Никита Галкин. Как зарабатывать больше
QA Fest 2019. Никита Галкин. Как зарабатывать больше
QAFest389 views
QA Fest 2019. Сергей Пирогов. Why everything is spoiled by QAFest
QA Fest 2019. Сергей Пирогов. Why everything is spoiledQA Fest 2019. Сергей Пирогов. Why everything is spoiled
QA Fest 2019. Сергей Пирогов. Why everything is spoiled
QAFest342 views
QA Fest 2019. Сергей Новик. Между мотивацией и выгоранием by QAFest
QA Fest 2019. Сергей Новик. Между мотивацией и выгораниемQA Fest 2019. Сергей Новик. Между мотивацией и выгоранием
QA Fest 2019. Сергей Новик. Между мотивацией и выгоранием
QAFest249 views
QA Fest 2019. Владимир Никонов. Код Шредингера или зачем и как мы тестируем н... by QAFest
QA Fest 2019. Владимир Никонов. Код Шредингера или зачем и как мы тестируем н...QA Fest 2019. Владимир Никонов. Код Шредингера или зачем и как мы тестируем н...
QA Fest 2019. Владимир Никонов. Код Шредингера или зачем и как мы тестируем н...
QAFest338 views
QA Fest 2019. Владимир Трандафилов. GUI automation of WEB application with SV... by 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...
QAFest227 views
QA Fest 2019. Иван Крутов. Bulletproof Selenium Cluster by QAFest
QA Fest 2019. Иван Крутов. Bulletproof Selenium ClusterQA Fest 2019. Иван Крутов. Bulletproof Selenium Cluster
QA Fest 2019. Иван Крутов. Bulletproof Selenium Cluster
QAFest282 views
QA Fest 2019. Николай Мижигурский. Миссия /*не*/выполнима: гуманитарий собесе... by QAFest
QA Fest 2019. Николай Мижигурский. Миссия /*не*/выполнима: гуманитарий собесе...QA Fest 2019. Николай Мижигурский. Миссия /*не*/выполнима: гуманитарий собесе...
QA Fest 2019. Николай Мижигурский. Миссия /*не*/выполнима: гуманитарий собесе...
QAFest251 views
QA Fest 2019. Володимир Стиран. Чим раніше – тим вигідніше, але ніколи не піз... by QAFest
QA Fest 2019. Володимир Стиран. Чим раніше – тим вигідніше, але ніколи не піз...QA Fest 2019. Володимир Стиран. Чим раніше – тим вигідніше, але ніколи не піз...
QA Fest 2019. Володимир Стиран. Чим раніше – тим вигідніше, але ніколи не піз...
QAFest301 views
QA Fest 2019. Дмитрий Прокопук. Mocks and network tricks in UI automation by QAFest
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
QAFest225 views
QA Fest 2019. Екатерина Дядечко. Тестирование медицинского софта — вызовы и в... by QAFest
QA Fest 2019. Екатерина Дядечко. Тестирование медицинского софта — вызовы и в...QA Fest 2019. Екатерина Дядечко. Тестирование медицинского софта — вызовы и в...
QA Fest 2019. Екатерина Дядечко. Тестирование медицинского софта — вызовы и в...
QAFest243 views
QA Fest 2019. Катерина Черникова. Tune your P’s: the pop-art of keeping testa... by 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...
QAFest376 views
QA Fest 2019. Алиса Бойко. Какнезапутаться в коммуникативных сетях IT by QAFest
QA Fest 2019. Алиса Бойко. Какнезапутаться в коммуникативных сетях ITQA Fest 2019. Алиса Бойко. Какнезапутаться в коммуникативных сетях IT
QA Fest 2019. Алиса Бойко. Какнезапутаться в коммуникативных сетях IT
QAFest209 views
QA Fest 2019. Святослав Логин. Как найти уязвимости в мобильном приложении by QAFest
QA Fest 2019. Святослав Логин. Как найти уязвимости в мобильном приложенииQA Fest 2019. Святослав Логин. Как найти уязвимости в мобильном приложении
QA Fest 2019. Святослав Логин. Как найти уязвимости в мобильном приложении
QAFest607 views
QA Fest 2019. Катерина Шепелєва та Інна Оснач. Що українцям потрібно знати пр... by QAFest
QA Fest 2019. Катерина Шепелєва та Інна Оснач. Що українцям потрібно знати пр...QA Fest 2019. Катерина Шепелєва та Інна Оснач. Що українцям потрібно знати пр...
QA Fest 2019. Катерина Шепелєва та Інна Оснач. Що українцям потрібно знати пр...
QAFest321 views
QA Fest 2019. Антон Серпутько. Нагрузочное тестирование распределенных асинхр... by QAFest
QA Fest 2019. Антон Серпутько. Нагрузочное тестирование распределенных асинхр...QA Fest 2019. Антон Серпутько. Нагрузочное тестирование распределенных асинхр...
QA Fest 2019. Антон Серпутько. Нагрузочное тестирование распределенных асинхр...
QAFest296 views
QA Fest 2019. Петр Тарасенко. QA Hackathon - The Cookbook 22 by QAFest
QA Fest 2019. Петр Тарасенко. QA Hackathon - The Cookbook 22QA Fest 2019. Петр Тарасенко. QA Hackathon - The Cookbook 22
QA Fest 2019. Петр Тарасенко. QA Hackathon - The Cookbook 22
QAFest164 views

QA Fest 2017. Иван Пашко. Антипаттерны и запахи в автоматизации тестирования

Editor's Notes

  1. За почти 10 лет в ИТ, я участвовал в различных проектах на разных позициях. Организовывал процессы или занимался сугубо автоматизацией. Разрабатывал с нуля или оптимизировал существующее решение - вобщем было много различных процессов, решений, выборов. Хорошие практики - это хорошо, но также хорошие практики - это специфика, специфика конкретного применения в конкретной ситуации. Я же сегодня с вами хочу обсудить обратную сторону хороших практик - антипаттерны, или плохие практики.
  2. Начать: Все события и герои вымышлены. Любые совпадения с реальными личностями случайны. Не все истории случались со мной на проектах Много историй я почерпнул с историй на собеседованиях. Собеседования - как исповедь, зачастую жалуемся на то как плохо было и как хорошо кому-то не разрешали сделать. Я попытался организовать все идеи вместе, и чтобы поделится с ними сегодня с вами.
  3. Итак, начнем, поговорим об анти-паттернах. Не просто антипатернах - а больше о процессе автоматизации и ее применению
  4. Это анти-практики, подходы, которые приносят больше вреда чем пользы. Не значит что так делать неправильно и никогда-никогда не нужно Все зависит от ситуации. Зачастую это просто неверное применение хорошей практики. Пример - микроскопом гвозди забивать Не надо воспринимать презентацию как неоспоримую истину - больше как возможность взглянуть со стороны и подумать, ваше решение приносит вам больше вреди или пользы
  5. Возникает все от из 3х направлений. Отсутствие желания, отсутствие знания или отсутствие времени. Или амбиции С третим пунктом возможно я и помогу сегодня- остальные - точно лягут на ваши плечи
  6. изоляция автоматизации от процессов (разработки или тестирования.) Это пункт №1 - из услышанного на собеседованиях. Каждый второй рассказывал подобную историю: Берем тесткейзы и автоматизируем. А дальше? А дальше они автоматизированы, берем следующие :) Отсутствие коммуникации между командами Какой профит от такой автоматизации? Забываем - Цель любого действия - польза. Изоляция не приносит пользы Что делать? Если у вас есть отдел мануальніх тестировщиков, или отдельній стенд с тест-кейзами, или сценариями - обязательно линкуйте автоматизацию к ним А еще лучше - синхронизируйте. Это очень актуально, если у вас распределенные команды.
  7. ИСТОРИЯ: “Как проходит жизненный цикл разработки ваших тестов? Вы получаете задачу на тест, выполняете его, вводите в консоли пару команд (или пару хот-клеев), после чего сборка запуска поётся на удаленном сервере, прогоняются все тесты, вам на почту приходит отчёт о результатах, ещё пара команд и pull request на ревью уже у вашего коллеги и задача готова идти в мастер, мануальный тесткецзы в ТМжм системе помечаются пройденными. Если не так, у вас есть отличная возможность заняться автоматизацией :) ведь этилен только написание тестов, помните, это инструмент ЧТО ОБЫЧНО ЕСТЬ (ТОЧНЕЕ ЧЕГО НЕТ) Наличие мануальной поддержки процесса автоматизации: Ручной запуск тестов Отсутствие нотификации о состоянии (надо самому смотреть) Авто сборка-апдейт енвайромента Отсутствие синхронизации с тест-кейзами (если есть такие) Генерация данных
  8. Автоматизация это инструмент QA. Создание сценария - часть процесса, (мануальная часть!) Автоматизация не отвечает за качество, покрытие (для этого етсь тест-стратегии\тест-планы) Тестирование это процесс - и автоматизация его составляющая. https://automationrocks.wordpress.com/2015/02/04/automation-anti-patterns-myths-exposed/
  9. Вот он как-раз возникает из-за 4 пункта - амбиций. Мы инженеры - для нас решение задачи - это наркотик, и всегда хочется больше. Когда это больше идёт во вред - оно становиться антипаттерном
  10. Подружите автоматизацию и тестирование!
  11. Плавно переходим от процессуальных штук к более близким нам - а именно кодингу.
  12. Это анти-практики, подходы, которые приносят больше вреда чем пользы. Это не значит что так делать неправильно и никогда-никогда не нужно - все зависит от ситуации. Неверное или ненужное применение хорошей практики делает ее плохой. Отличается от код-смелл. В первую очередь тест это тест, а уже потом -код
  13. Automated tests should serve at least two purposes. First, they should act as documentation of how the system under test (SUT) should behave Перекладываем ответственность на инициализацию Нет читаемости Тяжело мейнтейнить
  14. А начнем мы с самой базовой - это дубликаты. Дубликация кода - надо выносить в методы Дубликация тестового сценария
  15. Если так нравится писать комментарии - используйте лучше BDD
  16. Если так нравится писать комментарии - используйте лучше BDD
  17. А начнем мы с самой базовой - это дубликаты. Дубликация кода - надо выносить в методы Дубликация тестового сценария
  18. Shared changeable fixture Not isolated local fixtures Один тест меняет данные - нельзя ранить параллельно. Когда в тесте (в тестовой фикстуре) описано больше чем в самом тесте. Там все запутано, непонятно. Код создания - функциональный (вызываются методы), а не сетит состояние Сложная логика создания
  19. Поговорим о ассертах. Часті вопрос - сколько может біть ассертов - и вроде как для автоматизации(не юнит тестов) более одного аасерта уже не считается плохой практикой Это да, но есть нюанс Неплохой пример плохих тестов https://www.techwell.com/techwell-insights/2015/09/test-design-automation-anti-patterns Silent assert http://nomoretesting.com/2016/05/23/anti-patterns/
  20. Over-Checking: Checks not relevant for the scope. Since test designers often follow an approach of steps with an expected result for each step, tests do many checks that do not fit the scope of such tests. Such checks are unnecessary and probably over-lapping similar checks elsewhere. They then clutter up result statistics (e.g. they create too many “passes”), and aggravate the impact of changes in the application under test. Sneaky Checking: Checks hidden in actions. Even though it is good to have business level actions that hide unneeded details for many of the tests, try to avoid hiding too much. In particular, checks should be explicit and visible in the main test (the test modules), at the appropriate level of detail. An outsider should be able to understand what is being tested by just looking at the test module, without a need to inspect how actions are implemented.
  21. Как ві думаете, какой тест прошел? Нашел ли гугл мне информацию по QAFest? Неплохой пример плохих тестов https://www.techwell.com/techwell-insights/2015/09/test-design-automation-anti-patterns Silent assert http://nomoretesting.com/2016/05/23/anti-patterns/
  22. Читабельный Надежный в эксплуатации \ поддержке Пригодный и удобный в использовании Гибкий