SlideShare a Scribd company logo
1 of 23
QA Battle of
Automation Approaches
Элементы с типизацией (JDI)
vs. элементы без типизации (Selenide)
Roman Iovlev Alexei Vinogradov
Chief QA Automation
In Testing more than 11 years
In Testing Automation 9 years
ROMAN IOVLEV
Alexei Vinogradov
IT-Kонсультант
тестирование, управление тестированием,
автоматизация в тестировании, коучинг
15+ лет в IT, докладчик SQA Days / Codefest / QA Fest
TYPIFIED
ELEMENTS
10 DEC 2016
TYPIFIED ELEMENTS VS SUPER ELEMENT
6
VS
WebElement
SelenideElement
SIMPLE BUT…
6
$(“#submit”).click();
$(“#submit”).click();
$(“#submit”).click();
$(“#submit”).click();
$(“#submit”).click();
$(“#submit”).click();
$(“#submit”).click();
$(“#submit”).click();
private SelenideElement colorsArrow = $(“#color-arrow“);
private List<SelenideElement> colorsValues = $$(“#colors li“);
private SelenideElement colorsValue = $(“#colors“);
public void selectColor(String color) {
colorsArrow.click();
colorsValues.filter(text(color)).first().click();
}
public String getColor() {
colorsValue.text();
}
private SelenideElement submitButton
= $(“.submit”)
3 DROPDOWNS
6
private SelenideElement colorsArrow
= $(“#color-arrow“);
private List<SelenideElement> colorsValues
= $$(“#colors li“);
private SelenideElement colorsValue
= $(“#colors“);
private SelenideElement typesArrow
= $(“#type-arrow“);
private List<SelenideElement> typesValues
= $$(“#types li“);
private SelenideElement typesValue
= $(“# types“);
private SelenideElement shapesArrow
= $(“#shape-arrow“);
private List<SelenideElement> shapesValues
= $$(“#shapes li“);
private SelenideElement shapesValue
= $(“#shapes “);
public void selectColor(String color) {
colorsArrow.click();
colorsValues.filter(text(color)).first().click();
}
public String getColor() {
colorsValue.text();
}
public void selectType(String type) {
typesArrow.click();
typesValues.filter(text(type)).first().click();
}
public String getType() {
typesValue.text();
}
public void selectShape(String shape) {
shapesArrow.click();
shapesValues.filter(text(shape)).first().click();
}
public String getShape() {
shapesValue.text();
}
SO OBVIOUS
6
@JDropdown(expand= “#color-arrow“
list = “#colors li"
value = “#colors")
public Dropdown colors;
@JDropdown(expand= “#type-arrow“
list = “#types li"
value = “#types")
public Dropdown types;
@JDropdown(expand= “#shape-arrow“
list = “#shapes li"
value = “#shapes")
public Dropdown shapes;
• Десятки элементов (> 30 элементов)
• Сотни методов (в ITable > 100)
Actions
Control
Control
Business
SIMPLE BUT…
6
open(“http://my.site.com”);
homePage.open();
open(“http://my.site.com”);
open(“http://my.site.com”);
public class HomePage {
public void open() {
open(“http://my.site.com”);
}
…
}
open(“http://my.site.com”);
SAVINGS
6
1. Save your time
2. Save your Client money
3. Get tests with more quality
4. Do more interesting things
SHORT & OBVIOUS
5
public class Filter {
public WebElement submitButton;
public WebElement followMeLink;
public WebElement navigation;
public WebElement colors;
public WebElement areas;
public WebElement settings;
public WebElement tags;
public WebElement shirtSizes;
public WebElement vote;
public WebElement rating;
}
public class Filter {
public Button submit;
public Link followMe;
public Menu navigation;
public Dropdown colors;
public Tabs areas;
public Checklist settings;
public ComboBox tags;
public DropList shirtSizes;
public Selector vote;
public RadioButtons rating;
}
public class Filter {
public _ submitButton;
public _ followMeLink;
public _ navigation;
public _ colors;
public _ areas;
public _ settings;
public _ tags;
public _ shirtSizes;
public _ vote;
public _ rating;
}
public class Filter {
public SelenideElement submitButton;
public SelenideElement followMeLink;
public SelenideElement navigation;
public SelenideElement colors;
public SelenideElement areas;
public SelenideElement settings;
public SelenideElement tags;
public SelenideElement shirtSizes;
public SelenideElement vote;
public SelenideElement rating;
}
click()
isDisplayed()
is()
sendKeys()
attr()
shouldHave()
should()
getLocation()
find()
findElement()
getText()
getCoordinates()
$()
$$()
append()
clickContext()
closest()
…
ONLY USABLE ACTIONS
5
Button submitButton. click()
getText()
SelenideElement submitButton.
LOGS & REPORTING
5
 Click on Login Button
 Get Row with “Type=Approved” from Products Table
 Select “Blue” in Color Dropdown
 Login with “CorrectUser”
 …
WORK WITH OBJECTS
5
• registerForm.save(vipClient);
• searchForm.find(product);
• List<Product> products = products.entities(p -> p.Type == “shoes”);
• Card products = cards.entity(c ->
c.Status == APPROVED && c.Name.contains(“Duke”));
• …
ITable products;
ITable cards;
EntityDrivenTesting
WIND OF CHANGE
3
• Fast writing one test
• Small projects (< 4 months)
• Selenide is better engine
than Selenium but still an
engine layer
• Fast writing bunch of tests
• Midle-Large projects (> 6 months)
• JDI is an UI Automation
Framework and represents
Application/Business layer
PLATO'S THEORY OF FORMS
5
No application but you can write UI Objects (Page Objects )
IButton
INTERFACES
5
IButton submit;
IDropdown cities;
ITable products;
MapInterfaceToElement.update(
new Object[][]{
{ IDropDown.class, MyDropDown.class},
{ IButton.class, MyButton.class},
{ ITable.class, CustomTable.class}
});
EVERYBODY DO IT
6
1. Save a lot of time - money
2. More obvious test scenarios, page objects,
logs, reports – easier develop & support
3. Operate with real business Objects
4. Write UI Objects (Page Objects) without app
5. Easier scenarios reusage on different platforms
20
WEB TESTING 2.0
Page
Objects
Smoke Tests
BE LAZY
6
22
PLANS
23
CONTACTS
http://jdi.epam.com/
https://vk.com/jdi_framework
23
roman.Iovlev
roman_iovlev@epam.com
https://github.com/epam/JDI
INFO CONTACTS

More Related Content

Viewers also liked

Робота зі станціями переливання крові та державними структурами
Робота зі станціями переливання крові та державними структурамиРобота зі станціями переливання крові та державними структурами
Робота зі станціями переливання крові та державними структурамиOleksandr Krakovetskyi
 
Finnish technology industry, March 2017
Finnish technology industry, March 2017Finnish technology industry, March 2017
Finnish technology industry, March 2017TechFinland
 
Roman iovlev. Test UI with JDI - Selenium camp
Roman iovlev. Test UI with JDI - Selenium campRoman iovlev. Test UI with JDI - Selenium camp
Roman iovlev. Test UI with JDI - Selenium campРоман Иовлев
 
Derechos humanos en el mundo.
Derechos humanos en el mundo.Derechos humanos en el mundo.
Derechos humanos en el mundo.José María
 
Teknologiateollisuuden / Suomen talousnäkymät, maaliskuu 2017
Teknologiateollisuuden / Suomen talousnäkymät, maaliskuu 2017Teknologiateollisuuden / Suomen talousnäkymät, maaliskuu 2017
Teknologiateollisuuden / Suomen talousnäkymät, maaliskuu 2017TechFinland
 
Ready mix concrete
Ready mix concreteReady mix concrete
Ready mix concreteSAN Sunny
 
El dar principio divino # 13 ibe callao
El dar principio divino # 13 ibe callaoEl dar principio divino # 13 ibe callao
El dar principio divino # 13 ibe callaoIBE Callao
 

Viewers also liked (7)

Робота зі станціями переливання крові та державними структурами
Робота зі станціями переливання крові та державними структурамиРобота зі станціями переливання крові та державними структурами
Робота зі станціями переливання крові та державними структурами
 
Finnish technology industry, March 2017
Finnish technology industry, March 2017Finnish technology industry, March 2017
Finnish technology industry, March 2017
 
Roman iovlev. Test UI with JDI - Selenium camp
Roman iovlev. Test UI with JDI - Selenium campRoman iovlev. Test UI with JDI - Selenium camp
Roman iovlev. Test UI with JDI - Selenium camp
 
Derechos humanos en el mundo.
Derechos humanos en el mundo.Derechos humanos en el mundo.
Derechos humanos en el mundo.
 
Teknologiateollisuuden / Suomen talousnäkymät, maaliskuu 2017
Teknologiateollisuuden / Suomen talousnäkymät, maaliskuu 2017Teknologiateollisuuden / Suomen talousnäkymät, maaliskuu 2017
Teknologiateollisuuden / Suomen talousnäkymät, maaliskuu 2017
 
Ready mix concrete
Ready mix concreteReady mix concrete
Ready mix concrete
 
El dar principio divino # 13 ibe callao
El dar principio divino # 13 ibe callaoEl dar principio divino # 13 ibe callao
El dar principio divino # 13 ibe callao
 

Recently uploaded

Introduction to Microprocesso programming and interfacing.pptx
Introduction to Microprocesso programming and interfacing.pptxIntroduction to Microprocesso programming and interfacing.pptx
Introduction to Microprocesso programming and interfacing.pptxvipinkmenon1
 
Internship report on mechanical engineering
Internship report on mechanical engineeringInternship report on mechanical engineering
Internship report on mechanical engineeringmalavadedarshan25
 
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IVHARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IVRajaP95
 
Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.eptoze12
 
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxDecoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxJoão Esperancinha
 
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...ranjana rawat
 
Microscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxMicroscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxpurnimasatapathy1234
 
Past, Present and Future of Generative AI
Past, Present and Future of Generative AIPast, Present and Future of Generative AI
Past, Present and Future of Generative AIabhishek36461
 
ZXCTN 5804 / ZTE PTN / ZTE POTN / ZTE 5804 PTN / ZTE POTN 5804 ( 100/200 GE Z...
ZXCTN 5804 / ZTE PTN / ZTE POTN / ZTE 5804 PTN / ZTE POTN 5804 ( 100/200 GE Z...ZXCTN 5804 / ZTE PTN / ZTE POTN / ZTE 5804 PTN / ZTE POTN 5804 ( 100/200 GE Z...
ZXCTN 5804 / ZTE PTN / ZTE POTN / ZTE 5804 PTN / ZTE POTN 5804 ( 100/200 GE Z...ZTE
 
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdfCCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdfAsst.prof M.Gokilavani
 
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCollege Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCall Girls in Nagpur High Profile
 
GDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentationGDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentationGDSCAESB
 
VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...
VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...
VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...VICTOR MAESTRE RAMIREZ
 
microprocessor 8085 and its interfacing
microprocessor 8085  and its interfacingmicroprocessor 8085  and its interfacing
microprocessor 8085 and its interfacingjaychoudhary37
 
HARMONY IN THE HUMAN BEING - Unit-II UHV-2
HARMONY IN THE HUMAN BEING - Unit-II UHV-2HARMONY IN THE HUMAN BEING - Unit-II UHV-2
HARMONY IN THE HUMAN BEING - Unit-II UHV-2RajaP95
 
Call Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile serviceCall Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile servicerehmti665
 
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130Suhani Kapoor
 
Call Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call GirlsCall Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call Girlsssuser7cb4ff
 

Recently uploaded (20)

Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCRCall Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
 
Introduction to Microprocesso programming and interfacing.pptx
Introduction to Microprocesso programming and interfacing.pptxIntroduction to Microprocesso programming and interfacing.pptx
Introduction to Microprocesso programming and interfacing.pptx
 
Internship report on mechanical engineering
Internship report on mechanical engineeringInternship report on mechanical engineering
Internship report on mechanical engineering
 
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IVHARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
 
Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.
 
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxDecoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
 
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
 
Microscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxMicroscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptx
 
Past, Present and Future of Generative AI
Past, Present and Future of Generative AIPast, Present and Future of Generative AI
Past, Present and Future of Generative AI
 
ZXCTN 5804 / ZTE PTN / ZTE POTN / ZTE 5804 PTN / ZTE POTN 5804 ( 100/200 GE Z...
ZXCTN 5804 / ZTE PTN / ZTE POTN / ZTE 5804 PTN / ZTE POTN 5804 ( 100/200 GE Z...ZXCTN 5804 / ZTE PTN / ZTE POTN / ZTE 5804 PTN / ZTE POTN 5804 ( 100/200 GE Z...
ZXCTN 5804 / ZTE PTN / ZTE POTN / ZTE 5804 PTN / ZTE POTN 5804 ( 100/200 GE Z...
 
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdfCCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
 
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCollege Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
 
GDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentationGDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentation
 
VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...
VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...
VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...
 
microprocessor 8085 and its interfacing
microprocessor 8085  and its interfacingmicroprocessor 8085  and its interfacing
microprocessor 8085 and its interfacing
 
HARMONY IN THE HUMAN BEING - Unit-II UHV-2
HARMONY IN THE HUMAN BEING - Unit-II UHV-2HARMONY IN THE HUMAN BEING - Unit-II UHV-2
HARMONY IN THE HUMAN BEING - Unit-II UHV-2
 
Call Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile serviceCall Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile service
 
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
 
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
 
Call Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call GirlsCall Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call Girls
 

Roman iovlev battle - typified or not tepified elements jdi vs selenide - Heisenbug

Editor's Notes

  1. Работаю в компании Epam в
  2. Why we develop it? Some people formulate it as “Why you create one more wheel”
  3. Why we develop it? Some people formulate it as “Why you create one more wheel”
  4. Why we develop it? Some people formulate it as “Why you create one more wheel”
  5. Why we develop it? Some people formulate it as “Why you create one more wheel”
  6. Why we develop it? Some people formulate it as “Why you create one more wheel”
  7. Why we develop it? Some people formulate it as “Why you create one more wheel”
  8. Why we develop it? Some people formulate it as “Why you create one more wheel”
  9. Why we develop it? Some people formulate it as “Why you create one more wheel”
  10. Why we develop it? Some people formulate it as “Why you create one more wheel”
  11. Why we develop it? Some people formulate it as “Why you create one more wheel”
  12. Why we develop it? Some people formulate it as “Why you create one more wheel”
  13. Why we develop it? Some people formulate it as “Why you create one more wheel”
  14. Why we develop it? Some people formulate it as “Why you create one more wheel”
  15. Why we develop it? Some people formulate it as “Why you create one more wheel”
  16. Why we develop it? Some people formulate it as “Why you create one more wheel”