Selenium Camp 2012

  • 951 views
Uploaded on

Designing Automation Framework for Web Applications Testing through TDD

Designing Automation Framework for Web Applications Testing through TDD

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
951
On Slideshare
0
From Embeds
0
Number of Embeds
2

Actions

Shares
Downloads
14
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Designing Automation Framework for WebApplications Testing through TDD • Anatoly Zhukov azhukov@ggasoftware.com • Yan Alexeenko alexeenko@ggasoftware.com
  • 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. 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. Presentation Plan Objectives Development Problems Problems Resolving Techniques & Technologies Object Patterns Reporting Results 4
  • 5. Our Objectives Functional Convenient Fast Flexible Scale 5
  • 6. Development Scheme I believe he wants… Manager Customer Developer 6
  • 7. Development Problems 7
  • 8. What’s doing? Customer 8
  • 9. In our case I know what I want… I know how to do it… 9
  • 10. We want…  TDD  Build manager  Continuous Integration  Simple Object Pattern  Simple Result Analysis 10
  • 11. We use…  Java  Selenium 2 (aka WebDriver)  TestNG  AutoIT 11
  • 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. 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. Object Description Controls – Links, Buttons, Inputs, etc. Panel – div that contains simple controls 14
  • 15. Object Description <div id=“subpanel1_3” class=“…” style=“…”> <input id=“pageNumberInput” … > 15
  • 16. Code of Test Singleton Panel.get() .action() Return Panel instance .control .controlAction() .[action()/control]…; 16
  • 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. Properties for Panels & Controls Using Standard Maven Layout & ResourceBundle Properties like ControlName = [id/xpath/css]=[locator] 18
  • 19. Reporting  Simple & Dynamic Creation  Style Customization  Easy for Use • Visualization (Levels, Links to source code, Screenshots, Asserts and Exceptions) • Traceability HTML 19
  • 20. Reporting Process Log File Message 1 HTML CSS Message 2 JS jquery.load() Message 3 20
  • 21. Jenkins Tasks Maven Goals & Options -Dtestng_xml=[Config File].xml clean test clean compile -DskipTests javadoc:aggregate 21
  • 22. Reporting Example business level component level technical level asserts 22
  • 23. Java Docs 23
  • 24. Results  Convenient test writing framework Flexible and extendable system  Simple and clear reports  Continuous Integration  Documented source code  Satisfied customer 24
  • 25. Code Lifecycle Test Script Base Functionality for ? ? Components testing ? UI testing Controls Selenium Web Driver … Unit testing Web Services Reporter API 25
  • 26. Questions? 26