Dzmitry Harachka At SQA Days. Generalization in Auto-Testing. How we put what we had into new...
-
Upload
jazzteam -
Category
Technology
-
view
206 -
download
0
description
Transcript of Dzmitry Harachka At SQA Days. Generalization in Auto-Testing. How we put what we had into new...
![Page 1: Dzmitry Harachka At SQA Days. Generalization in Auto-Testing. How we put what we had into new Technological Platform XML2Selenium.](https://reader033.fdocuments.us/reader033/viewer/2022051514/549e7560ac795924768b4711/html5/thumbnails/1.jpg)
Generalization in Auto-Testing. How we put what we had into new Technological
Platform Dzmitry Harachka, Founder, CEO at
![Page 2: Dzmitry Harachka At SQA Days. Generalization in Auto-Testing. How we put what we had into new Technological Platform XML2Selenium.](https://reader033.fdocuments.us/reader033/viewer/2022051514/549e7560ac795924768b4711/html5/thumbnails/2.jpg)
Who is on the phone
• 10 years of Java Development• Eclipse Committer• Founder and CEO at JazzTeam• Worked in different roles from Junior to CEO• Always was close to Test Automation and Processes• Master' Degree in Computer Science, SCJP/SCWCD• Product Owner of XML2Selenium Test Automation
Platform
![Page 3: Dzmitry Harachka At SQA Days. Generalization in Auto-Testing. How we put what we had into new Technological Platform XML2Selenium.](https://reader033.fdocuments.us/reader033/viewer/2022051514/549e7560ac795924768b4711/html5/thumbnails/3.jpg)
Agile Java Development
• Java and world of Test Automation • Java ideally fits TDD and DDT• Agile/XP promotes Test Automation and Continuous
Integration• We earn from Test Automation• Have good experience in Generalization Programming,
including OOP, patterns, frameworks, finishing with plugin based systems e.g. Eclipse
![Page 4: Dzmitry Harachka At SQA Days. Generalization in Auto-Testing. How we put what we had into new Technological Platform XML2Selenium.](https://reader033.fdocuments.us/reader033/viewer/2022051514/549e7560ac795924768b4711/html5/thumbnails/4.jpg)
Generalization
• I would like share ideas behind XML2Selenium architecture.
• That allows you to apply them in your everyday life. • This does not mean you need own platform or
framework.• This talk is not an advert. It reflects our way to make
generalization and allows us to talk to that.
![Page 5: Dzmitry Harachka At SQA Days. Generalization in Auto-Testing. How we put what we had into new Technological Platform XML2Selenium.](https://reader033.fdocuments.us/reader033/viewer/2022051514/549e7560ac795924768b4711/html5/thumbnails/5.jpg)
First look at XML2Selenium
![Page 6: Dzmitry Harachka At SQA Days. Generalization in Auto-Testing. How we put what we had into new Technological Platform XML2Selenium.](https://reader033.fdocuments.us/reader033/viewer/2022051514/549e7560ac795924768b4711/html5/thumbnails/6.jpg)
XML DSL Language: example1
![Page 7: Dzmitry Harachka At SQA Days. Generalization in Auto-Testing. How we put what we had into new Technological Platform XML2Selenium.](https://reader033.fdocuments.us/reader033/viewer/2022051514/549e7560ac795924768b4711/html5/thumbnails/7.jpg)
XML DSL Language: example2
![Page 8: Dzmitry Harachka At SQA Days. Generalization in Auto-Testing. How we put what we had into new Technological Platform XML2Selenium.](https://reader033.fdocuments.us/reader033/viewer/2022051514/549e7560ac795924768b4711/html5/thumbnails/8.jpg)
More complex test
![Page 9: Dzmitry Harachka At SQA Days. Generalization in Auto-Testing. How we put what we had into new Technological Platform XML2Selenium.](https://reader033.fdocuments.us/reader033/viewer/2022051514/549e7560ac795924768b4711/html5/thumbnails/9.jpg)
Reporting: main table
![Page 10: Dzmitry Harachka At SQA Days. Generalization in Auto-Testing. How we put what we had into new Technological Platform XML2Selenium.](https://reader033.fdocuments.us/reader033/viewer/2022051514/549e7560ac795924768b4711/html5/thumbnails/10.jpg)
Reporting: filtering area
![Page 11: Dzmitry Harachka At SQA Days. Generalization in Auto-Testing. How we put what we had into new Technological Platform XML2Selenium.](https://reader033.fdocuments.us/reader033/viewer/2022051514/549e7560ac795924768b4711/html5/thumbnails/11.jpg)
Reporting: web view
![Page 12: Dzmitry Harachka At SQA Days. Generalization in Auto-Testing. How we put what we had into new Technological Platform XML2Selenium.](https://reader033.fdocuments.us/reader033/viewer/2022051514/549e7560ac795924768b4711/html5/thumbnails/12.jpg)
Reporting: BDD
![Page 13: Dzmitry Harachka At SQA Days. Generalization in Auto-Testing. How we put what we had into new Technological Platform XML2Selenium.](https://reader033.fdocuments.us/reader033/viewer/2022051514/549e7560ac795924768b4711/html5/thumbnails/13.jpg)
History: huge log files
![Page 14: Dzmitry Harachka At SQA Days. Generalization in Auto-Testing. How we put what we had into new Technological Platform XML2Selenium.](https://reader033.fdocuments.us/reader033/viewer/2022051514/549e7560ac795924768b4711/html5/thumbnails/14.jpg)
History: complicated utilitiesBlur applied through NDA, that method for typing in edit controlincludes try/catch, clipboard and mouse over support, wait for object Synchronization, DDT values, logging etc.
![Page 15: Dzmitry Harachka At SQA Days. Generalization in Auto-Testing. How we put what we had into new Technological Platform XML2Selenium.](https://reader033.fdocuments.us/reader033/viewer/2022051514/549e7560ac795924768b4711/html5/thumbnails/15.jpg)
History: configuration magic and cross-browser tests. Local and remote modes.
![Page 16: Dzmitry Harachka At SQA Days. Generalization in Auto-Testing. How we put what we had into new Technological Platform XML2Selenium.](https://reader033.fdocuments.us/reader033/viewer/2022051514/549e7560ac795924768b4711/html5/thumbnails/16.jpg)
History: Java stuff applied
![Page 17: Dzmitry Harachka At SQA Days. Generalization in Auto-Testing. How we put what we had into new Technological Platform XML2Selenium.](https://reader033.fdocuments.us/reader033/viewer/2022051514/549e7560ac795924768b4711/html5/thumbnails/17.jpg)
History: OOP and Page Context
![Page 18: Dzmitry Harachka At SQA Days. Generalization in Auto-Testing. How we put what we had into new Technological Platform XML2Selenium.](https://reader033.fdocuments.us/reader033/viewer/2022051514/549e7560ac795924768b4711/html5/thumbnails/18.jpg)
Evolution
• Utils• Many• Tricky thing to support• Still need something for storing states
• E.g. singleton containers• OOP (Page Object etc.)
• We need context• We need some workflows• We need reporting/advanced logs/video/dynamic
flows
![Page 19: Dzmitry Harachka At SQA Days. Generalization in Auto-Testing. How we put what we had into new Technological Platform XML2Selenium.](https://reader033.fdocuments.us/reader033/viewer/2022051514/549e7560ac795924768b4711/html5/thumbnails/19.jpg)
Evolution: DSL XML
• DSL XML• Context hidden. Applied to Test Case/Test/Frame.
Support hierarchy• Variables are just simple• Reusability• Reporting• Plugin based• Artifacts• Good for TDD/DDT/BDD
![Page 20: Dzmitry Harachka At SQA Days. Generalization in Auto-Testing. How we put what we had into new Technological Platform XML2Selenium.](https://reader033.fdocuments.us/reader033/viewer/2022051514/549e7560ac795924768b4711/html5/thumbnails/20.jpg)
Generalization: polymorphism
• Main thing in OOP is polymorphism• You have a list of different objects• You would like to make some actions at these objects• You would like to add new types of object• You do not want to change something in algorithm• Plugins = OOP/polymorphism + reflection
• When you are developer always think in Polymorphic way• Even factories for test/dummy/mock implementations• Almost all the patterns
• Block schemes are not cancelled in OOP! Please run your algorithm in mind to find bugs in your generalized algorithm
![Page 21: Dzmitry Harachka At SQA Days. Generalization in Auto-Testing. How we put what we had into new Technological Platform XML2Selenium.](https://reader033.fdocuments.us/reader033/viewer/2022051514/549e7560ac795924768b4711/html5/thumbnails/21.jpg)
Contexts
• Great for de-coupling entities• Rights to write and read from contexts• What could and should be stored in context• Good way to expose API of core functionality• You could introduce tree of contexts, one inside another• We could have several existed contexts• Context could have interceptors• Context could have rich nature e.g. sending events/invoke listeners if some
settings set• Nice to organize in flows and apply some rules. E.g. one component would
like to have in a context certain variable. Another component would expose some variables to context and if doesn’t do that it is mistake.
![Page 22: Dzmitry Harachka At SQA Days. Generalization in Auto-Testing. How we put what we had into new Technological Platform XML2Selenium.](https://reader033.fdocuments.us/reader033/viewer/2022051514/549e7560ac795924768b4711/html5/thumbnails/22.jpg)
Context in XML2Selenium
![Page 23: Dzmitry Harachka At SQA Days. Generalization in Auto-Testing. How we put what we had into new Technological Platform XML2Selenium.](https://reader033.fdocuments.us/reader033/viewer/2022051514/549e7560ac795924768b4711/html5/thumbnails/23.jpg)
Plugin development
• OOP • Reflexion• Configuration• Extension points• Core API for plugins• Events subscription• Permissions• Dependencies
• I need full basis then I am happy!• It pushes you to make algorithm of a system really generic• Practice would evolve your system• The same block scheme. Try to run different combination through you
system
![Page 24: Dzmitry Harachka At SQA Days. Generalization in Auto-Testing. How we put what we had into new Technological Platform XML2Selenium.](https://reader033.fdocuments.us/reader033/viewer/2022051514/549e7560ac795924768b4711/html5/thumbnails/24.jpg)
Beginning
![Page 25: Dzmitry Harachka At SQA Days. Generalization in Auto-Testing. How we put what we had into new Technological Platform XML2Selenium.](https://reader033.fdocuments.us/reader033/viewer/2022051514/549e7560ac795924768b4711/html5/thumbnails/25.jpg)
Vertical movements of projects
• Copy pasting• Utility• Class• Library
• Share it• Framework
• Share it
• Good thing when different teams in a company have a way to share projects• Maven + Nexus work in Java
![Page 26: Dzmitry Harachka At SQA Days. Generalization in Auto-Testing. How we put what we had into new Technological Platform XML2Selenium.](https://reader033.fdocuments.us/reader033/viewer/2022051514/549e7560ac795924768b4711/html5/thumbnails/26.jpg)
DDT in XML2Selenium
![Page 27: Dzmitry Harachka At SQA Days. Generalization in Auto-Testing. How we put what we had into new Technological Platform XML2Selenium.](https://reader033.fdocuments.us/reader033/viewer/2022051514/549e7560ac795924768b4711/html5/thumbnails/27.jpg)
JUnit as a running runtime
• Create your own runners• Create your own annotations
![Page 28: Dzmitry Harachka At SQA Days. Generalization in Auto-Testing. How we put what we had into new Technological Platform XML2Selenium.](https://reader033.fdocuments.us/reader033/viewer/2022051514/549e7560ac795924768b4711/html5/thumbnails/28.jpg)
CI for your QA framework
![Page 29: Dzmitry Harachka At SQA Days. Generalization in Auto-Testing. How we put what we had into new Technological Platform XML2Selenium.](https://reader033.fdocuments.us/reader033/viewer/2022051514/549e7560ac795924768b4711/html5/thumbnails/29.jpg)
Use it for testing itself
• Master build• Always green, contains all possible XML
combinations• Smoke Test build
• Not green, allows to have different statuses• Self Testing build
• Uses XML2Selenium tests to test Smoke Test. Out manual tester like this build a lot and motivated to create new tests
• Best Practices build
![Page 30: Dzmitry Harachka At SQA Days. Generalization in Auto-Testing. How we put what we had into new Technological Platform XML2Selenium.](https://reader033.fdocuments.us/reader033/viewer/2022051514/549e7560ac795924768b4711/html5/thumbnails/30.jpg)
Sharing ideas
• Maven and Nexus are good for sharing dependencies, and for dynamical building of class path
• Go for early adoption. Ask you colleagues, customers, friends to check new thing. Do not say to programmers it is trial check. Introduce real customers and real processes
• Apply processes with 100% of seniority • Product owner• Backlog• Iterations• Demos• Manual testers• Scrum board
• Think about open source
![Page 31: Dzmitry Harachka At SQA Days. Generalization in Auto-Testing. How we put what we had into new Technological Platform XML2Selenium.](https://reader033.fdocuments.us/reader033/viewer/2022051514/549e7560ac795924768b4711/html5/thumbnails/31.jpg)
XML2Selenium roles
• Developers of core• Plugin developers• XML2Selenium test developers • XML2Selenium consultants
![Page 32: Dzmitry Harachka At SQA Days. Generalization in Auto-Testing. How we put what we had into new Technological Platform XML2Selenium.](https://reader033.fdocuments.us/reader033/viewer/2022051514/549e7560ac795924768b4711/html5/thumbnails/32.jpg)
Future
• Going into Cloud and SAAS wrapping• Integration with CloudBees• Eclipse Studio to work without XML• XML based debug mode. In WebView to see the
contexts for every line