SlideShare ist ein Scribd-Unternehmen logo
1 von 26
Designing Automation
    Framework for Web
Applications Testing through
            TDD

              • Anatoly Zhukov
               azhukov@ggasoftware.com

              • Yan Alexeenko
               alexeenko@ggasoftware.com
About Us
Anatoly 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 community

Yan 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
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
Presentation Plan

 Objectives

 Development Problems

 Problems Resolving

 Techniques & Technologies

 Object Patterns

 Reporting

 Results


                              4
Our Objectives


            Functional
                           Convenient
                    Fast
     Flexible




            Scale

                                        5
Development Scheme



                      I believe he
                      wants…




                      Manager



           Customer                  Developer
                                                 6
Development Problems




                       7
What’s doing?


                Customer




                           8
In our case



         I know what I
         want…
                         I know how
                         to do it…




                                      9
We want…


   TDD

   Build manager

   Continuous Integration

   Simple Object Pattern

   Simple Result Analysis

                             10
We use…


   Java

   Selenium 2 (aka WebDriver)

   TestNG

   AutoIT



                                 11
Test Driven Development


                                        Write a test that fails


                                               Write a test script code
                                               that can’t be compiled
   Eliminate
   redundancy




                                      Make the code work


The mantra of Test-Driven Development (TDD) is “red, green, refactor”
                                                                      12
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
Object Description



                                    Controls – Links, Buttons,
                                    Inputs, etc.




          Panel – div that contains simple controls




                                                                 14
Object Description




  <div id=“subpanel1_3” class=“…” style=“…”>


            <input id=“pageNumberInput” … >   15
Code of Test


       Singleton

      Panel.get()
           .action() Return Panel
                      instance
           .control
               .controlAction()
           .[action()/control]…;


                                    16
Example
ControlPane.get()
               .open()
               .page.click()
               .fullScreen.click()
               .close();
                           Generic

public class ControlPane extends BasePanel<ControlPane>
…
   public final Button<ControlPane> page =
   new Button<ControlPane>("Name", "Locator", this);
…

                                                     17
Properties for Panels & Controls


            Using Standard Maven Layout
                         &
                  ResourceBundle

                   Properties like

     ControlName = [id/xpath/css]=[locator]



                                              18
Reporting


      Simple & Dynamic Creation

      Style Customization

      Easy for Use
       • Visualization (Levels, Links to source code, Screenshots,

            Asserts and Exceptions)

       • Traceability




                                            HTML                     19
Reporting Process

                             Log File

                        Message 1

 HTML
  CSS                       Message 2
   JS
            jquery.load()
                              Message 3


                                          20
Jenkins Tasks

                Maven Goals & Options
                 -Dtestng_xml=[Config File].xml clean test

                 clean compile -DskipTests javadoc:aggregate




                                                             21
Reporting Example


                    business level

                         component level

                                     technical level




                            asserts


                                                       22
Java Docs




            23
Results


     Convenient test writing framework

    Flexible and extendable system

     Simple and clear reports

     Continuous Integration

     Documented source code

     Satisfied customer



                                          24
Code Lifecycle

                                         Test Script



      Base Functionality for         ?                 ?
                                                           Components
             testing
                                                             ?

             UI testing                                     Controls

    Selenium          Web Driver

                  …


   Unit testing       Web Services


    Reporter              API
                                                                        25
Questions?




             26

Weitere ähnliche Inhalte

Was ist angesagt?

Lanzamiento Visual Studio 2012 - Modern ALM
Lanzamiento Visual Studio 2012 - Modern ALMLanzamiento Visual Studio 2012 - Modern ALM
Lanzamiento Visual Studio 2012 - Modern ALMDebora Di Piano
 
QUALITY ASSURANCE and VALIDATION ENGINEER
QUALITY ASSURANCE and VALIDATION ENGINEER QUALITY ASSURANCE and VALIDATION ENGINEER
QUALITY ASSURANCE and VALIDATION ENGINEER Piyush Prakash
 
2012 student track - vs2010
2012   student track - vs20102012   student track - vs2010
2012 student track - vs2010Tim Mahy
 
ALM for SharePoint projects
ALM for SharePoint projectsALM for SharePoint projects
ALM for SharePoint projectsSpiffy
 
Software Factory - Overview
Software Factory - OverviewSoftware Factory - Overview
Software Factory - Overviewslides_teltools
 
Alliance Successful Selenium Automation
Alliance Successful Selenium AutomationAlliance Successful Selenium Automation
Alliance Successful Selenium Automationsadams22
 
OOW 09 EBS Application Change Management Pack
OOW 09 EBS Application Change Management PackOOW 09 EBS Application Change Management Pack
OOW 09 EBS Application Change Management Packjucaab
 
A Software Factory Integrating Rational Team Concert and WebSphere tools
A Software Factory Integrating Rational Team Concert and WebSphere toolsA Software Factory Integrating Rational Team Concert and WebSphere tools
A Software Factory Integrating Rational Team Concert and WebSphere toolsProlifics
 
Alm briefing keynote
Alm briefing keynoteAlm briefing keynote
Alm briefing keynoteSpiffy
 

Was ist angesagt? (10)

Software testing
Software testingSoftware testing
Software testing
 
Lanzamiento Visual Studio 2012 - Modern ALM
Lanzamiento Visual Studio 2012 - Modern ALMLanzamiento Visual Studio 2012 - Modern ALM
Lanzamiento Visual Studio 2012 - Modern ALM
 
QUALITY ASSURANCE and VALIDATION ENGINEER
QUALITY ASSURANCE and VALIDATION ENGINEER QUALITY ASSURANCE and VALIDATION ENGINEER
QUALITY ASSURANCE and VALIDATION ENGINEER
 
2012 student track - vs2010
2012   student track - vs20102012   student track - vs2010
2012 student track - vs2010
 
ALM for SharePoint projects
ALM for SharePoint projectsALM for SharePoint projects
ALM for SharePoint projects
 
Software Factory - Overview
Software Factory - OverviewSoftware Factory - Overview
Software Factory - Overview
 
Alliance Successful Selenium Automation
Alliance Successful Selenium AutomationAlliance Successful Selenium Automation
Alliance Successful Selenium Automation
 
OOW 09 EBS Application Change Management Pack
OOW 09 EBS Application Change Management PackOOW 09 EBS Application Change Management Pack
OOW 09 EBS Application Change Management Pack
 
A Software Factory Integrating Rational Team Concert and WebSphere tools
A Software Factory Integrating Rational Team Concert and WebSphere toolsA Software Factory Integrating Rational Team Concert and WebSphere tools
A Software Factory Integrating Rational Team Concert and WebSphere tools
 
Alm briefing keynote
Alm briefing keynoteAlm briefing keynote
Alm briefing keynote
 

Ähnlich wie Selenium Camp 2012

Design For Testability
Design For TestabilityDesign For Testability
Design For TestabilityWill Iverson
 
Behavior Driven Development by Example
Behavior Driven Development by ExampleBehavior Driven Development by Example
Behavior Driven Development by ExampleNalin Goonawardana
 
Software Quality Plan
Software Quality PlanSoftware Quality Plan
Software Quality Planguy_davis
 
Chef for DevOps - an Introduction
Chef for DevOps - an IntroductionChef for DevOps - an Introduction
Chef for DevOps - an IntroductionSanjeev Sharma
 
Agile Testing at eBay
Agile Testing at eBayAgile Testing at eBay
Agile Testing at eBayDominik Dary
 
Code review automation and functional tests on Carrefour
Code review automation and functional tests on CarrefourCode review automation and functional tests on Carrefour
Code review automation and functional tests on CarrefourDenis Santos
 
Visual Studio 2010 Testing Overview
Visual Studio 2010 Testing OverviewVisual Studio 2010 Testing Overview
Visual Studio 2010 Testing OverviewSteve Lange
 
TDD in functional testing with WebDriver
TDD in functional testing with WebDriverTDD in functional testing with WebDriver
TDD in functional testing with WebDriverMikalai Alimenkou
 
Sqp 090508084934 Phpapp02
Sqp 090508084934 Phpapp02Sqp 090508084934 Phpapp02
Sqp 090508084934 Phpapp02sivavis
 
Introducing Obsidian Software and RAVEN-GCS for PowerPC
Introducing Obsidian Software and RAVEN-GCS for PowerPCIntroducing Obsidian Software and RAVEN-GCS for PowerPC
Introducing Obsidian Software and RAVEN-GCS for PowerPCDVClub
 
Codesion's Live Webinar: Cutting Edge Cloud Development Tools for Force.com
Codesion's Live Webinar: Cutting Edge Cloud Development Tools for Force.comCodesion's Live Webinar: Cutting Edge Cloud Development Tools for Force.com
Codesion's Live Webinar: Cutting Edge Cloud Development Tools for Force.comCollabNet
 
Agile Open Source Performance Test Workshop for Developers, Testers, IT Ops
Agile Open Source Performance Test Workshop for Developers, Testers, IT OpsAgile Open Source Performance Test Workshop for Developers, Testers, IT Ops
Agile Open Source Performance Test Workshop for Developers, Testers, IT OpsClever Moe
 
Continuous delivery with Jenkins Enterprise and Deployit
Continuous delivery with Jenkins Enterprise and DeployitContinuous delivery with Jenkins Enterprise and Deployit
Continuous delivery with Jenkins Enterprise and DeployitXebiaLabs
 
Mobile DevOps - Trends and Chellenges
Mobile DevOps - Trends and ChellengesMobile DevOps - Trends and Chellenges
Mobile DevOps - Trends and ChellengesSanjeev Sharma
 
No More No Repro
No More No ReproNo More No Repro
No More No ReproAnna Russo
 
DevOps for Mainframe for IBM Pulse Conference
DevOps for Mainframe for IBM Pulse ConferenceDevOps for Mainframe for IBM Pulse Conference
DevOps for Mainframe for IBM Pulse ConferenceRosalind Radcliffe
 
Bridging the gap between pre-production testing and production monitoring
Bridging the gap between pre-production testing and production monitoringBridging the gap between pre-production testing and production monitoring
Bridging the gap between pre-production testing and production monitoringfsyed
 

Ähnlich wie Selenium Camp 2012 (20)

Coding Naked
Coding NakedCoding Naked
Coding Naked
 
Testing In Java
Testing In JavaTesting In Java
Testing In Java
 
Design For Testability
Design For TestabilityDesign For Testability
Design For Testability
 
Behavior Driven Development by Example
Behavior Driven Development by ExampleBehavior Driven Development by Example
Behavior Driven Development by Example
 
Software Quality Plan
Software Quality PlanSoftware Quality Plan
Software Quality Plan
 
Chef for DevOps - an Introduction
Chef for DevOps - an IntroductionChef for DevOps - an Introduction
Chef for DevOps - an Introduction
 
Agile Testing at eBay
Agile Testing at eBayAgile Testing at eBay
Agile Testing at eBay
 
ITS-Fidel
ITS-FidelITS-Fidel
ITS-Fidel
 
Code review automation and functional tests on Carrefour
Code review automation and functional tests on CarrefourCode review automation and functional tests on Carrefour
Code review automation and functional tests on Carrefour
 
Visual Studio 2010 Testing Overview
Visual Studio 2010 Testing OverviewVisual Studio 2010 Testing Overview
Visual Studio 2010 Testing Overview
 
TDD in functional testing with WebDriver
TDD in functional testing with WebDriverTDD in functional testing with WebDriver
TDD in functional testing with WebDriver
 
Sqp 090508084934 Phpapp02
Sqp 090508084934 Phpapp02Sqp 090508084934 Phpapp02
Sqp 090508084934 Phpapp02
 
Introducing Obsidian Software and RAVEN-GCS for PowerPC
Introducing Obsidian Software and RAVEN-GCS for PowerPCIntroducing Obsidian Software and RAVEN-GCS for PowerPC
Introducing Obsidian Software and RAVEN-GCS for PowerPC
 
Codesion's Live Webinar: Cutting Edge Cloud Development Tools for Force.com
Codesion's Live Webinar: Cutting Edge Cloud Development Tools for Force.comCodesion's Live Webinar: Cutting Edge Cloud Development Tools for Force.com
Codesion's Live Webinar: Cutting Edge Cloud Development Tools for Force.com
 
Agile Open Source Performance Test Workshop for Developers, Testers, IT Ops
Agile Open Source Performance Test Workshop for Developers, Testers, IT OpsAgile Open Source Performance Test Workshop for Developers, Testers, IT Ops
Agile Open Source Performance Test Workshop for Developers, Testers, IT Ops
 
Continuous delivery with Jenkins Enterprise and Deployit
Continuous delivery with Jenkins Enterprise and DeployitContinuous delivery with Jenkins Enterprise and Deployit
Continuous delivery with Jenkins Enterprise and Deployit
 
Mobile DevOps - Trends and Chellenges
Mobile DevOps - Trends and ChellengesMobile DevOps - Trends and Chellenges
Mobile DevOps - Trends and Chellenges
 
No More No Repro
No More No ReproNo More No Repro
No More No Repro
 
DevOps for Mainframe for IBM Pulse Conference
DevOps for Mainframe for IBM Pulse ConferenceDevOps for Mainframe for IBM Pulse Conference
DevOps for Mainframe for IBM Pulse Conference
 
Bridging the gap between pre-production testing and production monitoring
Bridging the gap between pre-production testing and production monitoringBridging the gap between pre-production testing and production monitoring
Bridging the gap between pre-production testing and production monitoring
 

Kürzlich hochgeladen

Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 

Kürzlich hochgeladen (20)

Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 

Selenium Camp 2012

  • 1. Designing Automation Framework for Web Applications Testing through TDD • Anatoly Zhukov azhukov@ggasoftware.com • Yan Alexeenko alexeenko@ggasoftware.com
  • 2. About Us Anatoly 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 community Yan 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
  • 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 work The 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. Example ControlPane.get() .open() .page.click() .fullScreen.click() .close(); Generic public 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