SlideShare a Scribd company logo
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 2017
TechFinland
 
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 2017
TechFinland
 
Ready mix concrete
Ready mix concreteReady mix concrete
Ready mix concrete
SAN 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 callao
IBE 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

Comparative analysis between traditional aquaponics and reconstructed aquapon...
Comparative analysis between traditional aquaponics and reconstructed aquapon...Comparative analysis between traditional aquaponics and reconstructed aquapon...
Comparative analysis between traditional aquaponics and reconstructed aquapon...
bijceesjournal
 
1FIDIC-CONSTRUCTION-CONTRACT-2ND-ED-2017-RED-BOOK.pdf
1FIDIC-CONSTRUCTION-CONTRACT-2ND-ED-2017-RED-BOOK.pdf1FIDIC-CONSTRUCTION-CONTRACT-2ND-ED-2017-RED-BOOK.pdf
1FIDIC-CONSTRUCTION-CONTRACT-2ND-ED-2017-RED-BOOK.pdf
MadhavJungKarki
 
Applications of artificial Intelligence in Mechanical Engineering.pdf
Applications of artificial Intelligence in Mechanical Engineering.pdfApplications of artificial Intelligence in Mechanical Engineering.pdf
Applications of artificial Intelligence in Mechanical Engineering.pdf
Atif Razi
 
Software Engineering and Project Management - Software Testing + Agile Method...
Software Engineering and Project Management - Software Testing + Agile Method...Software Engineering and Project Management - Software Testing + Agile Method...
Software Engineering and Project Management - Software Testing + Agile Method...
Prakhyath Rai
 
Null Bangalore | Pentesters Approach to AWS IAM
Null Bangalore | Pentesters Approach to AWS IAMNull Bangalore | Pentesters Approach to AWS IAM
Null Bangalore | Pentesters Approach to AWS IAM
Divyanshu
 
Use PyCharm for remote debugging of WSL on a Windo cf5c162d672e4e58b4dde5d797...
Use PyCharm for remote debugging of WSL on a Windo cf5c162d672e4e58b4dde5d797...Use PyCharm for remote debugging of WSL on a Windo cf5c162d672e4e58b4dde5d797...
Use PyCharm for remote debugging of WSL on a Windo cf5c162d672e4e58b4dde5d797...
shadow0702a
 
Engineering Standards Wiring methods.pdf
Engineering Standards Wiring methods.pdfEngineering Standards Wiring methods.pdf
Engineering Standards Wiring methods.pdf
edwin408357
 
Properties Railway Sleepers and Test.pptx
Properties Railway Sleepers and Test.pptxProperties Railway Sleepers and Test.pptx
Properties Railway Sleepers and Test.pptx
MDSABBIROJJAMANPAYEL
 
Computational Engineering IITH Presentation
Computational Engineering IITH PresentationComputational Engineering IITH Presentation
Computational Engineering IITH Presentation
co23btech11018
 
Rainfall intensity duration frequency curve statistical analysis and modeling...
Rainfall intensity duration frequency curve statistical analysis and modeling...Rainfall intensity duration frequency curve statistical analysis and modeling...
Rainfall intensity duration frequency curve statistical analysis and modeling...
bijceesjournal
 
132/33KV substation case study Presentation
132/33KV substation case study Presentation132/33KV substation case study Presentation
132/33KV substation case study Presentation
kandramariana6
 
VARIABLE FREQUENCY DRIVE. VFDs are widely used in industrial applications for...
VARIABLE FREQUENCY DRIVE. VFDs are widely used in industrial applications for...VARIABLE FREQUENCY DRIVE. VFDs are widely used in industrial applications for...
VARIABLE FREQUENCY DRIVE. VFDs are widely used in industrial applications for...
PIMR BHOPAL
 
一比一原版(uofo毕业证书)美国俄勒冈大学毕业证如何办理
一比一原版(uofo毕业证书)美国俄勒冈大学毕业证如何办理一比一原版(uofo毕业证书)美国俄勒冈大学毕业证如何办理
一比一原版(uofo毕业证书)美国俄勒冈大学毕业证如何办理
upoux
 
Data Driven Maintenance | UReason Webinar
Data Driven Maintenance | UReason WebinarData Driven Maintenance | UReason Webinar
Data Driven Maintenance | UReason Webinar
UReason
 
TIME TABLE MANAGEMENT SYSTEM testing.pptx
TIME TABLE MANAGEMENT SYSTEM testing.pptxTIME TABLE MANAGEMENT SYSTEM testing.pptx
TIME TABLE MANAGEMENT SYSTEM testing.pptx
CVCSOfficial
 
4. Mosca vol I -Fisica-Tipler-5ta-Edicion-Vol-1.pdf
4. Mosca vol I -Fisica-Tipler-5ta-Edicion-Vol-1.pdf4. Mosca vol I -Fisica-Tipler-5ta-Edicion-Vol-1.pdf
4. Mosca vol I -Fisica-Tipler-5ta-Edicion-Vol-1.pdf
Gino153088
 
SCALING OF MOS CIRCUITS m .pptx
SCALING OF MOS CIRCUITS m                 .pptxSCALING OF MOS CIRCUITS m                 .pptx
SCALING OF MOS CIRCUITS m .pptx
harshapolam10
 
一比一原版(osu毕业证书)美国俄勒冈州立大学毕业证如何办理
一比一原版(osu毕业证书)美国俄勒冈州立大学毕业证如何办理一比一原版(osu毕业证书)美国俄勒冈州立大学毕业证如何办理
一比一原版(osu毕业证书)美国俄勒冈州立大学毕业证如何办理
upoux
 
Digital Twins Computer Networking Paper Presentation.pptx
Digital Twins Computer Networking Paper Presentation.pptxDigital Twins Computer Networking Paper Presentation.pptx
Digital Twins Computer Networking Paper Presentation.pptx
aryanpankaj78
 
Electric vehicle and photovoltaic advanced roles in enhancing the financial p...
Electric vehicle and photovoltaic advanced roles in enhancing the financial p...Electric vehicle and photovoltaic advanced roles in enhancing the financial p...
Electric vehicle and photovoltaic advanced roles in enhancing the financial p...
IJECEIAES
 

Recently uploaded (20)

Comparative analysis between traditional aquaponics and reconstructed aquapon...
Comparative analysis between traditional aquaponics and reconstructed aquapon...Comparative analysis between traditional aquaponics and reconstructed aquapon...
Comparative analysis between traditional aquaponics and reconstructed aquapon...
 
1FIDIC-CONSTRUCTION-CONTRACT-2ND-ED-2017-RED-BOOK.pdf
1FIDIC-CONSTRUCTION-CONTRACT-2ND-ED-2017-RED-BOOK.pdf1FIDIC-CONSTRUCTION-CONTRACT-2ND-ED-2017-RED-BOOK.pdf
1FIDIC-CONSTRUCTION-CONTRACT-2ND-ED-2017-RED-BOOK.pdf
 
Applications of artificial Intelligence in Mechanical Engineering.pdf
Applications of artificial Intelligence in Mechanical Engineering.pdfApplications of artificial Intelligence in Mechanical Engineering.pdf
Applications of artificial Intelligence in Mechanical Engineering.pdf
 
Software Engineering and Project Management - Software Testing + Agile Method...
Software Engineering and Project Management - Software Testing + Agile Method...Software Engineering and Project Management - Software Testing + Agile Method...
Software Engineering and Project Management - Software Testing + Agile Method...
 
Null Bangalore | Pentesters Approach to AWS IAM
Null Bangalore | Pentesters Approach to AWS IAMNull Bangalore | Pentesters Approach to AWS IAM
Null Bangalore | Pentesters Approach to AWS IAM
 
Use PyCharm for remote debugging of WSL on a Windo cf5c162d672e4e58b4dde5d797...
Use PyCharm for remote debugging of WSL on a Windo cf5c162d672e4e58b4dde5d797...Use PyCharm for remote debugging of WSL on a Windo cf5c162d672e4e58b4dde5d797...
Use PyCharm for remote debugging of WSL on a Windo cf5c162d672e4e58b4dde5d797...
 
Engineering Standards Wiring methods.pdf
Engineering Standards Wiring methods.pdfEngineering Standards Wiring methods.pdf
Engineering Standards Wiring methods.pdf
 
Properties Railway Sleepers and Test.pptx
Properties Railway Sleepers and Test.pptxProperties Railway Sleepers and Test.pptx
Properties Railway Sleepers and Test.pptx
 
Computational Engineering IITH Presentation
Computational Engineering IITH PresentationComputational Engineering IITH Presentation
Computational Engineering IITH Presentation
 
Rainfall intensity duration frequency curve statistical analysis and modeling...
Rainfall intensity duration frequency curve statistical analysis and modeling...Rainfall intensity duration frequency curve statistical analysis and modeling...
Rainfall intensity duration frequency curve statistical analysis and modeling...
 
132/33KV substation case study Presentation
132/33KV substation case study Presentation132/33KV substation case study Presentation
132/33KV substation case study Presentation
 
VARIABLE FREQUENCY DRIVE. VFDs are widely used in industrial applications for...
VARIABLE FREQUENCY DRIVE. VFDs are widely used in industrial applications for...VARIABLE FREQUENCY DRIVE. VFDs are widely used in industrial applications for...
VARIABLE FREQUENCY DRIVE. VFDs are widely used in industrial applications for...
 
一比一原版(uofo毕业证书)美国俄勒冈大学毕业证如何办理
一比一原版(uofo毕业证书)美国俄勒冈大学毕业证如何办理一比一原版(uofo毕业证书)美国俄勒冈大学毕业证如何办理
一比一原版(uofo毕业证书)美国俄勒冈大学毕业证如何办理
 
Data Driven Maintenance | UReason Webinar
Data Driven Maintenance | UReason WebinarData Driven Maintenance | UReason Webinar
Data Driven Maintenance | UReason Webinar
 
TIME TABLE MANAGEMENT SYSTEM testing.pptx
TIME TABLE MANAGEMENT SYSTEM testing.pptxTIME TABLE MANAGEMENT SYSTEM testing.pptx
TIME TABLE MANAGEMENT SYSTEM testing.pptx
 
4. Mosca vol I -Fisica-Tipler-5ta-Edicion-Vol-1.pdf
4. Mosca vol I -Fisica-Tipler-5ta-Edicion-Vol-1.pdf4. Mosca vol I -Fisica-Tipler-5ta-Edicion-Vol-1.pdf
4. Mosca vol I -Fisica-Tipler-5ta-Edicion-Vol-1.pdf
 
SCALING OF MOS CIRCUITS m .pptx
SCALING OF MOS CIRCUITS m                 .pptxSCALING OF MOS CIRCUITS m                 .pptx
SCALING OF MOS CIRCUITS m .pptx
 
一比一原版(osu毕业证书)美国俄勒冈州立大学毕业证如何办理
一比一原版(osu毕业证书)美国俄勒冈州立大学毕业证如何办理一比一原版(osu毕业证书)美国俄勒冈州立大学毕业证如何办理
一比一原版(osu毕业证书)美国俄勒冈州立大学毕业证如何办理
 
Digital Twins Computer Networking Paper Presentation.pptx
Digital Twins Computer Networking Paper Presentation.pptxDigital Twins Computer Networking Paper Presentation.pptx
Digital Twins Computer Networking Paper Presentation.pptx
 
Electric vehicle and photovoltaic advanced roles in enhancing the financial p...
Electric vehicle and photovoltaic advanced roles in enhancing the financial p...Electric vehicle and photovoltaic advanced roles in enhancing the financial p...
Electric vehicle and photovoltaic advanced roles in enhancing the financial p...
 

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”