Top Banner
Generalization in Auto-Testing. How we put what we had into new Technological Platform Dzmitry Harachka, Founder, CEO at
33

Generalization in Auto-Testing. How we put what we had into new Technological Platform XML2Selenium

Apr 13, 2017

Download

Education

SQALab
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Generalization in Auto-Testing. How we put what we had into new Technological Platform XML2Selenium

Generalization in Auto-Testing. How we put what we had into new Technological

Platform Dzmitry Harachka, Founder, CEO at

Page 2: Generalization in Auto-Testing. How we put what we had into new Technological Platform XML2Selenium

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: Generalization in Auto-Testing. How we put what we had into new Technological Platform XML2Selenium

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: Generalization in Auto-Testing. How we put what we had into new Technological Platform XML2Selenium

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: Generalization in Auto-Testing. How we put what we had into new Technological Platform XML2Selenium

First look at XML2Selenium

Page 6: Generalization in Auto-Testing. How we put what we had into new Technological Platform XML2Selenium

XML DSL Language: example1

Page 7: Generalization in Auto-Testing. How we put what we had into new Technological Platform XML2Selenium

XML DSL Language: example2

Page 8: Generalization in Auto-Testing. How we put what we had into new Technological Platform XML2Selenium

More complex test

Page 9: Generalization in Auto-Testing. How we put what we had into new Technological Platform XML2Selenium

Reporting: main table

Page 10: Generalization in Auto-Testing. How we put what we had into new Technological Platform XML2Selenium

Reporting: filtering area

Page 11: Generalization in Auto-Testing. How we put what we had into new Technological Platform XML2Selenium

Reporting: web view

Page 12: Generalization in Auto-Testing. How we put what we had into new Technological Platform XML2Selenium

Reporting: BDD

Page 13: Generalization in Auto-Testing. How we put what we had into new Technological Platform XML2Selenium

History: huge log files

Page 14: Generalization in Auto-Testing. How we put what we had into new Technological Platform XML2Selenium

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: Generalization in Auto-Testing. How we put what we had into new Technological Platform XML2Selenium

History: configuration magic and cross-browser tests. Local and remote modes.

Page 16: Generalization in Auto-Testing. How we put what we had into new Technological Platform XML2Selenium

History: Java stuff applied

Page 17: Generalization in Auto-Testing. How we put what we had into new Technological Platform XML2Selenium

History: OOP and Page Context

Page 18: Generalization in Auto-Testing. How we put what we had into new Technological Platform XML2Selenium

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: Generalization in Auto-Testing. How we put what we had into new Technological Platform XML2Selenium

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: Generalization in Auto-Testing. How we put what we had into new Technological Platform XML2Selenium

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: Generalization in Auto-Testing. How we put what we had into new Technological Platform XML2Selenium

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: Generalization in Auto-Testing. How we put what we had into new Technological Platform XML2Selenium

Context in XML2Selenium

Page 23: Generalization in Auto-Testing. How we put what we had into new Technological Platform XML2Selenium

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: Generalization in Auto-Testing. How we put what we had into new Technological Platform XML2Selenium

Beginning

Page 25: Generalization in Auto-Testing. How we put what we had into new Technological Platform XML2Selenium

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: Generalization in Auto-Testing. How we put what we had into new Technological Platform XML2Selenium

DDT in XML2Selenium

Page 27: Generalization in Auto-Testing. How we put what we had into new Technological Platform XML2Selenium

JUnit as a running runtime• Create your own runners• Create your own annotations

Page 28: Generalization in Auto-Testing. How we put what we had into new Technological Platform XML2Selenium

CI for your QA framework

Page 29: Generalization in Auto-Testing. How we put what we had into new Technological Platform XML2Selenium

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: Generalization in Auto-Testing. How we put what we had into new Technological Platform XML2Selenium

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: Generalization in Auto-Testing. How we put what we had into new Technological Platform XML2Selenium

XML2Selenium roles• Developers of core• Plugin developers• XML2Selenium test developers • XML2Selenium consultants

Page 32: Generalization in Auto-Testing. How we put what we had into new Technological Platform XML2Selenium

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

Page 33: Generalization in Auto-Testing. How we put what we had into new Technological Platform XML2Selenium

Questions?

• Read further at XML2Selenium.com

[email protected]