SlideShare a Scribd company logo
1 of 65
Think like a tester,
act like an engineer
@timlidos
Facebook:
Telegram:
Think like a tester,
act like an engineer
@timlidos
1. Make sure the product works
https://playground.learnqa.ru/puzzle/triangle
https://playground.learnqa.ru/puzzle/triangle
https://playground.learnqa.ru/puzzle/triangle
https://playground.learnqa.ru/puzzle/triangle
1. [0; 0; 0]
https://playground.learnqa.ru/puzzle/triangle
1. [0; 0; 0]
2. [-3; -3; -3]
https://playground.learnqa.ru/puzzle/triangle
1. [0; 0; 0]
2. [-3; -3; -3]
3. abcdef (any string)
https://playground.learnqa.ru/puzzle/triangle
1. [0; 0; 0]
2. [-3; -3; -3]
3. abcdef (any string)
4. etc.
1. Make sure the product works
1. Make sure the product works
2. Understand your customer
https://imbashop.com
https://imbashop.com
1. Registration
2. Authorization
3. Search
4. Payments
5. Delivery
6. etc.
https://imbashop.com
1. Registration
2. Authorization
3. Search
4. Payments
5. Delivery
6. etc.
https://imbashop.com
1. Registration
2. Authorization
3. Search
4. Payments
5. Delivery
6. etc.
https://imbashop.com
1. Registration
2. Authorization
3. Search
4. Payments
5. Delivery
6. etc.
https://imbashop.com
1. Registration
2. Authorization
3. Search
4. Payments
5. Delivery
6. etc.
https://imbashop.com
1. Registration
2. Authorization
3. Search
4. Payments
5. Delivery
6. etc.
https://imbashop.com
1. Registration
2. Authorization
3. Search
4. Payments
5. Delivery
6. etc.
The customer does not buy a punch.
Customer buys a hole in the wall.
1. Make sure the product works
2. Understand your customer
1. Make sure the product works
2. Understand your customer
3. Understand your product
Manual testing
Selenium IDE
Selenium WebDriver
Java
Manual testing
Selenium IDE
Selenium WebDriver
Java
Manual testing
Selenium IDE
Selenium WebDriver
Java
Manual testing
Selenium IDE
Selenium WebDriver
Java
Создать программу, которая выведет на экран
ближайшее к 10 из двух чисел.
Например, среди чисел 8 и 6 - ближайшее к
десяти 8.
int a = 8;
int b = 6;
int ten = 10;
int diffOne = ten - a;
int diffTwo = ten - b;
if (diffOne < diffTwo) {
System.out.println("Ближайшее число к 10: " + a);
}
else {
System.out.println("Ближайшее число к 10: " + b);
}
int a = 8;
int b = 6;
int ten = 10;
int diffOne = ten - a;
int diffTwo = ten - b;
if (diffOne < diffTwo) {
System.out.println("Ближайшее число к 10: " + a);
}
else {
System.out.println("Ближайшее число к 10: " + b);
}
BUILD SUCCESSFUL
Ближайшее число к 10: 8
int a = 8;
int b = 6;
int ten = 10;
int diffOne = ten - a;
int diffTwo = ten - b;
if (diffOne < diffTwo) {
System.out.println("Ближайшее число к 10: " + a);
}
else {
System.out.println("Ближайшее число к 10: " + b);
}
BUILD SUCCESSFUL
Ближайшее число к 10: 8
int a = 8;
int b = 6;
int ten = 10;
int diffOne = ten - a; // 2
int diffTwo = ten - b; // 4
if (diffOne < diffTwo) {
System.out.println("Ближайшее число к 10: " + a);
}
else {
System.out.println("Ближайшее число к 10: " + b);
}
BUILD SUCCESSFUL
Ближайшее число к 10: 8
int a = 11;
int b = 29;
int ten = 10;
int diffOne = ten - a; // -1
int diffTwo = ten - b; // -19
if (diffOne < diffTwo) {
System.out.println("Ближайшее число к 10: " + a);
}
else {
System.out.println("Ближайшее число к 10: " + b);
}
int a = 11;
int b = 29;
int ten = 10;
int diffOne = ten - a; // -1
int diffTwo = ten - b; // -19
if (diffOne < diffTwo) {
System.out.println("Ближайшее число к 10: " + a);
}
else {
System.out.println("Ближайшее число к 10: " + b);
}
BUILD SUCCESSFUL
Ближайшее число к 10: 29
int a = 11;
int b = 29;
int ten = 10;
int diffOne = Math.abs(ten – a); // 1
int diffTwo = Math.abs(ten – b); // 19
if (diffOne < diffTwo) {
System.out.println("Ближайшее число к 10: " + a);
}
else {
System.out.println("Ближайшее число к 10: " + b);
}
int a = 11;
int b = 29;
int ten = 10;
int diffOne = Math.abs(ten – a); // 1
int diffTwo = Math.abs(ten – b); // 19
if (diffOne < diffTwo) {
System.out.println("Ближайшее число к 10: " + a);
}
else {
System.out.println("Ближайшее число к 10: " + b);
}
BUILD SUCCESSFUL
Ближайшее число к 10: 11
int a = 14;
int b = 14;
int ten = 10;
int diffOne = Math.abs(ten – a); // 4
int diffTwo = Math.abs(ten – b); // 4
if (diffOne < diffTwo) {
System.out.println("Ближайшее число к 10: " + a);
}
else {
System.out.println("Ближайшее число к 10: " + b);
}
int a = 14;
int b = 14;
int ten = 10;
int diffOne = Math.abs(ten – a); // 4
int diffTwo = Math.abs(ten – b); // 4
if (diffOne < diffTwo) {
System.out.println("Ближайшее число к 10 – число а,
равное: " + a);
}
else {
System.out.println("Ближайшее число к 10 – число b,
равное: " + b);
}
int a = 14;
int b = 14;
int ten = 10;
int diffOne = Math.abs(ten – a); // 4
int diffTwo = Math.abs(ten – b); // 4
if (diffOne < diffTwo) {
System.out.println("Ближайшее число к 10 – число а,
равное: " + a);
}
else {
System.out.println("Ближайшее число к 10 – число b,
равное: " + b);
}
BUILD SUCCESSFUL
Ближайшее число к 10 – число b, равное: 14
int a = 14;
int b = 14;
int ten = 10;
int diffOne = Math.abs(ten – a); // 4
int diffTwo = Math.abs(ten – b); // 4
if (a == b) {
System.out.println(“Числа находятся на равном расстоянии от ”
+ ten);
}
else if (diffOne < diffTwo) {
System.out.println("Ближайшее число к 10 – число а,
равное: " + a);
}
else {
System.out.println("Ближайшее число к 10 – число b,
равное: " + b);
}
int a = 14;
int b = 14;
int ten = 10;
int diffOne = Math.abs(ten – a); // 4
int diffTwo = Math.abs(ten – b); // 4
if (a == b) {
System.out.println(“Числа находятся на равном расстоянии от ”
+ ten);
}
else if (diffOne < diffTwo) {
System.out.println("Ближайшее число к 10 – число а,
равное: " + a);
}
else {
System.out.println("Ближайшее число к 10 – число b,
равное: " + b);
}
BUILD SUCCESSFUL
Числа находятся на равном расстоянии от 10
int a = 12;
int b = 8;
int ten = 10;
int diffOne = Math.abs(ten – a); // 2
int diffTwo = Math.abs(ten – b); // 2
if (a == b) {
System.out.println(“Числа находятся на равном расстоянии от ”
+ ten);
}
else if (diffOne < diffTwo) {
System.out.println("Ближайшее число к 10 – число а,
равное: " + a);
}
else {
System.out.println("Ближайшее число к 10 – число b,
равное: " + b);
}
int a = 12;
int b = 8;
int ten = 10;
int diffOne = Math.abs(ten – a); // 2
int diffTwo = Math.abs(ten – b); // 2
if (a == b) { // Это условие не выполнится, т.к. числа не равны
System.out.println(“Числа находятся на равном расстоянии от ”
+ ten);
}
else if (diffOne < diffTwo) {
System.out.println("Ближайшее число к 10 – число а,
равное: " + a);
}
else {
System.out.println("Ближайшее число к 10 – число b,
равное: " + b);
}
int a = 12;
int b = 8;
int ten = 10;
int diffOne = Math.abs(ten – a); // 2
int diffTwo = Math.abs(ten – b); // 2
if (a == b) { // Это условие не выполнится, т.к. числа не равны
System.out.println(“Числа находятся на равном расстоянии от ”
+ ten);
}
else if (diffOne < diffTwo) {
System.out.println("Ближайшее число к 10 – число а,
равное: " + a);
}
else {
System.out.println("Ближайшее число к 10 – число b,
равное: " + b);
}
BUILD SUCCESSFUL
Ближайшее число к 10 – число b, равное: 8
int a = 12;
int b = 8;
int ten = 10;
int diffOne = Math.abs(ten – a); // 2
int diffTwo = Math.abs(ten – b); // 2
if (diffOne == diffTwo) {
System.out.println(“Числа находятся на равном расстоянии от ”
+ ten);
}
else if (diffOne < diffTwo) {
System.out.println("Ближайшее число к 10 – число а,
равное: " + a);
}
else {
System.out.println("Ближайшее число к 10 – число b,
равное: " + b);
}
int a = 12;
int b = 8;
int ten = 10;
int diffOne = Math.abs(ten – a); // 2
int diffTwo = Math.abs(ten – b); // 2
if (diffOne == diffTwo) {
System.out.println(“Числа находятся на равном расстоянии от ”
+ ten);
}
else if (diffOne < diffTwo) {
System.out.println("Ближайшее число к 10 – число а,
равное: " + a);
}
else {
System.out.println("Ближайшее число к 10 – число b,
равное: " + b);
}
BUILD SUCCESSFUL
Числа находятся на равном расстоянии от 10
int a = 2147483648;
int a = 2147483648;
int b = -2147483649;
int a = 2147483648;
int b = -2147483649;
Error:(3, 17) java: integer number too large: 2147483648
Error:(4, 18) java: integer number too large: -2147483649
BigInteger a = BigInteger.valueOf(2147483647);
BigInteger b = BigInteger.valueOf(-2147483648);
int ten = 10;
BigInteger diffOne = a.subtract(BigInteger.valueOf(ten));
BigInteger diffTwo = b.subtract(BigInteger.valueOf(ten));
int a = 12;
int b = 8;
int ten = 10;
int diffOne = Math.abs(ten – a); // 2
int diffTwo = Math.abs(ten – b); // 2
if (diffOne == diffTwo) {
System.out.println(“Числа находятся на равном расстоянии от ”
+ ten);
}
else if (diffOne < diffTwo) {
System.out.println("Ближайшее число к 10 – число а,
равное: " + a);
}
else {
System.out.println("Ближайшее число к 10 – число b,
равное: " + b);
}
BUILD SUCCESSFUL
Числа находятся на равном расстоянии от 10
double a = 12.0;
double b = 8.0;
double ten = 10.0;
double diffOne = Math.abs(ten – a); // 2
double diffTwo = Math.abs(ten – b); // 2
if (diffOne == diffTwo) {
System.out.println(“Числа находятся на равном расстоянии от ”
+ ten);
}
else if (diffOne < diffTwo) {
System.out.println("Ближайшее число к 10 – число а,
равное: " + a);
}
else {
System.out.println("Ближайшее число к 10 – число b,
равное: " + b);
}
double a = 0.1;
double b = 0.2;
double sum = a + b;
System.out.println(“Сумма 0.1 и 0.2 равна: “ + sum);
double a = 0.1;
double b = 0.2;
double sum = a + b;
System.out.println(“Сумма 0.1 и 0.2 равна: “ + sum);
BUILD SUCCESSFUL
Сумма 0.1 и 0.2 равна: 0.30000000000000004
https://0.30000000000000004.com
2e+4
16F3
any string
1,234.567
null, Infinity, true, false
etc.
Неосознанная
Некомпетентность
Неосознанная
Компетентность
Осознанная
Некомпетентность
Осознанная
Компетентность
Неосознанная
Некомпетентность
Неосознанная
Компетентность
Осознанная
Некомпетентность
Осознанная
Компетентность
Неосознанная
Некомпетентность
Неосознанная
Компетентность
Осознанная
Некомпетентность
Осознанная
Компетентность
Неосознанная
Некомпетентность
Неосознанная
Компетентность
Осознанная
Некомпетентность
Осознанная
Компетентность
Thanks for attention!
Contacts:
Telegram: @timlidos
Skype: john.klymenko

More Related Content

Similar to ЄВГЕН КЛИМЕНКО «Think like a tester, act like an engineer» Lviv QA Day 2019

Rust: абстракции и безопасность, совершенно бесплатно
Rust: абстракции и безопасность, совершенно бесплатноRust: абстракции и безопасность, совершенно бесплатно
Rust: абстракции и безопасность, совершенно бесплатноOpen-IT
 
Используем неизменяемые данные и создаем качественный код — Игорь Кудрин, 2ГИС
Используем неизменяемые данные и создаем качественный код — Игорь Кудрин, 2ГИСИспользуем неизменяемые данные и создаем качественный код — Игорь Кудрин, 2ГИС
Используем неизменяемые данные и создаем качественный код — Игорь Кудрин, 2ГИС2ГИС Технологии
 
«Используем неизменяемые данные и создаем качественный код», Игорь Кудрин
«Используем неизменяемые данные и создаем качественный код», Игорь Кудрин«Используем неизменяемые данные и создаем качественный код», Игорь Кудрин
«Используем неизменяемые данные и создаем качественный код», Игорь КудринDevDay
 
Статический и динамический полиморфизм в C++, Дмитрий Леванов
Статический и динамический полиморфизм в C++, Дмитрий ЛевановСтатический и динамический полиморфизм в C++, Дмитрий Леванов
Статический и динамический полиморфизм в C++, Дмитрий ЛевановYandex
 
Swift + Kotlin = ❤, Станислав Таланов и Сергей Моляк. 8 июня, 2019
Swift + Kotlin = ❤, Станислав Таланов и Сергей Моляк. 8 июня, 2019Swift + Kotlin = ❤, Станислав Таланов и Сергей Моляк. 8 июня, 2019
Swift + Kotlin = ❤, Станислав Таланов и Сергей Моляк. 8 июня, 2019Mail.ru Group
 
The Epic Groovy Puzzlers S02: The Revenge of the Parentheses
The Epic Groovy Puzzlers S02: The Revenge of the ParenthesesThe Epic Groovy Puzzlers S02: The Revenge of the Parentheses
The Epic Groovy Puzzlers S02: The Revenge of the ParenthesesJavaDayUA
 
Лекция 8. Intel Threading Building Blocks
Лекция 8. Intel Threading Building BlocksЛекция 8. Intel Threading Building Blocks
Лекция 8. Intel Threading Building BlocksMikhail Kurnosov
 
Sergii Tsypanov "Performance 1001 Tips"
Sergii Tsypanov "Performance 1001 Tips"Sergii Tsypanov "Performance 1001 Tips"
Sergii Tsypanov "Performance 1001 Tips"LogeekNightUkraine
 
презентации продолжение банкета
презентации продолжение банкетапрезентации продолжение банкета
презентации продолжение банкетаstudent_kai
 
Статический и динамический полиморфизм в C++, Дмитрий Леванов
Статический и динамический полиморфизм в C++, Дмитрий ЛевановСтатический и динамический полиморфизм в C++, Дмитрий Леванов
Статический и динамический полиморфизм в C++, Дмитрий ЛевановYandex
 
5.1 Перегрузка операторов
5.1 Перегрузка операторов5.1 Перегрузка операторов
5.1 Перегрузка операторовDEVTYPE
 
основы Java переменные, циклы
основы Java   переменные, циклыосновы Java   переменные, циклы
основы Java переменные, циклыSergey Nemchinsky
 
Презентация на тему: Информатика и ИКТ. ЕГЭ 2012
Презентация на тему: Информатика и ИКТ. ЕГЭ 2012Презентация на тему: Информатика и ИКТ. ЕГЭ 2012
Презентация на тему: Информатика и ИКТ. ЕГЭ 20122berkas
 
Акторы на C++: стоило ли оно того?
Акторы на C++: стоило ли оно того?Акторы на C++: стоило ли оно того?
Акторы на C++: стоило ли оно того?Yauheni Akhotnikau
 
Сложности микробенчмаркинга
Сложности микробенчмаркингаСложности микробенчмаркинга
Сложности микробенчмаркингаAndrey Akinshin
 
Ecma script 6 yevhen diachenko
Ecma script 6 yevhen diachenkoEcma script 6 yevhen diachenko
Ecma script 6 yevhen diachenkoDenis Khabrenko
 
ПВТ - весна 2015 - Лекция 5. Многопоточное программирование в С++. Синхрониза...
ПВТ - весна 2015 - Лекция 5. Многопоточное программирование в С++. Синхрониза...ПВТ - весна 2015 - Лекция 5. Многопоточное программирование в С++. Синхрониза...
ПВТ - весна 2015 - Лекция 5. Многопоточное программирование в С++. Синхрониза...Alexey Paznikov
 

Similar to ЄВГЕН КЛИМЕНКО «Think like a tester, act like an engineer» Lviv QA Day 2019 (20)

Rust: абстракции и безопасность, совершенно бесплатно
Rust: абстракции и безопасность, совершенно бесплатноRust: абстракции и безопасность, совершенно бесплатно
Rust: абстракции и безопасность, совершенно бесплатно
 
Используем неизменяемые данные и создаем качественный код — Игорь Кудрин, 2ГИС
Используем неизменяемые данные и создаем качественный код — Игорь Кудрин, 2ГИСИспользуем неизменяемые данные и создаем качественный код — Игорь Кудрин, 2ГИС
Используем неизменяемые данные и создаем качественный код — Игорь Кудрин, 2ГИС
 
«Используем неизменяемые данные и создаем качественный код», Игорь Кудрин
«Используем неизменяемые данные и создаем качественный код», Игорь Кудрин«Используем неизменяемые данные и создаем качественный код», Игорь Кудрин
«Используем неизменяемые данные и создаем качественный код», Игорь Кудрин
 
Статический и динамический полиморфизм в C++, Дмитрий Леванов
Статический и динамический полиморфизм в C++, Дмитрий ЛевановСтатический и динамический полиморфизм в C++, Дмитрий Леванов
Статический и динамический полиморфизм в C++, Дмитрий Леванов
 
Swift + Kotlin = ❤, Станислав Таланов и Сергей Моляк. 8 июня, 2019
Swift + Kotlin = ❤, Станислав Таланов и Сергей Моляк. 8 июня, 2019Swift + Kotlin = ❤, Станислав Таланов и Сергей Моляк. 8 июня, 2019
Swift + Kotlin = ❤, Станислав Таланов и Сергей Моляк. 8 июня, 2019
 
The Epic Groovy Puzzlers S02: The Revenge of the Parentheses
The Epic Groovy Puzzlers S02: The Revenge of the ParenthesesThe Epic Groovy Puzzlers S02: The Revenge of the Parentheses
The Epic Groovy Puzzlers S02: The Revenge of the Parentheses
 
Лекция 8. Intel Threading Building Blocks
Лекция 8. Intel Threading Building BlocksЛекция 8. Intel Threading Building Blocks
Лекция 8. Intel Threading Building Blocks
 
Sergii Tsypanov "Performance 1001 Tips"
Sergii Tsypanov "Performance 1001 Tips"Sergii Tsypanov "Performance 1001 Tips"
Sergii Tsypanov "Performance 1001 Tips"
 
презентации продолжение банкета
презентации продолжение банкетапрезентации продолжение банкета
презентации продолжение банкета
 
Step cpp022
Step cpp022Step cpp022
Step cpp022
 
Статический и динамический полиморфизм в C++, Дмитрий Леванов
Статический и динамический полиморфизм в C++, Дмитрий ЛевановСтатический и динамический полиморфизм в C++, Дмитрий Леванов
Статический и динамический полиморфизм в C++, Дмитрий Леванов
 
5.1 Перегрузка операторов
5.1 Перегрузка операторов5.1 Перегрузка операторов
5.1 Перегрузка операторов
 
основы Java переменные, циклы
основы Java   переменные, циклыосновы Java   переменные, циклы
основы Java переменные, циклы
 
Презентация на тему: Информатика и ИКТ. ЕГЭ 2012
Презентация на тему: Информатика и ИКТ. ЕГЭ 2012Презентация на тему: Информатика и ИКТ. ЕГЭ 2012
Презентация на тему: Информатика и ИКТ. ЕГЭ 2012
 
Акторы на C++: стоило ли оно того?
Акторы на C++: стоило ли оно того?Акторы на C++: стоило ли оно того?
Акторы на C++: стоило ли оно того?
 
Сложности микробенчмаркинга
Сложности микробенчмаркингаСложности микробенчмаркинга
Сложности микробенчмаркинга
 
Operators
OperatorsOperators
Operators
 
Ecma script 6 yevhen diachenko
Ecma script 6 yevhen diachenkoEcma script 6 yevhen diachenko
Ecma script 6 yevhen diachenko
 
ПВТ - весна 2015 - Лекция 5. Многопоточное программирование в С++. Синхрониза...
ПВТ - весна 2015 - Лекция 5. Многопоточное программирование в С++. Синхрониза...ПВТ - весна 2015 - Лекция 5. Многопоточное программирование в С++. Синхрониза...
ПВТ - весна 2015 - Лекция 5. Многопоточное программирование в С++. Синхрониза...
 
лекция 1
лекция 1лекция 1
лекция 1
 

More from GoQA

Досвід здачі іспиту ISTQB Expert level: подробиці, перепідготовка, актуальніс...
Досвід здачі іспиту ISTQB Expert level: подробиці, перепідготовка, актуальніс...Досвід здачі іспиту ISTQB Expert level: подробиці, перепідготовка, актуальніс...
Досвід здачі іспиту ISTQB Expert level: подробиці, перепідготовка, актуальніс...GoQA
 
АРТЕМ ГРИГОРЕНКО «Покращення процесів найму»
АРТЕМ ГРИГОРЕНКО «Покращення процесів найму»АРТЕМ ГРИГОРЕНКО «Покращення процесів найму»
АРТЕМ ГРИГОРЕНКО «Покращення процесів найму»GoQA
 
КАТЕРИНА ЖУПАН «Mobile Testing based on “ISTQB Mobile Application – Syllabus»
КАТЕРИНА ЖУПАН «Mobile Testing based on “ISTQB Mobile Application – Syllabus»КАТЕРИНА ЖУПАН «Mobile Testing based on “ISTQB Mobile Application – Syllabus»
КАТЕРИНА ЖУПАН «Mobile Testing based on “ISTQB Mobile Application – Syllabus»GoQA
 
МОРРІС-ВСЕСЛАВ ШОСТАК «Роль QA в індустрії програмного та апаратного забезпеч...
МОРРІС-ВСЕСЛАВ ШОСТАК «Роль QA в індустрії програмного та апаратного забезпеч...МОРРІС-ВСЕСЛАВ ШОСТАК «Роль QA в індустрії програмного та апаратного забезпеч...
МОРРІС-ВСЕСЛАВ ШОСТАК «Роль QA в індустрії програмного та апаратного забезпеч...GoQA
 
ОКСАНА ГОРОЩУК «Improving Quality Through Root Cause Analysis»
ОКСАНА ГОРОЩУК «Improving Quality Through Root Cause Analysis»ОКСАНА ГОРОЩУК «Improving Quality Through Root Cause Analysis»
ОКСАНА ГОРОЩУК «Improving Quality Through Root Cause Analysis»GoQA
 
ПАВЛО САФОНОВ «Як оцінити ефективність автоматизації»
ПАВЛО САФОНОВ «Як оцінити ефективність автоматизації»ПАВЛО САФОНОВ «Як оцінити ефективність автоматизації»
ПАВЛО САФОНОВ «Як оцінити ефективність автоматизації»GoQA
 
ГАННА КІЛІМОВА & СВІТЛАНА ЯКОВЛЄВА «ADA testing – те, що дуже на часі»
ГАННА КІЛІМОВА & СВІТЛАНА ЯКОВЛЄВА «ADA testing – те, що дуже на часі»ГАННА КІЛІМОВА & СВІТЛАНА ЯКОВЛЄВА «ADA testing – те, що дуже на часі»
ГАННА КІЛІМОВА & СВІТЛАНА ЯКОВЛЄВА «ADA testing – те, що дуже на часі»GoQA
 
СЕРГІЙ БРИТ «Як запускати тести з Playwright Java написані на Selenide. Не пе...
СЕРГІЙ БРИТ «Як запускати тести з Playwright Java написані на Selenide. Не пе...СЕРГІЙ БРИТ «Як запускати тести з Playwright Java написані на Selenide. Не пе...
СЕРГІЙ БРИТ «Як запускати тести з Playwright Java написані на Selenide. Не пе...GoQA
 
БОГДАН САВЧУК «IoT testing: Manual, Automation and Cyber Security techniques»
БОГДАН САВЧУК «IoT testing: Manual, Automation and Cyber Security techniques»БОГДАН САВЧУК «IoT testing: Manual, Automation and Cyber Security techniques»
БОГДАН САВЧУК «IoT testing: Manual, Automation and Cyber Security techniques»GoQA
 
ЕЛЬМІР ІСКАНДЕРОВ «Bulletproof Your Software: The Magic of Security Autotests»
ЕЛЬМІР ІСКАНДЕРОВ «Bulletproof Your Software: The Magic of Security Autotests»ЕЛЬМІР ІСКАНДЕРОВ «Bulletproof Your Software: The Magic of Security Autotests»
ЕЛЬМІР ІСКАНДЕРОВ «Bulletproof Your Software: The Magic of Security Autotests»GoQA
 
ІННА ДВОЙНІКОВА «Як вийти на Upwork та розширити горизонти QA»
ІННА ДВОЙНІКОВА «Як вийти на Upwork та розширити горизонти QA»ІННА ДВОЙНІКОВА «Як вийти на Upwork та розширити горизонти QA»
ІННА ДВОЙНІКОВА «Як вийти на Upwork та розширити горизонти QA»GoQA
 
КАТЕРИНА АБЗЯТОВА «Point of Growth: Transforming Challenges into Skill-Buildi...
КАТЕРИНА АБЗЯТОВА «Point of Growth: Transforming Challenges into Skill-Buildi...КАТЕРИНА АБЗЯТОВА «Point of Growth: Transforming Challenges into Skill-Buildi...
КАТЕРИНА АБЗЯТОВА «Point of Growth: Transforming Challenges into Skill-Buildi...GoQA
 
НАТАЛІЯ ТРОЙНІЧ «Редизайн всього продукту, коли на проекті залишилось два ман...
НАТАЛІЯ ТРОЙНІЧ «Редизайн всього продукту, коли на проекті залишилось два ман...НАТАЛІЯ ТРОЙНІЧ «Редизайн всього продукту, коли на проекті залишилось два ман...
НАТАЛІЯ ТРОЙНІЧ «Редизайн всього продукту, коли на проекті залишилось два ман...GoQA
 
РІНА УЖЕВКО «Вплив архітектури на стратегію тестування»
РІНА УЖЕВКО «Вплив архітектури на стратегію тестування»РІНА УЖЕВКО «Вплив архітектури на стратегію тестування»
РІНА УЖЕВКО «Вплив архітектури на стратегію тестування»GoQA
 
СЕРГІЙ РУСІНЧУК «Розкриття майстерності QA команд через KPI»
СЕРГІЙ РУСІНЧУК «Розкриття майстерності QA команд через KPI»СЕРГІЙ РУСІНЧУК «Розкриття майстерності QA команд через KPI»
СЕРГІЙ РУСІНЧУК «Розкриття майстерності QA команд через KPI»GoQA
 
КАТЕРИНА АБЗЯТОВА - Certify with confidence: ISTQB Foundation 4.0. Common err...
КАТЕРИНА АБЗЯТОВА - Certify with confidence: ISTQB Foundation 4.0. Common err...КАТЕРИНА АБЗЯТОВА - Certify with confidence: ISTQB Foundation 4.0. Common err...
КАТЕРИНА АБЗЯТОВА - Certify with confidence: ISTQB Foundation 4.0. Common err...GoQA
 
Слуцька Вікторія - Виступити і не наступити на граблі: Як виступати QA спеціа...
Слуцька Вікторія - Виступити і не наступити на граблі: Як виступати QA спеціа...Слуцька Вікторія - Виступити і не наступити на граблі: Як виступати QA спеціа...
Слуцька Вікторія - Виступити і не наступити на граблі: Як виступати QA спеціа...GoQA
 
ОЛЕКСАНДР ХОТЕМСЬКИЙ «Планування стратегії розвитку тестування на проекті»
ОЛЕКСАНДР ХОТЕМСЬКИЙ «Планування стратегії розвитку тестування на проекті»ОЛЕКСАНДР ХОТЕМСЬКИЙ «Планування стратегії розвитку тестування на проекті»
ОЛЕКСАНДР ХОТЕМСЬКИЙ «Планування стратегії розвитку тестування на проекті»GoQA
 
ОЛЕКСІЙ ОСТАПОВ «Створення плагінів для pytest»
ОЛЕКСІЙ ОСТАПОВ «Створення плагінів для pytest»ОЛЕКСІЙ ОСТАПОВ «Створення плагінів для pytest»
ОЛЕКСІЙ ОСТАПОВ «Створення плагінів для pytest»GoQA
 
РОМАН ДУМАНСЬКИЙ «Testing the application in the Amazon Cloud»
РОМАН ДУМАНСЬКИЙ «Testing the application in the Amazon Cloud»РОМАН ДУМАНСЬКИЙ «Testing the application in the Amazon Cloud»
РОМАН ДУМАНСЬКИЙ «Testing the application in the Amazon Cloud»GoQA
 

More from GoQA (20)

Досвід здачі іспиту ISTQB Expert level: подробиці, перепідготовка, актуальніс...
Досвід здачі іспиту ISTQB Expert level: подробиці, перепідготовка, актуальніс...Досвід здачі іспиту ISTQB Expert level: подробиці, перепідготовка, актуальніс...
Досвід здачі іспиту ISTQB Expert level: подробиці, перепідготовка, актуальніс...
 
АРТЕМ ГРИГОРЕНКО «Покращення процесів найму»
АРТЕМ ГРИГОРЕНКО «Покращення процесів найму»АРТЕМ ГРИГОРЕНКО «Покращення процесів найму»
АРТЕМ ГРИГОРЕНКО «Покращення процесів найму»
 
КАТЕРИНА ЖУПАН «Mobile Testing based on “ISTQB Mobile Application – Syllabus»
КАТЕРИНА ЖУПАН «Mobile Testing based on “ISTQB Mobile Application – Syllabus»КАТЕРИНА ЖУПАН «Mobile Testing based on “ISTQB Mobile Application – Syllabus»
КАТЕРИНА ЖУПАН «Mobile Testing based on “ISTQB Mobile Application – Syllabus»
 
МОРРІС-ВСЕСЛАВ ШОСТАК «Роль QA в індустрії програмного та апаратного забезпеч...
МОРРІС-ВСЕСЛАВ ШОСТАК «Роль QA в індустрії програмного та апаратного забезпеч...МОРРІС-ВСЕСЛАВ ШОСТАК «Роль QA в індустрії програмного та апаратного забезпеч...
МОРРІС-ВСЕСЛАВ ШОСТАК «Роль QA в індустрії програмного та апаратного забезпеч...
 
ОКСАНА ГОРОЩУК «Improving Quality Through Root Cause Analysis»
ОКСАНА ГОРОЩУК «Improving Quality Through Root Cause Analysis»ОКСАНА ГОРОЩУК «Improving Quality Through Root Cause Analysis»
ОКСАНА ГОРОЩУК «Improving Quality Through Root Cause Analysis»
 
ПАВЛО САФОНОВ «Як оцінити ефективність автоматизації»
ПАВЛО САФОНОВ «Як оцінити ефективність автоматизації»ПАВЛО САФОНОВ «Як оцінити ефективність автоматизації»
ПАВЛО САФОНОВ «Як оцінити ефективність автоматизації»
 
ГАННА КІЛІМОВА & СВІТЛАНА ЯКОВЛЄВА «ADA testing – те, що дуже на часі»
ГАННА КІЛІМОВА & СВІТЛАНА ЯКОВЛЄВА «ADA testing – те, що дуже на часі»ГАННА КІЛІМОВА & СВІТЛАНА ЯКОВЛЄВА «ADA testing – те, що дуже на часі»
ГАННА КІЛІМОВА & СВІТЛАНА ЯКОВЛЄВА «ADA testing – те, що дуже на часі»
 
СЕРГІЙ БРИТ «Як запускати тести з Playwright Java написані на Selenide. Не пе...
СЕРГІЙ БРИТ «Як запускати тести з Playwright Java написані на Selenide. Не пе...СЕРГІЙ БРИТ «Як запускати тести з Playwright Java написані на Selenide. Не пе...
СЕРГІЙ БРИТ «Як запускати тести з Playwright Java написані на Selenide. Не пе...
 
БОГДАН САВЧУК «IoT testing: Manual, Automation and Cyber Security techniques»
БОГДАН САВЧУК «IoT testing: Manual, Automation and Cyber Security techniques»БОГДАН САВЧУК «IoT testing: Manual, Automation and Cyber Security techniques»
БОГДАН САВЧУК «IoT testing: Manual, Automation and Cyber Security techniques»
 
ЕЛЬМІР ІСКАНДЕРОВ «Bulletproof Your Software: The Magic of Security Autotests»
ЕЛЬМІР ІСКАНДЕРОВ «Bulletproof Your Software: The Magic of Security Autotests»ЕЛЬМІР ІСКАНДЕРОВ «Bulletproof Your Software: The Magic of Security Autotests»
ЕЛЬМІР ІСКАНДЕРОВ «Bulletproof Your Software: The Magic of Security Autotests»
 
ІННА ДВОЙНІКОВА «Як вийти на Upwork та розширити горизонти QA»
ІННА ДВОЙНІКОВА «Як вийти на Upwork та розширити горизонти QA»ІННА ДВОЙНІКОВА «Як вийти на Upwork та розширити горизонти QA»
ІННА ДВОЙНІКОВА «Як вийти на Upwork та розширити горизонти QA»
 
КАТЕРИНА АБЗЯТОВА «Point of Growth: Transforming Challenges into Skill-Buildi...
КАТЕРИНА АБЗЯТОВА «Point of Growth: Transforming Challenges into Skill-Buildi...КАТЕРИНА АБЗЯТОВА «Point of Growth: Transforming Challenges into Skill-Buildi...
КАТЕРИНА АБЗЯТОВА «Point of Growth: Transforming Challenges into Skill-Buildi...
 
НАТАЛІЯ ТРОЙНІЧ «Редизайн всього продукту, коли на проекті залишилось два ман...
НАТАЛІЯ ТРОЙНІЧ «Редизайн всього продукту, коли на проекті залишилось два ман...НАТАЛІЯ ТРОЙНІЧ «Редизайн всього продукту, коли на проекті залишилось два ман...
НАТАЛІЯ ТРОЙНІЧ «Редизайн всього продукту, коли на проекті залишилось два ман...
 
РІНА УЖЕВКО «Вплив архітектури на стратегію тестування»
РІНА УЖЕВКО «Вплив архітектури на стратегію тестування»РІНА УЖЕВКО «Вплив архітектури на стратегію тестування»
РІНА УЖЕВКО «Вплив архітектури на стратегію тестування»
 
СЕРГІЙ РУСІНЧУК «Розкриття майстерності QA команд через KPI»
СЕРГІЙ РУСІНЧУК «Розкриття майстерності QA команд через KPI»СЕРГІЙ РУСІНЧУК «Розкриття майстерності QA команд через KPI»
СЕРГІЙ РУСІНЧУК «Розкриття майстерності QA команд через KPI»
 
КАТЕРИНА АБЗЯТОВА - Certify with confidence: ISTQB Foundation 4.0. Common err...
КАТЕРИНА АБЗЯТОВА - Certify with confidence: ISTQB Foundation 4.0. Common err...КАТЕРИНА АБЗЯТОВА - Certify with confidence: ISTQB Foundation 4.0. Common err...
КАТЕРИНА АБЗЯТОВА - Certify with confidence: ISTQB Foundation 4.0. Common err...
 
Слуцька Вікторія - Виступити і не наступити на граблі: Як виступати QA спеціа...
Слуцька Вікторія - Виступити і не наступити на граблі: Як виступати QA спеціа...Слуцька Вікторія - Виступити і не наступити на граблі: Як виступати QA спеціа...
Слуцька Вікторія - Виступити і не наступити на граблі: Як виступати QA спеціа...
 
ОЛЕКСАНДР ХОТЕМСЬКИЙ «Планування стратегії розвитку тестування на проекті»
ОЛЕКСАНДР ХОТЕМСЬКИЙ «Планування стратегії розвитку тестування на проекті»ОЛЕКСАНДР ХОТЕМСЬКИЙ «Планування стратегії розвитку тестування на проекті»
ОЛЕКСАНДР ХОТЕМСЬКИЙ «Планування стратегії розвитку тестування на проекті»
 
ОЛЕКСІЙ ОСТАПОВ «Створення плагінів для pytest»
ОЛЕКСІЙ ОСТАПОВ «Створення плагінів для pytest»ОЛЕКСІЙ ОСТАПОВ «Створення плагінів для pytest»
ОЛЕКСІЙ ОСТАПОВ «Створення плагінів для pytest»
 
РОМАН ДУМАНСЬКИЙ «Testing the application in the Amazon Cloud»
РОМАН ДУМАНСЬКИЙ «Testing the application in the Amazon Cloud»РОМАН ДУМАНСЬКИЙ «Testing the application in the Amazon Cloud»
РОМАН ДУМАНСЬКИЙ «Testing the application in the Amazon Cloud»
 

ЄВГЕН КЛИМЕНКО «Think like a tester, act like an engineer» Lviv QA Day 2019

  • 1. Think like a tester, act like an engineer @timlidos
  • 3. Think like a tester, act like an engineer @timlidos
  • 4. 1. Make sure the product works
  • 10. https://playground.learnqa.ru/puzzle/triangle 1. [0; 0; 0] 2. [-3; -3; -3] 3. abcdef (any string)
  • 11. https://playground.learnqa.ru/puzzle/triangle 1. [0; 0; 0] 2. [-3; -3; -3] 3. abcdef (any string) 4. etc.
  • 12. 1. Make sure the product works
  • 13. 1. Make sure the product works 2. Understand your customer
  • 15. https://imbashop.com 1. Registration 2. Authorization 3. Search 4. Payments 5. Delivery 6. etc.
  • 16. https://imbashop.com 1. Registration 2. Authorization 3. Search 4. Payments 5. Delivery 6. etc.
  • 17. https://imbashop.com 1. Registration 2. Authorization 3. Search 4. Payments 5. Delivery 6. etc.
  • 18. https://imbashop.com 1. Registration 2. Authorization 3. Search 4. Payments 5. Delivery 6. etc.
  • 19. https://imbashop.com 1. Registration 2. Authorization 3. Search 4. Payments 5. Delivery 6. etc.
  • 20. https://imbashop.com 1. Registration 2. Authorization 3. Search 4. Payments 5. Delivery 6. etc.
  • 21. https://imbashop.com 1. Registration 2. Authorization 3. Search 4. Payments 5. Delivery 6. etc.
  • 22.
  • 23.
  • 24. The customer does not buy a punch. Customer buys a hole in the wall.
  • 25.
  • 26. 1. Make sure the product works 2. Understand your customer
  • 27. 1. Make sure the product works 2. Understand your customer 3. Understand your product
  • 32. Создать программу, которая выведет на экран ближайшее к 10 из двух чисел. Например, среди чисел 8 и 6 - ближайшее к десяти 8.
  • 33. int a = 8; int b = 6; int ten = 10; int diffOne = ten - a; int diffTwo = ten - b; if (diffOne < diffTwo) { System.out.println("Ближайшее число к 10: " + a); } else { System.out.println("Ближайшее число к 10: " + b); }
  • 34. int a = 8; int b = 6; int ten = 10; int diffOne = ten - a; int diffTwo = ten - b; if (diffOne < diffTwo) { System.out.println("Ближайшее число к 10: " + a); } else { System.out.println("Ближайшее число к 10: " + b); } BUILD SUCCESSFUL Ближайшее число к 10: 8
  • 35. int a = 8; int b = 6; int ten = 10; int diffOne = ten - a; int diffTwo = ten - b; if (diffOne < diffTwo) { System.out.println("Ближайшее число к 10: " + a); } else { System.out.println("Ближайшее число к 10: " + b); } BUILD SUCCESSFUL Ближайшее число к 10: 8
  • 36. int a = 8; int b = 6; int ten = 10; int diffOne = ten - a; // 2 int diffTwo = ten - b; // 4 if (diffOne < diffTwo) { System.out.println("Ближайшее число к 10: " + a); } else { System.out.println("Ближайшее число к 10: " + b); } BUILD SUCCESSFUL Ближайшее число к 10: 8
  • 37. int a = 11; int b = 29; int ten = 10; int diffOne = ten - a; // -1 int diffTwo = ten - b; // -19 if (diffOne < diffTwo) { System.out.println("Ближайшее число к 10: " + a); } else { System.out.println("Ближайшее число к 10: " + b); }
  • 38. int a = 11; int b = 29; int ten = 10; int diffOne = ten - a; // -1 int diffTwo = ten - b; // -19 if (diffOne < diffTwo) { System.out.println("Ближайшее число к 10: " + a); } else { System.out.println("Ближайшее число к 10: " + b); } BUILD SUCCESSFUL Ближайшее число к 10: 29
  • 39. int a = 11; int b = 29; int ten = 10; int diffOne = Math.abs(ten – a); // 1 int diffTwo = Math.abs(ten – b); // 19 if (diffOne < diffTwo) { System.out.println("Ближайшее число к 10: " + a); } else { System.out.println("Ближайшее число к 10: " + b); }
  • 40. int a = 11; int b = 29; int ten = 10; int diffOne = Math.abs(ten – a); // 1 int diffTwo = Math.abs(ten – b); // 19 if (diffOne < diffTwo) { System.out.println("Ближайшее число к 10: " + a); } else { System.out.println("Ближайшее число к 10: " + b); } BUILD SUCCESSFUL Ближайшее число к 10: 11
  • 41. int a = 14; int b = 14; int ten = 10; int diffOne = Math.abs(ten – a); // 4 int diffTwo = Math.abs(ten – b); // 4 if (diffOne < diffTwo) { System.out.println("Ближайшее число к 10: " + a); } else { System.out.println("Ближайшее число к 10: " + b); }
  • 42. int a = 14; int b = 14; int ten = 10; int diffOne = Math.abs(ten – a); // 4 int diffTwo = Math.abs(ten – b); // 4 if (diffOne < diffTwo) { System.out.println("Ближайшее число к 10 – число а, равное: " + a); } else { System.out.println("Ближайшее число к 10 – число b, равное: " + b); }
  • 43. int a = 14; int b = 14; int ten = 10; int diffOne = Math.abs(ten – a); // 4 int diffTwo = Math.abs(ten – b); // 4 if (diffOne < diffTwo) { System.out.println("Ближайшее число к 10 – число а, равное: " + a); } else { System.out.println("Ближайшее число к 10 – число b, равное: " + b); } BUILD SUCCESSFUL Ближайшее число к 10 – число b, равное: 14
  • 44. int a = 14; int b = 14; int ten = 10; int diffOne = Math.abs(ten – a); // 4 int diffTwo = Math.abs(ten – b); // 4 if (a == b) { System.out.println(“Числа находятся на равном расстоянии от ” + ten); } else if (diffOne < diffTwo) { System.out.println("Ближайшее число к 10 – число а, равное: " + a); } else { System.out.println("Ближайшее число к 10 – число b, равное: " + b); }
  • 45. int a = 14; int b = 14; int ten = 10; int diffOne = Math.abs(ten – a); // 4 int diffTwo = Math.abs(ten – b); // 4 if (a == b) { System.out.println(“Числа находятся на равном расстоянии от ” + ten); } else if (diffOne < diffTwo) { System.out.println("Ближайшее число к 10 – число а, равное: " + a); } else { System.out.println("Ближайшее число к 10 – число b, равное: " + b); } BUILD SUCCESSFUL Числа находятся на равном расстоянии от 10
  • 46. int a = 12; int b = 8; int ten = 10; int diffOne = Math.abs(ten – a); // 2 int diffTwo = Math.abs(ten – b); // 2 if (a == b) { System.out.println(“Числа находятся на равном расстоянии от ” + ten); } else if (diffOne < diffTwo) { System.out.println("Ближайшее число к 10 – число а, равное: " + a); } else { System.out.println("Ближайшее число к 10 – число b, равное: " + b); }
  • 47. int a = 12; int b = 8; int ten = 10; int diffOne = Math.abs(ten – a); // 2 int diffTwo = Math.abs(ten – b); // 2 if (a == b) { // Это условие не выполнится, т.к. числа не равны System.out.println(“Числа находятся на равном расстоянии от ” + ten); } else if (diffOne < diffTwo) { System.out.println("Ближайшее число к 10 – число а, равное: " + a); } else { System.out.println("Ближайшее число к 10 – число b, равное: " + b); }
  • 48. int a = 12; int b = 8; int ten = 10; int diffOne = Math.abs(ten – a); // 2 int diffTwo = Math.abs(ten – b); // 2 if (a == b) { // Это условие не выполнится, т.к. числа не равны System.out.println(“Числа находятся на равном расстоянии от ” + ten); } else if (diffOne < diffTwo) { System.out.println("Ближайшее число к 10 – число а, равное: " + a); } else { System.out.println("Ближайшее число к 10 – число b, равное: " + b); } BUILD SUCCESSFUL Ближайшее число к 10 – число b, равное: 8
  • 49. int a = 12; int b = 8; int ten = 10; int diffOne = Math.abs(ten – a); // 2 int diffTwo = Math.abs(ten – b); // 2 if (diffOne == diffTwo) { System.out.println(“Числа находятся на равном расстоянии от ” + ten); } else if (diffOne < diffTwo) { System.out.println("Ближайшее число к 10 – число а, равное: " + a); } else { System.out.println("Ближайшее число к 10 – число b, равное: " + b); }
  • 50. int a = 12; int b = 8; int ten = 10; int diffOne = Math.abs(ten – a); // 2 int diffTwo = Math.abs(ten – b); // 2 if (diffOne == diffTwo) { System.out.println(“Числа находятся на равном расстоянии от ” + ten); } else if (diffOne < diffTwo) { System.out.println("Ближайшее число к 10 – число а, равное: " + a); } else { System.out.println("Ближайшее число к 10 – число b, равное: " + b); } BUILD SUCCESSFUL Числа находятся на равном расстоянии от 10
  • 51. int a = 2147483648;
  • 52. int a = 2147483648; int b = -2147483649;
  • 53. int a = 2147483648; int b = -2147483649; Error:(3, 17) java: integer number too large: 2147483648 Error:(4, 18) java: integer number too large: -2147483649
  • 54. BigInteger a = BigInteger.valueOf(2147483647); BigInteger b = BigInteger.valueOf(-2147483648); int ten = 10; BigInteger diffOne = a.subtract(BigInteger.valueOf(ten)); BigInteger diffTwo = b.subtract(BigInteger.valueOf(ten));
  • 55. int a = 12; int b = 8; int ten = 10; int diffOne = Math.abs(ten – a); // 2 int diffTwo = Math.abs(ten – b); // 2 if (diffOne == diffTwo) { System.out.println(“Числа находятся на равном расстоянии от ” + ten); } else if (diffOne < diffTwo) { System.out.println("Ближайшее число к 10 – число а, равное: " + a); } else { System.out.println("Ближайшее число к 10 – число b, равное: " + b); } BUILD SUCCESSFUL Числа находятся на равном расстоянии от 10
  • 56. double a = 12.0; double b = 8.0; double ten = 10.0; double diffOne = Math.abs(ten – a); // 2 double diffTwo = Math.abs(ten – b); // 2 if (diffOne == diffTwo) { System.out.println(“Числа находятся на равном расстоянии от ” + ten); } else if (diffOne < diffTwo) { System.out.println("Ближайшее число к 10 – число а, равное: " + a); } else { System.out.println("Ближайшее число к 10 – число b, равное: " + b); }
  • 57. double a = 0.1; double b = 0.2; double sum = a + b; System.out.println(“Сумма 0.1 и 0.2 равна: “ + sum);
  • 58. double a = 0.1; double b = 0.2; double sum = a + b; System.out.println(“Сумма 0.1 и 0.2 равна: “ + sum); BUILD SUCCESSFUL Сумма 0.1 и 0.2 равна: 0.30000000000000004
  • 65. Thanks for attention! Contacts: Telegram: @timlidos Skype: john.klymenko