Designing Automation    Framework for WebApplications Testing through            TDD              • Anatoly Zhukov        ...
About UsAnatoly Zhukov - Senior QA Engineer.  •   3+ years of experience  •   Expert in desktop/web manual/automation test...
About GGA Software Services                                200-Person Software Engineering Team:         Software        ...
Presentation Plan Objectives Development Problems Problems Resolving Techniques & Technologies Object Patterns Repor...
Our Objectives            Functional                           Convenient                    Fast     Flexible            ...
Development Scheme                      I believe he                      wants…                      Manager           Cu...
Development Problems                       7
What’s doing?                Customer                           8
In our case         I know what I         want…                         I know how                         to do it…      ...
We want…   TDD   Build manager   Continuous Integration   Simple Object Pattern   Simple Result Analysis             ...
We use…   Java   Selenium 2 (aka WebDriver)   TestNG   AutoIT                                 11
Test Driven Development                                        Write a test that fails                                    ...
Maven Maven is a software project management and  comprehension tool Maven is a site and documentation tool Maven exten...
Object Description                                    Controls – Links, Buttons,                                    Inputs...
Object Description  <div id=“subpanel1_3” class=“…” style=“…”>            <input id=“pageNumberInput” … >   15
Code of Test       Singleton      Panel.get()           .action() Return Panel                      instance           .co...
ExampleControlPane.get()               .open()               .page.click()               .fullScreen.click()              ...
Properties for Panels & Controls            Using Standard Maven Layout                         &                  Resourc...
Reporting      Simple & Dynamic Creation      Style Customization      Easy for Use       • Visualization (Levels, Link...
Reporting Process                             Log File                        Message 1 HTML  CSS                       Me...
Jenkins Tasks                Maven Goals & Options                 -Dtestng_xml=[Config File].xml clean test              ...
Reporting Example                    business level                         component level                               ...
Java Docs            23
Results     Convenient test writing framework    Flexible and extendable system     Simple and clear reports     Conti...
Code Lifecycle                                         Test Script      Base Functionality for         ?                 ?...
Questions?             26
Upcoming SlideShare
Loading in …5
×

Selenium Camp 2012

1,227 views

Published on

Designing Automation Framework for Web Applications Testing through TDD

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,227
On SlideShare
0
From Embeds
0
Number of Embeds
527
Actions
Shares
0
Downloads
14
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Selenium Camp 2012

  1. 1. Designing Automation Framework for WebApplications Testing through TDD • Anatoly Zhukov azhukov@ggasoftware.com • Yan Alexeenko alexeenko@ggasoftware.com
  2. 2. About UsAnatoly Zhukov - Senior QA Engineer. • 3+ years of experience • Expert in desktop/web manual/automation testing • Expert in performance testing • Test framework developer • Active participation in software-testing.ru communityYan Alexeenko - Senior QA Engineer • 4+ years of experience • Expert in desktop/web manual/automation testing • Expert in performance testing • Expert in testing of signal processing algorithms • Test framework developer 2
  3. 3. About GGA Software Services  200-Person Software Engineering Team: Software • Business Analysis Data • System Design • Software Engineering Science Support • Software Testing • Documentation • Training Quality Assured • Project Management • Independent team for testing • Quality Assurance and quality assurance • 70 professionally trained quality GGA’s high-throughput engineers screening application • Domain experts in scientific won a global disciplines and software/IT innovation award at a technical skills leading pharmaceutical • QA services available to assist company. client’s internal development 3 teams
  4. 4. Presentation Plan Objectives Development Problems Problems Resolving Techniques & Technologies Object Patterns Reporting Results 4
  5. 5. Our Objectives Functional Convenient Fast Flexible Scale 5
  6. 6. Development Scheme I believe he wants… Manager Customer Developer 6
  7. 7. Development Problems 7
  8. 8. What’s doing? Customer 8
  9. 9. In our case I know what I want… I know how to do it… 9
  10. 10. We want…  TDD  Build manager  Continuous Integration  Simple Object Pattern  Simple Result Analysis 10
  11. 11. We use…  Java  Selenium 2 (aka WebDriver)  TestNG  AutoIT 11
  12. 12. Test Driven Development Write a test that fails Write a test script code that can’t be compiled Eliminate redundancy Make the code workThe mantra of Test-Driven Development (TDD) is “red, green, refactor” 12
  13. 13. Maven Maven is a software project management and comprehension tool Maven is a site and documentation tool Maven extends Ant to let you download dependencies Maven is a set of reusable Ant scripts What is wrong with Maven? – Access to repository. 13
  14. 14. Object Description Controls – Links, Buttons, Inputs, etc. Panel – div that contains simple controls 14
  15. 15. Object Description <div id=“subpanel1_3” class=“…” style=“…”> <input id=“pageNumberInput” … > 15
  16. 16. Code of Test Singleton Panel.get() .action() Return Panel instance .control .controlAction() .[action()/control]…; 16
  17. 17. ExampleControlPane.get() .open() .page.click() .fullScreen.click() .close(); Genericpublic class ControlPane extends BasePanel<ControlPane>… public final Button<ControlPane> page = new Button<ControlPane>("Name", "Locator", this);… 17
  18. 18. Properties for Panels & Controls Using Standard Maven Layout & ResourceBundle Properties like ControlName = [id/xpath/css]=[locator] 18
  19. 19. Reporting  Simple & Dynamic Creation  Style Customization  Easy for Use • Visualization (Levels, Links to source code, Screenshots, Asserts and Exceptions) • Traceability HTML 19
  20. 20. Reporting Process Log File Message 1 HTML CSS Message 2 JS jquery.load() Message 3 20
  21. 21. Jenkins Tasks Maven Goals & Options -Dtestng_xml=[Config File].xml clean test clean compile -DskipTests javadoc:aggregate 21
  22. 22. Reporting Example business level component level technical level asserts 22
  23. 23. Java Docs 23
  24. 24. Results  Convenient test writing framework Flexible and extendable system  Simple and clear reports  Continuous Integration  Documented source code  Satisfied customer 24
  25. 25. Code Lifecycle Test Script Base Functionality for ? ? Components testing ? UI testing Controls Selenium Web Driver … Unit testing Web Services Reporter API 25
  26. 26. Questions? 26

×