SlideShare a Scribd company logo
1 of 50
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
The Visualization Service is a software module which provides various type of visualization objects that can be used in different
                                 • event processing            applications on different platforms (Web, Mobile and Desktop).
                                 • business performance management
                                 • benchmarking                                                           Visualization types:
                         • A basic visual component like chart (Bar, Column Pie, Line, etc ), Geo Map, Gauge, Table or Grid.
                                 • 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.032012.06




                         Jenkins
                         Data Driven
                         Selenium
 2011.6
                         We have it!
VERSION-1
       Pie    Bar   Line   Backgrounditle
                                    T       Legend   Layout    Tooltip   Theme   ValueAxis Animation
Pie    y                   y        y       y                  y         y
Bar           y            y        y       y        y         y         y       y        y
Line                y      y        y       y        y         y         y       y        y




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

                                                              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.032012.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.   Easy case migration
5.   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

                      Discard Test Page
VERSION-3
            backgroud
                   color
                  visible
                legend
                 position
          verticalOffset
        horizontalOffset    testUtil.generateChart(viz/line; TestData.a1a1m1m1)
                  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     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
            testUtil.generateChart(viz/line; TestData.a1a1m1m1; ['legend.visible',false])




                                               public
    mySQL




                                                                      private


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




                                                                     Abstract Test Data
VERSION-3
titleVisibleTrue = [['title.visible',true]];
titleVisibleFalse = [['title.visible',false]];
titleNormal = [['title.visible',true],['title.text',"Set
customer title"]];
titleLong =
[['title.visible',true],['title.text',testData_Text.Lon
g]];
titleAlignmentCenter =
[['title.visible',true],['title.alignment',"center"]];
titleAlignmentLeft =
[['title.visible',true],['title.alignment',"left"]];
titleAlignmentRight =
[['title.visible',true],['title.alignment',"right"]];
legendVisibleTrue = [['legend.visible',true]];
legendVisibleFalse = [['legend.visible',false]];
legendHierarchicalTrue = [['legend.visible',true],
['legend.isHierarchical', true]];
legendPositionLeft = [['legend.visible',true],
['legend.position',"left"]];
legendPositionRight = [['legend.visible',true],
['legend.position',"right"]];
legendPositionTop = [['legend.visible',true],
['legend.position',"top"]];
legendPositionBottom = [['legend.visible',true],
['legend.position',"bottom"]];
<testsetcase id="test.workflow.layout.line.showTitle" enabledtype="enabled"/>
<testsetcase id="test.workflow.layout.line.hideLegend" enabledtype="enabled"/>
<testsetcase id="test.workflow.layout.line.hideAxis" enabledtype="enabled"/>
<testsetcase id="test.workflow.layout.line.showAxisTitle" enabledtype="enabled"/>   Discard 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
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}
]
VERSION-4
Record




            Replay
VERSION-4

                                    diff image location
    diff image folder                                     start to check
                        p4 folder




replace BM directly
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




  Continue 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




            http://casperjs.org/
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


                                               Eclipse Plug-in
                                            local

             CI Server                      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
CASE ROI ANALYSIS

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

                            1)   Browser compatibility
 2. Test case execution

                                                             4.5h
                                                            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
SUCCESS FACTOR     ❶ ❷❸❹




           Focus
SUCCESS FACTOR      ❶ ❷❸❹




        Team work
SUCCESS FACTOR   ❶ ❷❸❹




 Continue Improvement
SUCCESS FACTOR      ❶ ❷❸❹




        Learn 360
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
 SUPPORTED FROM
    Daoyu, Wei




END   Li, Zhao
    Jimmy, Yang
     Alex, Feng
      Alex, Su
      Jiwei, Li
          ... …

More Related Content

What's hot

Continuous Delivery Overview
Continuous Delivery OverviewContinuous Delivery Overview
Continuous Delivery OverviewWill Iverson
 
XP Customer Testing
XP Customer TestingXP Customer Testing
XP Customer Testingeiji ienaga
 
Whse refmodel
Whse refmodelWhse refmodel
Whse refmodelRakajanin
 

What's hot (6)

Continuous Delivery Overview
Continuous Delivery OverviewContinuous Delivery Overview
Continuous Delivery Overview
 
QTP Online Training
QTP Online Training QTP Online Training
QTP Online Training
 
Dacj 4 2-b
Dacj 4 2-bDacj 4 2-b
Dacj 4 2-b
 
Dacj 4 2-c
Dacj 4 2-cDacj 4 2-c
Dacj 4 2-c
 
XP Customer Testing
XP Customer TestingXP Customer Testing
XP Customer Testing
 
Whse refmodel
Whse refmodelWhse refmodel
Whse refmodel
 

Viewers also liked

Viewers also liked (7)

Flower Series
Flower SeriesFlower Series
Flower Series
 
List Of Projects & Publication Ranjan
List Of Projects & Publication RanjanList Of Projects & Publication Ranjan
List Of Projects & Publication Ranjan
 
A2
A2A2
A2
 
Blue Series
Blue SeriesBlue Series
Blue Series
 
White Series
White SeriesWhite Series
White Series
 
Green Series
Green SeriesGreen Series
Green Series
 
648 Group Overview
648 Group Overview648 Group Overview
648 Group Overview
 

Similar to Automation Test Framework Evolution for Efficiency

Implementing Test Automation in Agile Projects
Implementing Test Automation in Agile ProjectsImplementing Test Automation in Agile Projects
Implementing Test Automation in Agile ProjectsMichael Palotas
 
Implementing Test Automation in Agile Projects
Implementing Test Automation in Agile ProjectsImplementing Test Automation in Agile Projects
Implementing Test Automation in Agile ProjectsDominik Dary
 
Постоянное тестирование интеграции
Постоянное тестирование интеграцииПостоянное тестирование интеграции
Постоянное тестирование интеграцииSQALab
 
DSL, Page Object и WebDriver – путь к надежным функциональным тестам
DSL, Page Object и WebDriver – путь к надежным функциональным тестамDSL, Page Object и WebDriver – путь к надежным функциональным тестам
DSL, Page Object и WebDriver – путь к надежным функциональным тестамSQALab
 
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.pptxMikalai Alimenkou
 
Visual Studio 2010 ALM Tools Overview
Visual Studio 2010 ALM Tools Overview Visual Studio 2010 ALM Tools Overview
Visual Studio 2010 ALM Tools Overview Ayman El-Hattab
 
Agile Testing at eBay
Agile Testing at eBayAgile Testing at eBay
Agile Testing at eBayDominik Dary
 
Непрерывное тестирование для улучшения качества кода
Непрерывное тестирование для улучшения качества кодаНепрерывное тестирование для улучшения качества кода
Непрерывное тестирование для улучшения качества кодаSQALab
 
TDD in functional testing with WebDriver
TDD in functional testing with WebDriverTDD in functional testing with WebDriver
TDD in functional testing with WebDriverMikalai Alimenkou
 
Real-world Entity Framework
Real-world Entity FrameworkReal-world Entity Framework
Real-world Entity FrameworkLynn Langit
 
DAT101 Understanding AWS Database Options - AWS re: Invent 2012
DAT101 Understanding AWS Database Options - AWS re: Invent 2012DAT101 Understanding AWS Database Options - AWS re: Invent 2012
DAT101 Understanding AWS Database Options - AWS re: Invent 2012Amazon Web Services
 
SharePoint Application Lifecycle Management (ALM)
SharePoint Application Lifecycle Management (ALM)SharePoint Application Lifecycle Management (ALM)
SharePoint Application Lifecycle Management (ALM)Ayman El-Hattab
 
Behavior Driven Development by Example
Behavior Driven Development by ExampleBehavior Driven Development by Example
Behavior Driven Development by ExampleNalin Goonawardana
 
Design For Testability
Design For TestabilityDesign For Testability
Design For TestabilityWill Iverson
 
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
 
BDD and Test Automation in Evalutionary Product Suite
BDD and Test Automation in Evalutionary Product SuiteBDD and Test Automation in Evalutionary Product Suite
BDD and Test Automation in Evalutionary Product SuiteLasantha Ranaweera
 
Session #1: Development Practices And The Microsoft Approach
Session #1: Development Practices And The Microsoft ApproachSession #1: Development Practices And The Microsoft Approach
Session #1: Development Practices And The Microsoft ApproachSteve Lange
 
[DSBW Spring 2009] Unit 01: Introducing Web Engineering
[DSBW Spring 2009] Unit 01: Introducing Web Engineering[DSBW Spring 2009] Unit 01: Introducing Web Engineering
[DSBW Spring 2009] Unit 01: Introducing Web EngineeringCarles Farré
 

Similar to Automation Test Framework Evolution for Efficiency (20)

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
 
Постоянное тестирование интеграции
Постоянное тестирование интеграцииПостоянное тестирование интеграции
Постоянное тестирование интеграции
 
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
 
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
 
Непрерывное тестирование для улучшения качества кода
Непрерывное тестирование для улучшения качества кодаНепрерывное тестирование для улучшения качества кода
Непрерывное тестирование для улучшения качества кода
 
TDD in functional testing with WebDriver
TDD in functional testing with WebDriverTDD in functional testing with WebDriver
TDD in functional testing with WebDriver
 
Real-world Entity Framework
Real-world Entity FrameworkReal-world Entity Framework
Real-world Entity Framework
 
DAT101 Understanding AWS Database Options - AWS re: Invent 2012
DAT101 Understanding AWS Database Options - AWS re: Invent 2012DAT101 Understanding AWS Database Options - AWS re: Invent 2012
DAT101 Understanding AWS Database Options - AWS re: Invent 2012
 
SharePoint Application Lifecycle Management (ALM)
SharePoint Application Lifecycle Management (ALM)SharePoint Application Lifecycle Management (ALM)
SharePoint Application Lifecycle Management (ALM)
 
Coding Naked
Coding NakedCoding Naked
Coding Naked
 
Behavior Driven Development by Example
Behavior Driven Development by ExampleBehavior Driven Development by Example
Behavior Driven Development by Example
 
Design For Testability
Design For TestabilityDesign For Testability
Design For Testability
 
Lanzamiento Visual Studio 2012 - Modern ALM
Lanzamiento Visual Studio 2012 - Modern ALMLanzamiento Visual Studio 2012 - Modern ALM
Lanzamiento Visual Studio 2012 - Modern ALM
 
BDD and Test Automation in Evalutionary Product Suite
BDD and Test Automation in Evalutionary Product SuiteBDD and Test Automation in Evalutionary Product Suite
BDD and Test Automation in Evalutionary Product Suite
 
Session #1: Development Practices And The Microsoft Approach
Session #1: Development Practices And The Microsoft ApproachSession #1: Development Practices And The Microsoft Approach
Session #1: Development Practices And The Microsoft Approach
 
[DSBW Spring 2009] Unit 01: Introducing Web Engineering
[DSBW Spring 2009] Unit 01: Introducing Web Engineering[DSBW Spring 2009] Unit 01: Introducing Web Engineering
[DSBW Spring 2009] Unit 01: Introducing Web Engineering
 

Automation Test Framework Evolution for Efficiency

  • 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 The Visualization Service is a software module which provides various type of visualization objects that can be used in different • event processing applications on different platforms (Web, Mobile and Desktop). • business performance management • benchmarking Visualization types: • A basic visual component like chart (Bar, Column Pie, Line, etc ), Geo Map, Gauge, Table or Grid. • 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.032012.06 Jenkins Data Driven Selenium 2011.6 We have it!
  • 8. VERSION-1 Pie Bar Line Backgrounditle T Legend Layout Tooltip Theme ValueAxis Animation Pie y y y y y y Bar y y y y y y y y y Line y y y y y y y y y Scheduler: ASTEC TC Management: Excel TC: test page Test tool: SilkTest 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.032012.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. Easy case migration 5. 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 Discard Test Page
  • 15. VERSION-3 backgroud color visible legend position verticalOffset horizontalOffset testUtil.generateChart(viz/line; TestData.a1a1m1m1) 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 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
  • 16. VERSION-3 testUtil.generateChart(viz/line; TestData.a1a1m1m1; ['legend.visible',false]) public mySQL private testUtil.generateChart(viz/line; TestData.a1a1m1m1; legendVisibleTrue) Abstract Test Data
  • 17. VERSION-3 titleVisibleTrue = [['title.visible',true]]; titleVisibleFalse = [['title.visible',false]]; titleNormal = [['title.visible',true],['title.text',"Set customer title"]]; titleLong = [['title.visible',true],['title.text',testData_Text.Lon g]]; titleAlignmentCenter = [['title.visible',true],['title.alignment',"center"]]; titleAlignmentLeft = [['title.visible',true],['title.alignment',"left"]]; titleAlignmentRight = [['title.visible',true],['title.alignment',"right"]]; legendVisibleTrue = [['legend.visible',true]]; legendVisibleFalse = [['legend.visible',false]]; legendHierarchicalTrue = [['legend.visible',true], ['legend.isHierarchical', true]]; legendPositionLeft = [['legend.visible',true], ['legend.position',"left"]]; legendPositionRight = [['legend.visible',true], ['legend.position',"right"]]; legendPositionTop = [['legend.visible',true], ['legend.position',"top"]]; legendPositionBottom = [['legend.visible',true], ['legend.position',"bottom"]]; <testsetcase id="test.workflow.layout.line.showTitle" enabledtype="enabled"/> <testsetcase id="test.workflow.layout.line.hideLegend" enabledtype="enabled"/> <testsetcase id="test.workflow.layout.line.hideAxis" enabledtype="enabled"/> <testsetcase id="test.workflow.layout.line.showAxisTitle" enabledtype="enabled"/> Discard Test Page
  • 18. VERSION-3 selenium1 selenium2 {StartBrowser} IE, Chrome, Firefox (selenium2) RemoteWebDriver webDriver = null; webDriver = new FirefoxDriver(); ImageComparer Robot() Unified Test Driver
  • 19. 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
  • 20. 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
  • 21. VERSION-3 selenium1 selenium2 {FileCompare} cmd.exe ImageComparer.exe –file filepath1 filepath2 – threshhold 100 ImageComparer Robot() Unified Test Driver
  • 22. 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!
  • 23. VERSION-4 Table Text Tooltip Selection Animation Button Scroll CSS Checkbox Hover Theme Link Gesture Gesture Upload Dropdown Download
  • 24. VERSION-4 Selection
  • 26. 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} ]
  • 28. VERSION-4 diff image location diff image folder start to check p4 folder replace BM directly
  • 29. 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!
  • 30. VERSION-5 How to arrange test case?
  • 31. VERSION-5 TC (.xls/.xml) import Test Link export Executable TP save Result log
  • 32. VERSION-5 Continue Integration
  • 33. 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.
  • 34. 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.
  • 35. 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!
  • 37. VERSION-6 http://casperjs.org/
  • 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 Eclipse Plug-in local CI Server 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. CASE ROI ANALYSIS Functional Test: BAT (nightly), FA 1) Test machine 2) Assets (util, BM…) 1. Set up environment 3) TP 4) Libs 1) Browser compatibility 2. Test case execution 4.5h 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
  • 45. SUCCESS FACTOR ❶ ❷❸❹ Focus
  • 46. SUCCESS FACTOR ❶ ❷❸❹ Team work
  • 47. SUCCESS FACTOR ❶ ❷❸❹ Continue Improvement
  • 48. SUCCESS FACTOR ❶ ❷❸❹ Learn 360
  • 50. 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 SUPPORTED FROM Daoyu, Wei END Li, Zhao Jimmy, Yang Alex, Feng Alex, Su Jiwei, Li ... …

Editor's Notes

  1. Programming language: Javascript/JavaProvide service: The Visualization Service is a software module which provides various type of visualization objects that can be used in different applications on different platforms (Web, Mobile and Desktop).Visualization types: A basic visual component like chart (Bar, Column Pie, Line, etc ), Geo Map, Gauge, Table or Grid. An advanced visual component like (Tree map, Candlestick, Tagcloud) 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.
  2. Astec, test pages, silktest, .xls
  3. Astec, test pages, silktest, .xls
  4. Astec, testmanager, selenium, xls1. Test page = multi cases
  5. 1. Test driver: selenium1, selenium2, imageCompare,
  6. Astec, testmanager, xml, selenium, xlstest data abstractData drivenAuto generate test case
  7. Astec, testmanager, xml, selenium, xlstest data abstractData drivenAuto generate test case
  8. Astec, testmanager, xml, selenium, xlstest data abstractData drivenAuto generate test case
  9. Astec, testmanager, xml, selenium, xlstest data abstractData drivenAuto generate test case
  10. Astec, testmanager, xml, selenium, xlstest data abstractData drivenAuto generate test case
  11. Astec, testmanager, xml, selenium, xlstest data abstractData drivenAuto generate test case
  12. Astec, testmanager, xml, selenium, xlstest data abstractData drivenAuto generate test case
  13. Astec, testmanager, xml, selenium, xlstest data abstractData drivenAuto generate test case
  14. lassoselection/mouse event/gesture
  15. selection
  16. Legend selection use class to record element and play, no need pageX and pageY
  17. Diff image tool
  18. Testlink/defect analysis
  19. Jenkins
  20. Jenkins
  21. Jenkins, junit, xml, seleniumGesture/event/mouseTooltip automation
  22. Jenkins, junit, xml, seleniumGesture/event/mouseTooltip automation
  23. Casper/phantomJS
  24. Casper/phantomJS
  25. Casper/phantomJS
  26. Jenkins, Junit, xml, selenium, casper, eclipse
  27. Jenkins, Junit, xml, selenium, casper, eclipse
  28. 3h * 22d = 66h66 * 12m = 792