SlideShare une entreprise Scribd logo
1  sur  54
Télécharger pour lire hors ligne
Automation Test Framework
  Continue Improvement




               Welcome Presentation
          Presented by Christina Geng
AGENDA

❶ Case Introduction
❷ Testing Strategy Evolution
❸ Case ROI Analysis
❹ Success factor
❺ Revelation
CASE INTRODUCTION

Title:   7 Times Evolution of Test Automation Framework under JS
Product for Efficiency Improvement



Target:

   ❶ Build a robust test automation framework
   ❷ Manage test cases efficiently
   ❸ Reduce test case running time and maintenance cost
   ❹ Shared framework under scrum development
WHO AND WHAT?




Data        Analysis                                  Visualization

        •   reporting, online analytical processing
        •   analytics
        •   data mining
        •   process mining
        •   event processing
        •   business performance management
        •   benchmarking
        •   text mining
        •   predictive analytics
WHO AND WHAT?




Data                               Analysis                                             Visualization

                                 • reporting, online analytical processing                        Programming language:
                                                                                                            Javascript/Java
                                 • analytics
                                 • data mining                                                             Provide service:
                                 • process mining provides various type of visualization objects that can be used in
  The Visualization Service is a software module which
                                 • event processing applications on different platforms (Web, Mobile and Desktop).
                                                 different
                                 • business performance management
                      • A basic
                                 • visual component like chart (Bar, Column Pie, Line, etc ), Geo Map, Visualizationor Grid.
                                      benchmarking                                                     Gauge, Table
                                                                                                                     types:
                                 • text mining• An advanced visual component like (Tree map, Candlestick, Tagcloud)
                                 • predictive analytics • Above visual component with interactions and animations
• Combination of multiple visual components, it could be composed by same type of visual components or different type
                                                                                                      of component.
AGENDA

❶ Case Introduction
❷ Testing Strategy Evolution
❸ Case ROI Analysis
❹ Success factor
❺ Revelation
What’s more…
 2012.12




                          Developer environment
2012.09 2012.10




                          Full Automation
                          Test Link
2011.12 2012.03 2012.06




                          Jenkins
                          Data Driven
                          Selenium
 2011.6
                          We have it!
VERSION-1




TC: test page
Scheduler: ASTEC
Test tool: SilkTest
TC Management: Excel

                       Test
                       page




       SilkTest
VERSION-1



1.
     +
     First automation framework setup
                                         -                      writing test case

2.   Overview functional test case
     coverage
3.   Reduce testing overlap for shared
     component
                                                    HT
                                            Test
                                             Test   ML
                                            page
                                             page




                                                                         resource



         SilkTest                                                maintenance
                                         the relation between TC and record
What’s more…
 2012.12




                          Developer environment
2012.09 2012.10




                          Full Automation
                          Test Link
2011.12 2012.03 2012.06




                          Jenkins
                          Data Driven
                          Selenium
 2011.6
                          We have it!
VERSION-2
Scheduler: ASTEC
TC Management: Excel/XML (test manager)
TC: test page
Test tool: Selenium Test Driver


Other tools
• Auto generate test plan from Excel to xml
                                              DIV   DIV
• Test Manager                                   Test
                                              DIV
                                                 page
                                                    DIV




    Selenium
VERSION-2

+
1.   Reduce test pages
                                                    -                         test driver


2.   Reduce resource running cost
3.   Test steps turns to be keyword driven in xml                                case unit
4.   Write test case in .xls, auto generate .xml
                                                    DIV
                                                    DIV     DIV
                                                            DIV
                                                       Test
                                                        Test
                                                    DIV
                                                    DIV
                                                       page
                                                       page
                                                           DIV
                                                           DIV




      Selenium
                                                                     test data redundancy
                                                    test case sync
What’s more…
  2012.12




                          Developer environment
2012.09 2012.10




                          Full Automation
                          Test Link
2011.12 2012.03 2012.06




                          Jenkins
                          Data Driven
                          Selenium
  2011.6
                          We have it!
VERSION-3
                                            Unified Test Driver




Abstract Test Data


                     And How?
                                               Wrapper API

                      Eliminate Test Page
VERSION-3
            backgroud
                   color
                  visible
                legend
                 position
          verticalOffset
        horizontalOffset
                  visible
               labelFont
              labelColor
           formatString     initChartsByProperties([['layout.padding',[50,50,50,50]],['legend.visible',false]]);
                 layout
                padding
                tooltip
                 enable
          customization
                   text
             mainValue
               subValue
                   title
               main sub
          Selectability
                   mode
             deSelectale
    defaultSelectedItems
           xAxisMember
           yAxisMember
                    bar
         barMarkerSize
       measureMember
                                                                                              Wrapper API
VERSION-3
            backgroud
                   color
                  visible
                legend
                 position
          verticalOffset
        horizontalOffset
                  visible
               labelFont
              labelColor
           formatString     initChartsByProperties([['layout.padding',[50,50,50,50]],['legend.visible',false]]);
                 layout
                padding
                tooltip
                 enable     updateChartsByProperties([['layout.padding',[50,50,50,50]],['legend.visible',false]]);
          customization
                   text
             mainValue
               subValue
                   title
               main sub
          Selectability
                   mode
             deSelectale
    defaultSelectedItems
           xAxisMember
           yAxisMember
                    bar
         barMarkerSize
       measureMember
                                                                                              Wrapper API
VERSION-3
            backgroud
                   color
                  visible
                legend
                 position
          verticalOffset
        horizontalOffset    testUtil.generateChart(viz/line; TestData.a1a1m1m1)
                  visible
               labelFont
              labelColor
           formatString     initChartsByProperties([['layout.padding',[50,50,50,50]],['legend.visible',false]]);
                 layout
                padding
                tooltip
                 enable     updateChartsByProperties([['layout.padding',[50,50,50,50]],['legend.visible',false]]);
          customization
                   text
             mainValue
               subValue
                   title
               main sub
          Selectability
                   mode
             deSelectale
    defaultSelectedItems
           xAxisMember
           yAxisMember
                    bar
         barMarkerSize
       measureMember
                                                                                              Wrapper API
VERSION-3
            backgroud
                   color
                  visible
                legend
                 position
          verticalOffset
        horizontalOffset
                  visible
               labelFont
              labelColor
           formatString     testUtil.generateChart(viz/line; TestData.a1a1m1m1; ['legend.visible',false])
                            initChartsByProperties([['layout.padding',[50,50,50,50]],['legend.visible',false]]);
                 layout
                padding
                tooltip
                 enable
          customization
                   text
             mainValue
               subValue
                   title
               main sub
          Selectability
                   mode
             deSelectale
    defaultSelectedItems
           xAxisMember
           yAxisMember
                    bar
         barMarkerSize
       measureMember
                                                                                              Wrapper API
VERSION-3
            testUtil.generateChart(viz/line; TestData.a1a1m1m1; ['legend.visible',false])




                                               public
    mySQL




                                                                      private


            testUtil.generateChart(viz/line; TestData.a1a1m1m1; legendVisibleTrue)




                                                                     Abstract Test Data
VERSION-3




            Eliminate Test Page
VERSION-3
        selenium1




        selenium2
                    {StartBrowser}
                    IE, Chrome, Firefox (selenium2)

                    RemoteWebDriver webDriver = null;

                    webDriver = new FirefoxDriver();
   ImageComparer



          Robot()




                                                        Unified Test Driver
VERSION-3
        selenium1



                    {StartBrowser}
                    Safari (selenium1)
        selenium2   SeleniumServer seleniumServer = new SeleniumServer();

                    seleniumServer.boot();

                    selenium = new DefaultSelenium("localhost", 4444, "*safariproxy "+
                    safariLocation,urlRoot);
   ImageComparer    CommandExecutor executor = new SeleneseCommandExecutor(selenium);

                    DesiredCapabilities dc = new DesiredCapabilities();
          Robot()
                    webDriver = new RemoteWebDriver(executor, dc);




                                                                     Unified Test Driver
VERSION-3
        selenium1




        selenium2   {TakeSnapshot}
                    Point p = this.getElementOffset(targetElement);

                    Dimension d = this.getElementSize(targetElement);

                    BufferedImage bi = new Robot().createScreenCapture(p.x, p.y, d.width, d.height);
   ImageComparer



          Robot()




                                                                        Unified Test Driver
VERSION-3
        selenium1




        selenium2   {FileCompare}
                    cmd.exe ImageComparer.exe –file filepath1 filepath2 – threshhold 100




   ImageComparer



          Robot()




                                                                      Unified Test Driver
What’s more…
  2012.12




                          Developer environment
2012.09 2012.10




                          Headless
                          Test Link
2011.12 2012.03 2012.06




                          Full Automation
                          Data Driven
                          Selenium
  2011.6
                          We have it!
VERSION-4


            Table                 Text

  Tooltip            Selection             Animation

            Button                Scroll                CSS

 Checkbox             Hover                 Theme

             Link                Gesture
                                 Gesture               Upload

                     Dropdown              Download
VERSION-4




            Selection
VERSION-4




            Gesture
VERSION-4
var eventObj = {
             type : originalEvent.type,
             timeStamp : originalEvent.timeStamp,
             pageX : originalEvent.pageX,
             pageY : originalEvent.pageY
          };
eventRecord.push(eventObj);


var handler = function(event){
             var clickEvt = document.createEvent('MouseEvents');
             clickEvt.initMouseEvent(event.type, event.pageX, event.pageY…);
             d3.select('.main .plot')[0][0].dispatchEvent(clickEvt)
         };

testAPI_lasso_heatmap = [
    {"type":"mouseover","timeStamp":1348739963751,"pageX":126,"pageY":94},
    {"type":"mouseover","timeStamp":1348739963751,"pageX":485,"pageY":94},
    {"type":"mousemove","timeStamp":1348739963766,"pageX":485,"pageY":208},
    {"type":"mousemove","timeStamp":1348739963773,"pageX":126,"pageY":208}
]
What’s more…
   2012.12




                           Developer environment
2012.09 2012.10




                           Headless
                           Test Link, Jenkins
 2011.12 2012.03 2012.06




                           Full Automation
                           Data Driven
                           Selenium
   2011.6
                           We have it!
VERSION-5




            How to arrange test case?
VERSION-5

                              TC (.xls/.xml)
                     import


     Test
     Link
            export
                              Executable TP

                     save     Result log
VERSION-5




 Continuous Integration
VERSION-5

                                    .xml               TC mngmt
                                     .xls
                                                      Test Case Pool
                                                  Manual          Auto


                                            3. Build info                5. result write back
                                                            4. get test plan
                     2.TP/Platform/build info                                                     Test Driver
   CI Server                                            Test Executor
                        5. result log                                                     Selenium2     Java/C++

        1. Trigger
                                                                  4. get assets

                     libs                         resources
 Build Machine                Web Server                            Code repository




                                                                                                Where we are.
VERSION-5

                                    .xml               TC mngmt
                                     .xls

                                            Test Link Test Case Pool
                                                  Manual          Auto


                                            3. Build info                5. result write back
                                                            4. get test plan
                     2.TP/Platform/build info                                                     Test Driver
   CI Server
                        5. result log
                                                                 Java Tool
                                                        Test Executor
                                                                                          Selenium2     Java/C++

    Jenkins
        1. Trigger
                                                                  4. get assets

                     libs                         resources
 Build Machine                Web Server                            Code repository
                                                    Perforce
                                                                                                Where we are.
What’s more…
   2012.12




                           Developer environment
2012.09 2012.10




                           Headless
                           Test Link, Jenkins
 2011.12 2012.03 2012.06




                           Full Automation
                           Data Driven
                           Selenium
   2011.6
                           We have it!
Engineering
VERSION-6



                              Paint




               Layout                 Display




PhantomJS (Headless Webkit)             http://phantomjs.org
VERSION-6
                    config
                                           Browser?




                              CasperJS            IE/Safari/FF/Chrome


TP   Read JS list                                      Open browser


                        PhantomJS:                    RunJS (test step)
                        1. open webkit
                        2. runJS
                                                            ….
                        3. Take snapshot
                        4. close                       Take Snapshot


                                                      Result validation

                                  not complete                            not complete
                                                       Save result log


                                                         Reporting
                                                                           Test driver inner logic
And that’s   OK
What’s more…
2012.12




                           Developer environment
2012.09 2012.10




                           Headless
                           Test Link, Jenkins
 2011.12 2012.03 2012.06




                           Full Automation
                           Data Driven
                           Selenium
   2011.6
                           We have it!
VERSION-7



                                  .java    TC Management


                                            Test Case Pool


                                           local

             CI Server                      Test Executor
                                                                       Test Driver

                                                                Selenium2            Java/C++
                           per check-in
                 trigger
result log
                                                      sync up       Casper/PhantomJS

       Build Machine
                           get resources      P4 server
       Test Executor
VERSION-7



                                  .java    TC Management


                                            Test Case Pool




             CI Server
                                               Eclipse Plug-in
                                            local

                                            Test Executor
                                                                       Test Driver

                                                                Selenium2            Java/C++
                           per check-in
                 trigger
result log
              Jenkins
       Build Machine
                                                      sync up       Casper/PhantomJS



                           get resources       P4 server
       Test Executor
                                           Perforce
AGENDA

❶ Case Introduction
❷ Testing Strategy Evolution
❸ Case ROI Analysis
❹ Success factor
❺ Revelation
CASE ROI ANALYSIS

 Functional Test: BAT (nightly), FA
                            1)   Test machine
                            2)   Assets (util, BM…)
 1. Set up environment      3)   TP
                            4)   Libs

 2. Test case execution     1)   Browser compatibility



                                                            4.5h
                            2)   Run in headless

                            1)   Email sending
 3. Test result reporting   2)   Sonar integrated with CI

                            1)   BM update
 4. Maintenance             2)   TC management




 1000+ cases
CASE ROI ANALYSIS

 Functional Test: BAT (nightly), FA
                            1)   Test machine
                            2)   Assets (util, BM…)
 1. Set up environment      3)   TP
                            4)   Libs

 2. Test case execution     1)   Browser compatibility



                                                            47min
                            2)   Run in headless

                            1)   Email sending
 3. Test result reporting   2)   Sonar integrated with CI

                            1)   BM update
 4. Maintenance             2)   TC management




 1000+ cases
AGENDA

❶ Case Introduction
❷ Testing Strategy Evolution
❸ Case ROI Analysis
❹ Success factor
❺ Revelation
SUCCESS FACTOR     ❶ ❷❸❹




           Focus
SUCCESS FACTOR      ❶ ❷❸❹




        Team work
SUCCESS FACTOR   ❶ ❷❸❹




Continuous Improvement
SUCCESS FACTOR       ❶ ❷❸❹




        Learn 360°
AGENDA

❶ Case Introduction
❷ Testing Strategy Evolution
❸ Case ROI Analysis
❹ Success factor
❺ Revelation
OUR REVELATION




不被传统的测试方法束缚;从产品用到的技术找到突破;持续改进的思想;不断尝试的理念
CONTRIBUTOR
      Xiaolu, Ye
   Christina, Geng
    Helen, Jiang
     Chen, Zhou
    Peipei, Jiang
      Coco, Dai
    Grace, Zhao
    Minghao, Lu
    Kent, Wang
     Izzie, Wang
       Phil, Xu




NO
THE END
  SUPPORTED FROM
     Daoyu, Wei
       Li, Zhao
     Jimmy, Yang
      Alex, Feng
       Alex, Su
       Jiwei, Li
           ... …
                     Email: Christina.Geng@sap.com
                     Sina Weibo: 耿晓儿de测试

Contenu connexe

Tendances

The Web Development Eco-system with VSTS, ASP.NET 2.0 & Microsoft Ajax
The Web Development Eco-system with VSTS, ASP.NET 2.0 & Microsoft AjaxThe Web Development Eco-system with VSTS, ASP.NET 2.0 & Microsoft Ajax
The Web Development Eco-system with VSTS, ASP.NET 2.0 & Microsoft Ajax
Darren Sim
 
Chris meyer gl wand - financial reporting in excel
Chris meyer   gl wand - financial reporting in excelChris meyer   gl wand - financial reporting in excel
Chris meyer gl wand - financial reporting in excel
Berry Clemens
 
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
jucaab
 
SHOW107: The DataSource Session: Take XPages data boldly where no XPages data...
SHOW107: The DataSource Session: Take XPages data boldly where no XPages data...SHOW107: The DataSource Session: Take XPages data boldly where no XPages data...
SHOW107: The DataSource Session: Take XPages data boldly where no XPages data...
Stephan H. Wissel
 

Tendances (20)

Quality Assurance in a DevOps World
Quality Assurance in a DevOps WorldQuality Assurance in a DevOps World
Quality Assurance in a DevOps World
 
SharePoint 2010 as a Development Platform
SharePoint 2010 as a Development PlatformSharePoint 2010 as a Development Platform
SharePoint 2010 as a Development Platform
 
Integration testing in enterprises using TaaS (Test as a Service)
Integration testing in enterprises using TaaS (Test as a Service)Integration testing in enterprises using TaaS (Test as a Service)
Integration testing in enterprises using TaaS (Test as a Service)
 
Unit 07: Design Patterns and Frameworks (1/3)
Unit 07: Design Patterns and Frameworks (1/3)Unit 07: Design Patterns and Frameworks (1/3)
Unit 07: Design Patterns and Frameworks (1/3)
 
Unit 01 - Introduction
Unit 01 - IntroductionUnit 01 - Introduction
Unit 01 - Introduction
 
01.egovFrame Training Book II
01.egovFrame Training Book II01.egovFrame Training Book II
01.egovFrame Training Book II
 
PowerPoint Presentation
PowerPoint PresentationPowerPoint Presentation
PowerPoint Presentation
 
SEALS @ WWW2012
SEALS @ WWW2012SEALS @ WWW2012
SEALS @ WWW2012
 
The Web Development Eco-system with VSTS, ASP.NET 2.0 & Microsoft Ajax
The Web Development Eco-system with VSTS, ASP.NET 2.0 & Microsoft AjaxThe Web Development Eco-system with VSTS, ASP.NET 2.0 & Microsoft Ajax
The Web Development Eco-system with VSTS, ASP.NET 2.0 & Microsoft Ajax
 
Chris meyer gl wand - financial reporting in excel
Chris meyer   gl wand - financial reporting in excelChris meyer   gl wand - financial reporting in excel
Chris meyer gl wand - financial reporting in excel
 
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
 
(ATS3-APP14) Troubleshooting Symyx Notebook client performance
(ATS3-APP14) Troubleshooting Symyx Notebook client performance(ATS3-APP14) Troubleshooting Symyx Notebook client performance
(ATS3-APP14) Troubleshooting Symyx Notebook client performance
 
02.egovFrame Development Environment workshop I
02.egovFrame  Development Environment workshop I02.egovFrame  Development Environment workshop I
02.egovFrame Development Environment workshop I
 
Unit 07: Design Patterns and Frameworks (2/3)
Unit 07: Design Patterns and Frameworks (2/3)Unit 07: Design Patterns and Frameworks (2/3)
Unit 07: Design Patterns and Frameworks (2/3)
 
(ATS4-APP03) Top 10 things every Notebook administrator should know
(ATS4-APP03) Top 10 things every Notebook administrator should know(ATS4-APP03) Top 10 things every Notebook administrator should know
(ATS4-APP03) Top 10 things every Notebook administrator should know
 
03.eGovFrame Runtime Environment Training Book Supplement
03.eGovFrame Runtime Environment Training Book Supplement03.eGovFrame Runtime Environment Training Book Supplement
03.eGovFrame Runtime Environment Training Book Supplement
 
Unit 05: Physical Architecture Design
Unit 05: Physical Architecture DesignUnit 05: Physical Architecture Design
Unit 05: Physical Architecture Design
 
SHOW107: The DataSource Session: Take XPages data boldly where no XPages data...
SHOW107: The DataSource Session: Take XPages data boldly where no XPages data...SHOW107: The DataSource Session: Take XPages data boldly where no XPages data...
SHOW107: The DataSource Session: Take XPages data boldly where no XPages data...
 
JDBC
JDBC JDBC
JDBC
 
Pure Ejb Within An Agile Context
Pure Ejb Within An Agile ContextPure Ejb Within An Agile Context
Pure Ejb Within An Agile Context
 

Similaire à 最终版Top100summit 耿晓倩-automation test framework continue improvement

Implementing Test Automation in Agile Projects
Implementing Test Automation in Agile ProjectsImplementing Test Automation in Agile Projects
Implementing Test Automation in Agile Projects
Michael Palotas
 
Agile Testing at eBay
Agile Testing at eBayAgile Testing at eBay
Agile Testing at eBay
Dominik Dary
 

Similaire à 最终版Top100summit 耿晓倩-automation test framework continue improvement (20)

DSL, Page Object и WebDriver – путь к надежным функциональным тестам
DSL, Page Object и WebDriver – путь к надежным функциональным тестамDSL, Page Object и WebDriver – путь к надежным функциональным тестам
DSL, Page Object и WebDriver – путь к надежным функциональным тестам
 
DSL, Page Object and WebDriver – the path to reliable functional tests.pptx
DSL, Page Object and WebDriver – the path to reliable functional tests.pptxDSL, Page Object and WebDriver – the path to reliable functional tests.pptx
DSL, Page Object and WebDriver – the path to reliable functional tests.pptx
 
Selenium Camp 2012
Selenium Camp 2012Selenium Camp 2012
Selenium Camp 2012
 
Implementing Test Automation in Agile Projects
Implementing Test Automation in Agile ProjectsImplementing Test Automation in Agile Projects
Implementing Test Automation in Agile Projects
 
Implementing Test Automation in Agile Projects
Implementing Test Automation in Agile ProjectsImplementing Test Automation in Agile Projects
Implementing Test Automation in Agile Projects
 
Visual Studio 2010 ALM Tools Overview
Visual Studio 2010 ALM Tools Overview Visual Studio 2010 ALM Tools Overview
Visual Studio 2010 ALM Tools Overview
 
Постоянное тестирование интеграции
Постоянное тестирование интеграцииПостоянное тестирование интеграции
Постоянное тестирование интеграции
 
Agile Testing at eBay
Agile Testing at eBayAgile Testing at eBay
Agile Testing at eBay
 
Behavior Driven Development by Example
Behavior Driven Development by ExampleBehavior Driven Development by Example
Behavior Driven Development by Example
 
Chef for DevOps - an Introduction
Chef for DevOps - an IntroductionChef for DevOps - an Introduction
Chef for DevOps - an Introduction
 
TDD in functional testing with WebDriver
TDD in functional testing with WebDriverTDD in functional testing with WebDriver
TDD in functional testing with WebDriver
 
The Newest of the New with Visual Studio and TFS 2012
The Newest of the New with Visual Studio and TFS 2012The Newest of the New with Visual Studio and TFS 2012
The Newest of the New with Visual Studio and TFS 2012
 
The Newest of the New with Visual Studio and TFS 2012
The Newest of the New with Visual Studio and TFS 2012The Newest of the New with Visual Studio and TFS 2012
The Newest of the New with Visual Studio and TFS 2012
 
Software Testing Tools Training
Software Testing Tools TrainingSoftware Testing Tools Training
Software Testing Tools Training
 
Visual Studio Application Lifecycle Managment end-to-end
Visual Studio Application Lifecycle Managment end-to-endVisual Studio Application Lifecycle Managment end-to-end
Visual Studio Application Lifecycle Managment end-to-end
 
End-To-End Visual Studio Application Lifecycle Management
End-To-End Visual Studio Application Lifecycle ManagementEnd-To-End Visual Studio Application Lifecycle Management
End-To-End Visual Studio Application Lifecycle Management
 
Quality Coding with Visual Studio 2012
Quality Coding with Visual Studio 2012Quality Coding with Visual Studio 2012
Quality Coding with Visual Studio 2012
 
Introductie Visual Studio ALM 2012
Introductie Visual Studio ALM 2012Introductie Visual Studio ALM 2012
Introductie Visual Studio ALM 2012
 
Introductie Visual Studio ALM 2012
Introductie Visual Studio ALM 2012Introductie Visual Studio ALM 2012
Introductie Visual Studio ALM 2012
 
Quality Coding: What's New with Visual Studio 2012
Quality Coding: What's New with Visual Studio 2012Quality Coding: What's New with Visual Studio 2012
Quality Coding: What's New with Visual Studio 2012
 

Plus de drewz lin

Web security-–-everything-we-know-is-wrong-eoin-keary
Web security-–-everything-we-know-is-wrong-eoin-kearyWeb security-–-everything-we-know-is-wrong-eoin-keary
Web security-–-everything-we-know-is-wrong-eoin-keary
drewz lin
 
Via forensics appsecusa-nov-2013
Via forensics appsecusa-nov-2013Via forensics appsecusa-nov-2013
Via forensics appsecusa-nov-2013
drewz lin
 
Phu appsec13
Phu appsec13Phu appsec13
Phu appsec13
drewz lin
 
Owasp2013 johannesullrich
Owasp2013 johannesullrichOwasp2013 johannesullrich
Owasp2013 johannesullrich
drewz lin
 
Owasp advanced mobile-application-code-review-techniques-v0.2
Owasp advanced mobile-application-code-review-techniques-v0.2Owasp advanced mobile-application-code-review-techniques-v0.2
Owasp advanced mobile-application-code-review-techniques-v0.2
drewz lin
 
I mas appsecusa-nov13-v2
I mas appsecusa-nov13-v2I mas appsecusa-nov13-v2
I mas appsecusa-nov13-v2
drewz lin
 
Defeating xss-and-xsrf-with-my faces-frameworks-steve-wolf
Defeating xss-and-xsrf-with-my faces-frameworks-steve-wolfDefeating xss-and-xsrf-with-my faces-frameworks-steve-wolf
Defeating xss-and-xsrf-with-my faces-frameworks-steve-wolf
drewz lin
 
Csrf not-all-defenses-are-created-equal
Csrf not-all-defenses-are-created-equalCsrf not-all-defenses-are-created-equal
Csrf not-all-defenses-are-created-equal
drewz lin
 
Chuck willis-owaspbwa-beyond-1.0-app secusa-2013-11-21
Chuck willis-owaspbwa-beyond-1.0-app secusa-2013-11-21Chuck willis-owaspbwa-beyond-1.0-app secusa-2013-11-21
Chuck willis-owaspbwa-beyond-1.0-app secusa-2013-11-21
drewz lin
 
Appsec usa roberthansen
Appsec usa roberthansenAppsec usa roberthansen
Appsec usa roberthansen
drewz lin
 
Appsec usa2013 js_libinsecurity_stefanodipaola
Appsec usa2013 js_libinsecurity_stefanodipaolaAppsec usa2013 js_libinsecurity_stefanodipaola
Appsec usa2013 js_libinsecurity_stefanodipaola
drewz lin
 
Appsec2013 presentation-dickson final-with_all_final_edits
Appsec2013 presentation-dickson final-with_all_final_editsAppsec2013 presentation-dickson final-with_all_final_edits
Appsec2013 presentation-dickson final-with_all_final_edits
drewz lin
 
Appsec2013 presentation
Appsec2013 presentationAppsec2013 presentation
Appsec2013 presentation
drewz lin
 
Appsec 2013-krehel-ondrej-forensic-investigations-of-web-exploitations
Appsec 2013-krehel-ondrej-forensic-investigations-of-web-exploitationsAppsec 2013-krehel-ondrej-forensic-investigations-of-web-exploitations
Appsec 2013-krehel-ondrej-forensic-investigations-of-web-exploitations
drewz lin
 
Appsec2013 assurance tagging-robert martin
Appsec2013 assurance tagging-robert martinAppsec2013 assurance tagging-robert martin
Appsec2013 assurance tagging-robert martin
drewz lin
 
Amol scadaowasp
Amol scadaowaspAmol scadaowasp
Amol scadaowasp
drewz lin
 
Agile sdlc-v1.1-owasp-app sec-usa
Agile sdlc-v1.1-owasp-app sec-usaAgile sdlc-v1.1-owasp-app sec-usa
Agile sdlc-v1.1-owasp-app sec-usa
drewz lin
 
Vulnex app secusa2013
Vulnex app secusa2013Vulnex app secusa2013
Vulnex app secusa2013
drewz lin
 
基于虚拟化技术的分布式软件测试框架
基于虚拟化技术的分布式软件测试框架基于虚拟化技术的分布式软件测试框架
基于虚拟化技术的分布式软件测试框架
drewz lin
 
新浪微博稳定性经验谈
新浪微博稳定性经验谈新浪微博稳定性经验谈
新浪微博稳定性经验谈
drewz lin
 

Plus de drewz lin (20)

Web security-–-everything-we-know-is-wrong-eoin-keary
Web security-–-everything-we-know-is-wrong-eoin-kearyWeb security-–-everything-we-know-is-wrong-eoin-keary
Web security-–-everything-we-know-is-wrong-eoin-keary
 
Via forensics appsecusa-nov-2013
Via forensics appsecusa-nov-2013Via forensics appsecusa-nov-2013
Via forensics appsecusa-nov-2013
 
Phu appsec13
Phu appsec13Phu appsec13
Phu appsec13
 
Owasp2013 johannesullrich
Owasp2013 johannesullrichOwasp2013 johannesullrich
Owasp2013 johannesullrich
 
Owasp advanced mobile-application-code-review-techniques-v0.2
Owasp advanced mobile-application-code-review-techniques-v0.2Owasp advanced mobile-application-code-review-techniques-v0.2
Owasp advanced mobile-application-code-review-techniques-v0.2
 
I mas appsecusa-nov13-v2
I mas appsecusa-nov13-v2I mas appsecusa-nov13-v2
I mas appsecusa-nov13-v2
 
Defeating xss-and-xsrf-with-my faces-frameworks-steve-wolf
Defeating xss-and-xsrf-with-my faces-frameworks-steve-wolfDefeating xss-and-xsrf-with-my faces-frameworks-steve-wolf
Defeating xss-and-xsrf-with-my faces-frameworks-steve-wolf
 
Csrf not-all-defenses-are-created-equal
Csrf not-all-defenses-are-created-equalCsrf not-all-defenses-are-created-equal
Csrf not-all-defenses-are-created-equal
 
Chuck willis-owaspbwa-beyond-1.0-app secusa-2013-11-21
Chuck willis-owaspbwa-beyond-1.0-app secusa-2013-11-21Chuck willis-owaspbwa-beyond-1.0-app secusa-2013-11-21
Chuck willis-owaspbwa-beyond-1.0-app secusa-2013-11-21
 
Appsec usa roberthansen
Appsec usa roberthansenAppsec usa roberthansen
Appsec usa roberthansen
 
Appsec usa2013 js_libinsecurity_stefanodipaola
Appsec usa2013 js_libinsecurity_stefanodipaolaAppsec usa2013 js_libinsecurity_stefanodipaola
Appsec usa2013 js_libinsecurity_stefanodipaola
 
Appsec2013 presentation-dickson final-with_all_final_edits
Appsec2013 presentation-dickson final-with_all_final_editsAppsec2013 presentation-dickson final-with_all_final_edits
Appsec2013 presentation-dickson final-with_all_final_edits
 
Appsec2013 presentation
Appsec2013 presentationAppsec2013 presentation
Appsec2013 presentation
 
Appsec 2013-krehel-ondrej-forensic-investigations-of-web-exploitations
Appsec 2013-krehel-ondrej-forensic-investigations-of-web-exploitationsAppsec 2013-krehel-ondrej-forensic-investigations-of-web-exploitations
Appsec 2013-krehel-ondrej-forensic-investigations-of-web-exploitations
 
Appsec2013 assurance tagging-robert martin
Appsec2013 assurance tagging-robert martinAppsec2013 assurance tagging-robert martin
Appsec2013 assurance tagging-robert martin
 
Amol scadaowasp
Amol scadaowaspAmol scadaowasp
Amol scadaowasp
 
Agile sdlc-v1.1-owasp-app sec-usa
Agile sdlc-v1.1-owasp-app sec-usaAgile sdlc-v1.1-owasp-app sec-usa
Agile sdlc-v1.1-owasp-app sec-usa
 
Vulnex app secusa2013
Vulnex app secusa2013Vulnex app secusa2013
Vulnex app secusa2013
 
基于虚拟化技术的分布式软件测试框架
基于虚拟化技术的分布式软件测试框架基于虚拟化技术的分布式软件测试框架
基于虚拟化技术的分布式软件测试框架
 
新浪微博稳定性经验谈
新浪微博稳定性经验谈新浪微博稳定性经验谈
新浪微博稳定性经验谈
 

最终版Top100summit 耿晓倩-automation test framework continue improvement

  • 1. Automation Test Framework Continue Improvement Welcome Presentation Presented by Christina Geng
  • 2. AGENDA ❶ Case Introduction ❷ Testing Strategy Evolution ❸ Case ROI Analysis ❹ Success factor ❺ Revelation
  • 3. CASE INTRODUCTION Title: 7 Times Evolution of Test Automation Framework under JS Product for Efficiency Improvement Target: ❶ Build a robust test automation framework ❷ Manage test cases efficiently ❸ Reduce test case running time and maintenance cost ❹ Shared framework under scrum development
  • 4. WHO AND WHAT? Data Analysis Visualization • reporting, online analytical processing • analytics • data mining • process mining • event processing • business performance management • benchmarking • text mining • predictive analytics
  • 5. WHO AND WHAT? Data Analysis Visualization • reporting, online analytical processing Programming language: Javascript/Java • analytics • data mining Provide service: • process mining provides various type of visualization objects that can be used in The Visualization Service is a software module which • event processing applications on different platforms (Web, Mobile and Desktop). different • business performance management • A basic • visual component like chart (Bar, Column Pie, Line, etc ), Geo Map, Visualizationor Grid. benchmarking Gauge, Table types: • text mining• An advanced visual component like (Tree map, Candlestick, Tagcloud) • predictive analytics • Above visual component with interactions and animations • Combination of multiple visual components, it could be composed by same type of visual components or different type of component.
  • 6. AGENDA ❶ Case Introduction ❷ Testing Strategy Evolution ❸ Case ROI Analysis ❹ Success factor ❺ Revelation
  • 7. What’s more… 2012.12 Developer environment 2012.09 2012.10 Full Automation Test Link 2011.12 2012.03 2012.06 Jenkins Data Driven Selenium 2011.6 We have it!
  • 8. VERSION-1 TC: test page Scheduler: ASTEC Test tool: SilkTest TC Management: Excel Test page SilkTest
  • 9. VERSION-1 1. + First automation framework setup - writing test case 2. Overview functional test case coverage 3. Reduce testing overlap for shared component HT Test Test ML page page resource SilkTest maintenance the relation between TC and record
  • 10. What’s more… 2012.12 Developer environment 2012.09 2012.10 Full Automation Test Link 2011.12 2012.03 2012.06 Jenkins Data Driven Selenium 2011.6 We have it!
  • 11. VERSION-2 Scheduler: ASTEC TC Management: Excel/XML (test manager) TC: test page Test tool: Selenium Test Driver Other tools • Auto generate test plan from Excel to xml DIV DIV • Test Manager Test DIV page DIV Selenium
  • 12. VERSION-2 + 1. Reduce test pages - test driver 2. Reduce resource running cost 3. Test steps turns to be keyword driven in xml case unit 4. Write test case in .xls, auto generate .xml DIV DIV DIV DIV Test Test DIV DIV page page DIV DIV Selenium test data redundancy test case sync
  • 13. What’s more… 2012.12 Developer environment 2012.09 2012.10 Full Automation Test Link 2011.12 2012.03 2012.06 Jenkins Data Driven Selenium 2011.6 We have it!
  • 14. VERSION-3 Unified Test Driver Abstract Test Data And How? Wrapper API Eliminate Test Page
  • 15. VERSION-3 backgroud color visible legend position verticalOffset horizontalOffset visible labelFont labelColor formatString initChartsByProperties([['layout.padding',[50,50,50,50]],['legend.visible',false]]); layout padding tooltip enable customization text mainValue subValue title main sub Selectability mode deSelectale defaultSelectedItems xAxisMember yAxisMember bar barMarkerSize measureMember Wrapper API
  • 16. VERSION-3 backgroud color visible legend position verticalOffset horizontalOffset visible labelFont labelColor formatString initChartsByProperties([['layout.padding',[50,50,50,50]],['legend.visible',false]]); layout padding tooltip enable updateChartsByProperties([['layout.padding',[50,50,50,50]],['legend.visible',false]]); customization text mainValue subValue title main sub Selectability mode deSelectale defaultSelectedItems xAxisMember yAxisMember bar barMarkerSize measureMember Wrapper API
  • 17. VERSION-3 backgroud color visible legend position verticalOffset horizontalOffset testUtil.generateChart(viz/line; TestData.a1a1m1m1) visible labelFont labelColor formatString initChartsByProperties([['layout.padding',[50,50,50,50]],['legend.visible',false]]); layout padding tooltip enable updateChartsByProperties([['layout.padding',[50,50,50,50]],['legend.visible',false]]); customization text mainValue subValue title main sub Selectability mode deSelectale defaultSelectedItems xAxisMember yAxisMember bar barMarkerSize measureMember Wrapper API
  • 18. VERSION-3 backgroud color visible legend position verticalOffset horizontalOffset visible labelFont labelColor formatString testUtil.generateChart(viz/line; TestData.a1a1m1m1; ['legend.visible',false]) initChartsByProperties([['layout.padding',[50,50,50,50]],['legend.visible',false]]); layout padding tooltip enable customization text mainValue subValue title main sub Selectability mode deSelectale defaultSelectedItems xAxisMember yAxisMember bar barMarkerSize measureMember Wrapper API
  • 19. VERSION-3 testUtil.generateChart(viz/line; TestData.a1a1m1m1; ['legend.visible',false]) public mySQL private testUtil.generateChart(viz/line; TestData.a1a1m1m1; legendVisibleTrue) Abstract Test Data
  • 20. VERSION-3 Eliminate Test Page
  • 21. VERSION-3 selenium1 selenium2 {StartBrowser} IE, Chrome, Firefox (selenium2) RemoteWebDriver webDriver = null; webDriver = new FirefoxDriver(); ImageComparer Robot() Unified Test Driver
  • 22. VERSION-3 selenium1 {StartBrowser} Safari (selenium1) selenium2 SeleniumServer seleniumServer = new SeleniumServer(); seleniumServer.boot(); selenium = new DefaultSelenium("localhost", 4444, "*safariproxy "+ safariLocation,urlRoot); ImageComparer CommandExecutor executor = new SeleneseCommandExecutor(selenium); DesiredCapabilities dc = new DesiredCapabilities(); Robot() webDriver = new RemoteWebDriver(executor, dc); Unified Test Driver
  • 23. VERSION-3 selenium1 selenium2 {TakeSnapshot} Point p = this.getElementOffset(targetElement); Dimension d = this.getElementSize(targetElement); BufferedImage bi = new Robot().createScreenCapture(p.x, p.y, d.width, d.height); ImageComparer Robot() Unified Test Driver
  • 24. VERSION-3 selenium1 selenium2 {FileCompare} cmd.exe ImageComparer.exe –file filepath1 filepath2 – threshhold 100 ImageComparer Robot() Unified Test Driver
  • 25. What’s more… 2012.12 Developer environment 2012.09 2012.10 Headless Test Link 2011.12 2012.03 2012.06 Full Automation Data Driven Selenium 2011.6 We have it!
  • 26. VERSION-4 Table Text Tooltip Selection Animation Button Scroll CSS Checkbox Hover Theme Link Gesture Gesture Upload Dropdown Download
  • 27. VERSION-4 Selection
  • 28. VERSION-4 Gesture
  • 29. VERSION-4 var eventObj = { type : originalEvent.type, timeStamp : originalEvent.timeStamp, pageX : originalEvent.pageX, pageY : originalEvent.pageY }; eventRecord.push(eventObj); var handler = function(event){ var clickEvt = document.createEvent('MouseEvents'); clickEvt.initMouseEvent(event.type, event.pageX, event.pageY…); d3.select('.main .plot')[0][0].dispatchEvent(clickEvt) }; testAPI_lasso_heatmap = [ {"type":"mouseover","timeStamp":1348739963751,"pageX":126,"pageY":94}, {"type":"mouseover","timeStamp":1348739963751,"pageX":485,"pageY":94}, {"type":"mousemove","timeStamp":1348739963766,"pageX":485,"pageY":208}, {"type":"mousemove","timeStamp":1348739963773,"pageX":126,"pageY":208} ]
  • 30. What’s more… 2012.12 Developer environment 2012.09 2012.10 Headless Test Link, Jenkins 2011.12 2012.03 2012.06 Full Automation Data Driven Selenium 2011.6 We have it!
  • 31. VERSION-5 How to arrange test case?
  • 32. VERSION-5 TC (.xls/.xml) import Test Link export Executable TP save Result log
  • 34. VERSION-5 .xml TC mngmt .xls Test Case Pool Manual Auto 3. Build info 5. result write back 4. get test plan 2.TP/Platform/build info Test Driver CI Server Test Executor 5. result log Selenium2 Java/C++ 1. Trigger 4. get assets libs resources Build Machine Web Server Code repository Where we are.
  • 35. VERSION-5 .xml TC mngmt .xls Test Link Test Case Pool Manual Auto 3. Build info 5. result write back 4. get test plan 2.TP/Platform/build info Test Driver CI Server 5. result log Java Tool Test Executor Selenium2 Java/C++ Jenkins 1. Trigger 4. get assets libs resources Build Machine Web Server Code repository Perforce Where we are.
  • 36. What’s more… 2012.12 Developer environment 2012.09 2012.10 Headless Test Link, Jenkins 2011.12 2012.03 2012.06 Full Automation Data Driven Selenium 2011.6 We have it!
  • 38. VERSION-6 Paint Layout Display PhantomJS (Headless Webkit) http://phantomjs.org
  • 39. VERSION-6 config Browser? CasperJS IE/Safari/FF/Chrome TP Read JS list Open browser PhantomJS: RunJS (test step) 1. open webkit 2. runJS …. 3. Take snapshot 4. close Take Snapshot Result validation not complete not complete Save result log Reporting Test driver inner logic
  • 41. What’s more… 2012.12 Developer environment 2012.09 2012.10 Headless Test Link, Jenkins 2011.12 2012.03 2012.06 Full Automation Data Driven Selenium 2011.6 We have it!
  • 42. VERSION-7 .java TC Management Test Case Pool local CI Server Test Executor Test Driver Selenium2 Java/C++ per check-in trigger result log sync up Casper/PhantomJS Build Machine get resources P4 server Test Executor
  • 43. VERSION-7 .java TC Management Test Case Pool CI Server Eclipse Plug-in local Test Executor Test Driver Selenium2 Java/C++ per check-in trigger result log Jenkins Build Machine sync up Casper/PhantomJS get resources P4 server Test Executor Perforce
  • 44. AGENDA ❶ Case Introduction ❷ Testing Strategy Evolution ❸ Case ROI Analysis ❹ Success factor ❺ Revelation
  • 45. CASE ROI ANALYSIS Functional Test: BAT (nightly), FA 1) Test machine 2) Assets (util, BM…) 1. Set up environment 3) TP 4) Libs 2. Test case execution 1) Browser compatibility 4.5h 2) Run in headless 1) Email sending 3. Test result reporting 2) Sonar integrated with CI 1) BM update 4. Maintenance 2) TC management 1000+ cases
  • 46. CASE ROI ANALYSIS Functional Test: BAT (nightly), FA 1) Test machine 2) Assets (util, BM…) 1. Set up environment 3) TP 4) Libs 2. Test case execution 1) Browser compatibility 47min 2) Run in headless 1) Email sending 3. Test result reporting 2) Sonar integrated with CI 1) BM update 4. Maintenance 2) TC management 1000+ cases
  • 47. AGENDA ❶ Case Introduction ❷ Testing Strategy Evolution ❸ Case ROI Analysis ❹ Success factor ❺ Revelation
  • 48. SUCCESS FACTOR ❶ ❷❸❹ Focus
  • 49. SUCCESS FACTOR ❶ ❷❸❹ Team work
  • 50. SUCCESS FACTOR ❶ ❷❸❹ Continuous Improvement
  • 51. SUCCESS FACTOR ❶ ❷❸❹ Learn 360°
  • 52. AGENDA ❶ Case Introduction ❷ Testing Strategy Evolution ❸ Case ROI Analysis ❹ Success factor ❺ Revelation
  • 54. CONTRIBUTOR Xiaolu, Ye Christina, Geng Helen, Jiang Chen, Zhou Peipei, Jiang Coco, Dai Grace, Zhao Minghao, Lu Kent, Wang Izzie, Wang Phil, Xu NO THE END SUPPORTED FROM Daoyu, Wei Li, Zhao Jimmy, Yang Alex, Feng Alex, Su Jiwei, Li ... … Email: Christina.Geng@sap.com Sina Weibo: 耿晓儿de测试