SlideShare une entreprise Scribd logo
1  sur  33
Automation Framework
Design and Implementation

          Liang Gao
Agenda




Why we need an automation framework
Elements of automation framework
Design Principles
Implementation Principles.
Popular automation framework case study




                                 This material is for training purpose only.
                                 No duplication without consent of Sigma-RT is permitted.
The Goal of Automation




Increase productivity on repetitive testing
Avoid human errors
Use night and weekends
Ultimate goal is to get the full version report (auto or
manual)




                                      This material is for training purpose only.
                                      No duplication without consent of Sigma-RT is permitted.
Automation Framework: Why?




I can develop script without any framework
Each script can run itself
Scripts execution results can be collected and put into
a spreadsheet
I can do everything I want for automation without a
“Framework”



                                    This material is for training purpose only.
                                    No duplication without consent of Sigma-RT is permitted.
Automation Framework: Reason




杀鸡不用宰牛刀
If you have multiple developers to develop scripts in
parallel
If you have thousands of thousands of scripts need to
run
If your product release cycle is short and demanding



                                   This material is for training purpose only.
                                   No duplication without consent of Sigma-RT is permitted.
Remember the goal




All we want is a full version report (manual or auto)




                                     This material is for training purpose only.
                                     No duplication without consent of Sigma-RT is permitted.
Elements of an Automation
         Framework


Control library
Common library
Coding guideline
Execution engine
Test harness
Result database



                    This material is for training purpose only.
                    No duplication without consent of Sigma-RT is permitted.
Control library


All equipment in the network need to be controlled
by control library
CLI remote control
  Power of the expect
GUI control
  Selenium
API based control
  Ixia, Smartbit, Ameritec, Abacus etc.

                                          This material is for training purpose only.
                                          No duplication without consent of Sigma-RT is permitted.
Common Library


Common APIs to use when automate command tasks
Ping library
WiFi library
MPLS library
DHPC library
……..



                               This material is for training purpose only.
                               No duplication without consent of Sigma-RT is permitted.
Coding Guideline


Common style for ease of maintenance
Common headers
20% + comments
Enough logging and debugging
Documentation




                                 This material is for training purpose only.
                                 No duplication without consent of Sigma-RT is permitted.
Execution engine


Concept of Test Bed, Jobs and suites
Controlled batch run
  Exception catch (both software and hardware)
  Will run to the end no matter what
  Abortion on demand
Live status display
Debugging support (not script development debugging)
Dynamic suites generation
Email notification

                                        This material is for training purpose only.
                                        No duplication without consent of Sigma-RT is permitted.
Test Harness


The end product: full version test report
Collection of the running results in high level
Easy to present and easy to search
Easy to debug base on the report
Easy to compare between different version’s results




                                   This material is for training purpose only.
                                   No duplication without consent of Sigma-RT is permitted.
Design Principles


Code control
Extract layer of library design
Script and test bed independency
Resource allocation
Execution parallelization
Result storage
Dynamic topology
Distribution mechanism

                                   This material is for training purpose only.
                                   No duplication without consent of Sigma-RT is permitted.
Code Control


Just like any product development, pick your choice
Subversion, Clearcase etc.




                                   This material is for training purpose only.
                                   No duplication without consent of Sigma-RT is permitted.
Abstract Layer of Library Design


   Equipment library layer to high the complexity of
   different equipment A Calls B
                   Scripts:

   Common APIs with are equipment independent
                  Abstract API Layer


               Device dependent layer




Abacus      Ameritec          SIPX                        Others

                                        This material is for training purpose only.
                                        No duplication without consent of Sigma-RT is permitted.
Script and Test Bed Independency


   Any scripts can run on any test bed without change
   inside the script
                     Scripts: A Calls B
   Best case: all you need to change is the test bed name
   in the framework  Logical Test Bed


                    Test Bed Map




 TB1          TB2             TB3                           TB4
                                       This material is for training purpose only.
                                       No duplication without consent of Sigma-RT is permitted.
Resource Allocation


Each test bed can only run one job?
Test bed design
Dynamic resource allocation




                                      This material is for training purpose only.
                                      No duplication without consent of Sigma-RT is permitted.
Execution parallelization


Per framework instance per test bed?
Central framework?




                                  This material is for training purpose only.
                                  No duplication without consent of Sigma-RT is permitted.
Result Storage


Logs need to be archived (very important)
Full version report need to be stored
Need a database?
  Script info database?
  Log database?
  Report database?
  Suite-version database?


                                   This material is for training purpose only.
                                   No duplication without consent of Sigma-RT is permitted.
Dynamic Topology


Each script need different topology
Fixed test bed topo vs dynamic test bed topo




                                   This material is for training purpose only.
                                   No duplication without consent of Sigma-RT is permitted.
Distribution Mechanism


Centralized
Per engineer per copy




                        This material is for training purpose only.
                        No duplication without consent of Sigma-RT is permitted.
Implementation Principles


Script language of choice
Performance consideration




                            This material is for training purpose only.
                            No duplication without consent of Sigma-RT is permitted.
Script Language of Choice


TCL
Perl
Ruby
Python
EXPECT




                  This material is for training purpose only.
                  No duplication without consent of Sigma-RT is permitted.
Performance Consideration


Central Framework VS Distributed




                                   This material is for training purpose only.
                                   No duplication without consent of Sigma-RT is permitted.
Framework Case Study


C company’s - largest network equipment vendor
J company’s - largest network equipment vendor
H-1 company’s - largest network equipment vendor
H-2 company’s - largest network equipment vendor
T company’s – windows based security company
A company’s – Silicon valley security appliance company
N company’s – Silicon Valley startup.
Sigma’s – first commercial framework in the market

                                      This material is for training purpose only.
                                      No duplication without consent of Sigma-RT is permitted.
C


TCL
Per engineer per framework
No GUI
No dynamic resource allocation
No dynamic topology on Framework
Open source style library development
CLI only
Dynamic suites

                                  This material is for training purpose only.
                                  No duplication without consent of Sigma-RT is permitted.
J


TCL/Perl
Dynamic topology generation by controlling the
switch Vlans.
Per engineer per framework
CLI only
Per release code base (on scripts)



                                  This material is for training purpose only.
                                  No duplication without consent of Sigma-RT is permitted.
H-1


Key word driven




                        This material is for training purpose only.
                        No duplication without consent of Sigma-RT is permitted.
H-2


Key word driven
Script and test bed independent
IDE
Static suites




                                  This material is for training purpose only.
                                  No duplication without consent of Sigma-RT is permitted.
T


Ruby + AutoIT + Witr
Strong support for GUI automation on both MS
Windows and Browser
C/S structure




                                 This material is for training purpose only.
                                 No duplication without consent of Sigma-RT is permitted.
A


Perl
Heavily use of Selemium




                              This material is for training purpose only.
                              No duplication without consent of Sigma-RT is permitted.
N


Python
All CLI




              This material is for training purpose only.
              No duplication without consent of Sigma-RT is permitted.
Automation framework design and implementation

Contenu connexe

Tendances

JavaOne 2017: Eclipse OpenJ9: Under the hood of the JVM
JavaOne 2017: Eclipse OpenJ9: Under the hood of the JVMJavaOne 2017: Eclipse OpenJ9: Under the hood of the JVM
JavaOne 2017: Eclipse OpenJ9: Under the hood of the JVMDanHeidinga
 
Google ART (Android RunTime)
Google ART (Android RunTime)Google ART (Android RunTime)
Google ART (Android RunTime)Niraj Solanke
 
FOSDEM 2017 - A different Lua JIT using Eclipse OMR
FOSDEM 2017 - A different Lua JIT using Eclipse OMRFOSDEM 2017 - A different Lua JIT using Eclipse OMR
FOSDEM 2017 - A different Lua JIT using Eclipse OMRCharlie Gracie
 
Cross platform computer vision optimization
Cross platform computer vision optimizationCross platform computer vision optimization
Cross platform computer vision optimizationYoss Cohen
 
JavaOne 2016: Life after Modularity
JavaOne 2016: Life after ModularityJavaOne 2016: Life after Modularity
JavaOne 2016: Life after ModularityDanHeidinga
 
FOSDEM 2017 - Open J9 The Next Free Java VM
FOSDEM 2017 - Open J9 The Next Free Java VMFOSDEM 2017 - Open J9 The Next Free Java VM
FOSDEM 2017 - Open J9 The Next Free Java VMCharlie Gracie
 
Jython for embedded software validation
Jython for embedded software validationJython for embedded software validation
Jython for embedded software validationPyCon Italia
 
Safe and Reliable Embedded Linux Programming: How to Get There
Safe and Reliable Embedded Linux Programming: How to Get ThereSafe and Reliable Embedded Linux Programming: How to Get There
Safe and Reliable Embedded Linux Programming: How to Get ThereAdaCore
 
Project P erts2012
Project P erts2012Project P erts2012
Project P erts2012AdaCore
 
Sys ml helperprofile-rhapsody813-obtainandinstall-v1
Sys ml helperprofile-rhapsody813-obtainandinstall-v1Sys ml helperprofile-rhapsody813-obtainandinstall-v1
Sys ml helperprofile-rhapsody813-obtainandinstall-v1Fraser Chadburn
 

Tendances (14)

JavaOne 2017: Eclipse OpenJ9: Under the hood of the JVM
JavaOne 2017: Eclipse OpenJ9: Under the hood of the JVMJavaOne 2017: Eclipse OpenJ9: Under the hood of the JVM
JavaOne 2017: Eclipse OpenJ9: Under the hood of the JVM
 
Harsh gaurav
Harsh gauravHarsh gaurav
Harsh gaurav
 
Google ART (Android RunTime)
Google ART (Android RunTime)Google ART (Android RunTime)
Google ART (Android RunTime)
 
FOSDEM 2017 - A different Lua JIT using Eclipse OMR
FOSDEM 2017 - A different Lua JIT using Eclipse OMRFOSDEM 2017 - A different Lua JIT using Eclipse OMR
FOSDEM 2017 - A different Lua JIT using Eclipse OMR
 
Cross platform computer vision optimization
Cross platform computer vision optimizationCross platform computer vision optimization
Cross platform computer vision optimization
 
JavaOne 2016: Life after Modularity
JavaOne 2016: Life after ModularityJavaOne 2016: Life after Modularity
JavaOne 2016: Life after Modularity
 
FOSDEM 2017 - Open J9 The Next Free Java VM
FOSDEM 2017 - Open J9 The Next Free Java VMFOSDEM 2017 - Open J9 The Next Free Java VM
FOSDEM 2017 - Open J9 The Next Free Java VM
 
Jython for embedded software validation
Jython for embedded software validationJython for embedded software validation
Jython for embedded software validation
 
Safe and Reliable Embedded Linux Programming: How to Get There
Safe and Reliable Embedded Linux Programming: How to Get ThereSafe and Reliable Embedded Linux Programming: How to Get There
Safe and Reliable Embedded Linux Programming: How to Get There
 
Project P erts2012
Project P erts2012Project P erts2012
Project P erts2012
 
Sys ml helperprofile-rhapsody813-obtainandinstall-v1
Sys ml helperprofile-rhapsody813-obtainandinstall-v1Sys ml helperprofile-rhapsody813-obtainandinstall-v1
Sys ml helperprofile-rhapsody813-obtainandinstall-v1
 
RTF - Prasad bhatt
RTF - Prasad bhattRTF - Prasad bhatt
RTF - Prasad bhatt
 
まとめと展望
まとめと展望まとめと展望
まとめと展望
 
Birendra_resume
Birendra_resumeBirendra_resume
Birendra_resume
 

Similaire à Automation framework design and implementation

Five cool ways the JVM can run Apache Spark faster
Five cool ways the JVM can run Apache Spark fasterFive cool ways the JVM can run Apache Spark faster
Five cool ways the JVM can run Apache Spark fasterTim Ellison
 
Acceptance Test Drive Development with Robot Framework
Acceptance Test Drive Development with Robot FrameworkAcceptance Test Drive Development with Robot Framework
Acceptance Test Drive Development with Robot FrameworkRamdhan Hidayat
 
Bdd test automation analysis
Bdd test automation analysisBdd test automation analysis
Bdd test automation analysisssuser2e8d4b
 
Getting started with karate dsl
Getting started with karate dslGetting started with karate dsl
Getting started with karate dslKnoldus Inc.
 
DevOpsDays Taipei 2019 - Mastering IaC the DevOps Way
DevOpsDays Taipei 2019 - Mastering IaC the DevOps WayDevOpsDays Taipei 2019 - Mastering IaC the DevOps Way
DevOpsDays Taipei 2019 - Mastering IaC the DevOps Waysmalltown
 
Accelerate Your C/C++ Applications with Amazon EC2 F1 Instances (CMP405) - AW...
Accelerate Your C/C++ Applications with Amazon EC2 F1 Instances (CMP405) - AW...Accelerate Your C/C++ Applications with Amazon EC2 F1 Instances (CMP405) - AW...
Accelerate Your C/C++ Applications with Amazon EC2 F1 Instances (CMP405) - AW...Amazon Web Services
 
An Introduction to Amazon SageMaker (October 2018)
An Introduction to Amazon SageMaker (October 2018)An Introduction to Amazon SageMaker (October 2018)
An Introduction to Amazon SageMaker (October 2018)Julien SIMON
 
TaraVault Overview Presentation (2021)
TaraVault Overview Presentation (2021)TaraVault Overview Presentation (2021)
TaraVault Overview Presentation (2021)Inflectra
 
Best Selenium Python Frameworks for Test automation.pdf
Best Selenium Python Frameworks for Test automation.pdfBest Selenium Python Frameworks for Test automation.pdf
Best Selenium Python Frameworks for Test automation.pdfpCloudy
 
Python* Scalability in Production Environments
Python* Scalability in Production EnvironmentsPython* Scalability in Production Environments
Python* Scalability in Production EnvironmentsIntel® Software
 
Introduction to Robot Framework – Exove
Introduction to Robot Framework – ExoveIntroduction to Robot Framework – Exove
Introduction to Robot Framework – ExoveExove
 
Build, train, and deploy Machine Learning models at scale (May 2018)
Build, train, and deploy Machine Learning models at scale (May 2018)Build, train, and deploy Machine Learning models at scale (May 2018)
Build, train, and deploy Machine Learning models at scale (May 2018)Julien SIMON
 
TaraVault Overview Presentation (2019)
TaraVault Overview Presentation (2019)TaraVault Overview Presentation (2019)
TaraVault Overview Presentation (2019)Inflectra
 
“Hate It Or Love It, Your Neural Network Software Stack Defines Application P...
“Hate It Or Love It, Your Neural Network Software Stack Defines Application P...“Hate It Or Love It, Your Neural Network Software Stack Defines Application P...
“Hate It Or Love It, Your Neural Network Software Stack Defines Application P...Edge AI and Vision Alliance
 
Introduction to GraalVM
Introduction to GraalVMIntroduction to GraalVM
Introduction to GraalVMSHASHI KUMAR
 
TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...
TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...
TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...tdc-globalcode
 
Labview1_ Computer Applications in Control_ACRRL
Labview1_ Computer Applications in Control_ACRRLLabview1_ Computer Applications in Control_ACRRL
Labview1_ Computer Applications in Control_ACRRLMohammad Sabouri
 

Similaire à Automation framework design and implementation (20)

Five cool ways the JVM can run Apache Spark faster
Five cool ways the JVM can run Apache Spark fasterFive cool ways the JVM can run Apache Spark faster
Five cool ways the JVM can run Apache Spark faster
 
Acceptance Test Drive Development with Robot Framework
Acceptance Test Drive Development with Robot FrameworkAcceptance Test Drive Development with Robot Framework
Acceptance Test Drive Development with Robot Framework
 
Bdd test automation analysis
Bdd test automation analysisBdd test automation analysis
Bdd test automation analysis
 
Embedded Rust
Embedded RustEmbedded Rust
Embedded Rust
 
Getting started with karate dsl
Getting started with karate dslGetting started with karate dsl
Getting started with karate dsl
 
DevOpsDays Taipei 2019 - Mastering IaC the DevOps Way
DevOpsDays Taipei 2019 - Mastering IaC the DevOps WayDevOpsDays Taipei 2019 - Mastering IaC the DevOps Way
DevOpsDays Taipei 2019 - Mastering IaC the DevOps Way
 
Accelerate Your C/C++ Applications with Amazon EC2 F1 Instances (CMP405) - AW...
Accelerate Your C/C++ Applications with Amazon EC2 F1 Instances (CMP405) - AW...Accelerate Your C/C++ Applications with Amazon EC2 F1 Instances (CMP405) - AW...
Accelerate Your C/C++ Applications with Amazon EC2 F1 Instances (CMP405) - AW...
 
An Introduction to Amazon SageMaker (October 2018)
An Introduction to Amazon SageMaker (October 2018)An Introduction to Amazon SageMaker (October 2018)
An Introduction to Amazon SageMaker (October 2018)
 
TaraVault Overview Presentation (2021)
TaraVault Overview Presentation (2021)TaraVault Overview Presentation (2021)
TaraVault Overview Presentation (2021)
 
Best Selenium Python Frameworks for Test automation.pdf
Best Selenium Python Frameworks for Test automation.pdfBest Selenium Python Frameworks for Test automation.pdf
Best Selenium Python Frameworks for Test automation.pdf
 
Python* Scalability in Production Environments
Python* Scalability in Production EnvironmentsPython* Scalability in Production Environments
Python* Scalability in Production Environments
 
Intel python 2017
Intel python 2017Intel python 2017
Intel python 2017
 
PowerAI Deep Dive ( key points )
PowerAI Deep Dive ( key points )PowerAI Deep Dive ( key points )
PowerAI Deep Dive ( key points )
 
Introduction to Robot Framework – Exove
Introduction to Robot Framework – ExoveIntroduction to Robot Framework – Exove
Introduction to Robot Framework – Exove
 
Build, train, and deploy Machine Learning models at scale (May 2018)
Build, train, and deploy Machine Learning models at scale (May 2018)Build, train, and deploy Machine Learning models at scale (May 2018)
Build, train, and deploy Machine Learning models at scale (May 2018)
 
TaraVault Overview Presentation (2019)
TaraVault Overview Presentation (2019)TaraVault Overview Presentation (2019)
TaraVault Overview Presentation (2019)
 
“Hate It Or Love It, Your Neural Network Software Stack Defines Application P...
“Hate It Or Love It, Your Neural Network Software Stack Defines Application P...“Hate It Or Love It, Your Neural Network Software Stack Defines Application P...
“Hate It Or Love It, Your Neural Network Software Stack Defines Application P...
 
Introduction to GraalVM
Introduction to GraalVMIntroduction to GraalVM
Introduction to GraalVM
 
TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...
TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...
TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...
 
Labview1_ Computer Applications in Control_ACRRL
Labview1_ Computer Applications in Control_ACRRLLabview1_ Computer Applications in Control_ACRRL
Labview1_ Computer Applications in Control_ACRRL
 

Plus de gaoliang641

Why we didn't catch that
Why we didn't catch thatWhy we didn't catch that
Why we didn't catch thatgaoliang641
 
Why we didn't catch that application bugs
Why we didn't catch that   application bugsWhy we didn't catch that   application bugs
Why we didn't catch that application bugsgaoliang641
 
Understand release engineering
Understand release engineeringUnderstand release engineering
Understand release engineeringgaoliang641
 
Understand regression testing
Understand regression testingUnderstand regression testing
Understand regression testinggaoliang641
 
The art of system and solution testing
The art of system and solution testingThe art of system and solution testing
The art of system and solution testinggaoliang641
 
Tester performance evaluation
Tester performance evaluationTester performance evaluation
Tester performance evaluationgaoliang641
 
Tester developer interaction
Tester developer interactionTester developer interaction
Tester developer interactiongaoliang641
 
Tester career path
Tester career pathTester career path
Tester career pathgaoliang641
 
Agile testing for large projects
Agile testing for large projectsAgile testing for large projects
Agile testing for large projectsgaoliang641
 
Project management for qa manager
Project management for qa managerProject management for qa manager
Project management for qa managergaoliang641
 
Make good use of explortary testing
Make good use of explortary testingMake good use of explortary testing
Make good use of explortary testinggaoliang641
 
Bug best practice
Bug best practiceBug best practice
Bug best practicegaoliang641
 
Lessons learned on localization testing
Lessons learned on localization testingLessons learned on localization testing
Lessons learned on localization testinggaoliang641
 
Lessons learned on software testing automation
Lessons learned on software testing automationLessons learned on software testing automation
Lessons learned on software testing automationgaoliang641
 
How to become a testing expert
How to become a testing expertHow to become a testing expert
How to become a testing expertgaoliang641
 
Functionality testing techniqu
Functionality testing techniquFunctionality testing techniqu
Functionality testing techniqugaoliang641
 
Protocol Security Testing best practice
Protocol Security Testing best practiceProtocol Security Testing best practice
Protocol Security Testing best practicegaoliang641
 
Backward thinking design qa system for quality goals
Backward thinking   design qa system for quality goalsBackward thinking   design qa system for quality goals
Backward thinking design qa system for quality goalsgaoliang641
 
Agile testing for large projects
Agile testing for large projectsAgile testing for large projects
Agile testing for large projectsgaoliang641
 

Plus de gaoliang641 (19)

Why we didn't catch that
Why we didn't catch thatWhy we didn't catch that
Why we didn't catch that
 
Why we didn't catch that application bugs
Why we didn't catch that   application bugsWhy we didn't catch that   application bugs
Why we didn't catch that application bugs
 
Understand release engineering
Understand release engineeringUnderstand release engineering
Understand release engineering
 
Understand regression testing
Understand regression testingUnderstand regression testing
Understand regression testing
 
The art of system and solution testing
The art of system and solution testingThe art of system and solution testing
The art of system and solution testing
 
Tester performance evaluation
Tester performance evaluationTester performance evaluation
Tester performance evaluation
 
Tester developer interaction
Tester developer interactionTester developer interaction
Tester developer interaction
 
Tester career path
Tester career pathTester career path
Tester career path
 
Agile testing for large projects
Agile testing for large projectsAgile testing for large projects
Agile testing for large projects
 
Project management for qa manager
Project management for qa managerProject management for qa manager
Project management for qa manager
 
Make good use of explortary testing
Make good use of explortary testingMake good use of explortary testing
Make good use of explortary testing
 
Bug best practice
Bug best practiceBug best practice
Bug best practice
 
Lessons learned on localization testing
Lessons learned on localization testingLessons learned on localization testing
Lessons learned on localization testing
 
Lessons learned on software testing automation
Lessons learned on software testing automationLessons learned on software testing automation
Lessons learned on software testing automation
 
How to become a testing expert
How to become a testing expertHow to become a testing expert
How to become a testing expert
 
Functionality testing techniqu
Functionality testing techniquFunctionality testing techniqu
Functionality testing techniqu
 
Protocol Security Testing best practice
Protocol Security Testing best practiceProtocol Security Testing best practice
Protocol Security Testing best practice
 
Backward thinking design qa system for quality goals
Backward thinking   design qa system for quality goalsBackward thinking   design qa system for quality goals
Backward thinking design qa system for quality goals
 
Agile testing for large projects
Agile testing for large projectsAgile testing for large projects
Agile testing for large projects
 

Automation framework design and implementation

  • 1. Automation Framework Design and Implementation Liang Gao
  • 2. Agenda Why we need an automation framework Elements of automation framework Design Principles Implementation Principles. Popular automation framework case study This material is for training purpose only. No duplication without consent of Sigma-RT is permitted.
  • 3. The Goal of Automation Increase productivity on repetitive testing Avoid human errors Use night and weekends Ultimate goal is to get the full version report (auto or manual) This material is for training purpose only. No duplication without consent of Sigma-RT is permitted.
  • 4. Automation Framework: Why? I can develop script without any framework Each script can run itself Scripts execution results can be collected and put into a spreadsheet I can do everything I want for automation without a “Framework” This material is for training purpose only. No duplication without consent of Sigma-RT is permitted.
  • 5. Automation Framework: Reason 杀鸡不用宰牛刀 If you have multiple developers to develop scripts in parallel If you have thousands of thousands of scripts need to run If your product release cycle is short and demanding This material is for training purpose only. No duplication without consent of Sigma-RT is permitted.
  • 6. Remember the goal All we want is a full version report (manual or auto) This material is for training purpose only. No duplication without consent of Sigma-RT is permitted.
  • 7. Elements of an Automation Framework Control library Common library Coding guideline Execution engine Test harness Result database This material is for training purpose only. No duplication without consent of Sigma-RT is permitted.
  • 8. Control library All equipment in the network need to be controlled by control library CLI remote control Power of the expect GUI control Selenium API based control Ixia, Smartbit, Ameritec, Abacus etc. This material is for training purpose only. No duplication without consent of Sigma-RT is permitted.
  • 9. Common Library Common APIs to use when automate command tasks Ping library WiFi library MPLS library DHPC library …….. This material is for training purpose only. No duplication without consent of Sigma-RT is permitted.
  • 10. Coding Guideline Common style for ease of maintenance Common headers 20% + comments Enough logging and debugging Documentation This material is for training purpose only. No duplication without consent of Sigma-RT is permitted.
  • 11. Execution engine Concept of Test Bed, Jobs and suites Controlled batch run Exception catch (both software and hardware) Will run to the end no matter what Abortion on demand Live status display Debugging support (not script development debugging) Dynamic suites generation Email notification This material is for training purpose only. No duplication without consent of Sigma-RT is permitted.
  • 12. Test Harness The end product: full version test report Collection of the running results in high level Easy to present and easy to search Easy to debug base on the report Easy to compare between different version’s results This material is for training purpose only. No duplication without consent of Sigma-RT is permitted.
  • 13. Design Principles Code control Extract layer of library design Script and test bed independency Resource allocation Execution parallelization Result storage Dynamic topology Distribution mechanism This material is for training purpose only. No duplication without consent of Sigma-RT is permitted.
  • 14. Code Control Just like any product development, pick your choice Subversion, Clearcase etc. This material is for training purpose only. No duplication without consent of Sigma-RT is permitted.
  • 15. Abstract Layer of Library Design Equipment library layer to high the complexity of different equipment A Calls B Scripts: Common APIs with are equipment independent Abstract API Layer Device dependent layer Abacus Ameritec SIPX Others This material is for training purpose only. No duplication without consent of Sigma-RT is permitted.
  • 16. Script and Test Bed Independency Any scripts can run on any test bed without change inside the script Scripts: A Calls B Best case: all you need to change is the test bed name in the framework Logical Test Bed Test Bed Map TB1 TB2 TB3 TB4 This material is for training purpose only. No duplication without consent of Sigma-RT is permitted.
  • 17. Resource Allocation Each test bed can only run one job? Test bed design Dynamic resource allocation This material is for training purpose only. No duplication without consent of Sigma-RT is permitted.
  • 18. Execution parallelization Per framework instance per test bed? Central framework? This material is for training purpose only. No duplication without consent of Sigma-RT is permitted.
  • 19. Result Storage Logs need to be archived (very important) Full version report need to be stored Need a database? Script info database? Log database? Report database? Suite-version database? This material is for training purpose only. No duplication without consent of Sigma-RT is permitted.
  • 20. Dynamic Topology Each script need different topology Fixed test bed topo vs dynamic test bed topo This material is for training purpose only. No duplication without consent of Sigma-RT is permitted.
  • 21. Distribution Mechanism Centralized Per engineer per copy This material is for training purpose only. No duplication without consent of Sigma-RT is permitted.
  • 22. Implementation Principles Script language of choice Performance consideration This material is for training purpose only. No duplication without consent of Sigma-RT is permitted.
  • 23. Script Language of Choice TCL Perl Ruby Python EXPECT This material is for training purpose only. No duplication without consent of Sigma-RT is permitted.
  • 24. Performance Consideration Central Framework VS Distributed This material is for training purpose only. No duplication without consent of Sigma-RT is permitted.
  • 25. Framework Case Study C company’s - largest network equipment vendor J company’s - largest network equipment vendor H-1 company’s - largest network equipment vendor H-2 company’s - largest network equipment vendor T company’s – windows based security company A company’s – Silicon valley security appliance company N company’s – Silicon Valley startup. Sigma’s – first commercial framework in the market This material is for training purpose only. No duplication without consent of Sigma-RT is permitted.
  • 26. C TCL Per engineer per framework No GUI No dynamic resource allocation No dynamic topology on Framework Open source style library development CLI only Dynamic suites This material is for training purpose only. No duplication without consent of Sigma-RT is permitted.
  • 27. J TCL/Perl Dynamic topology generation by controlling the switch Vlans. Per engineer per framework CLI only Per release code base (on scripts) This material is for training purpose only. No duplication without consent of Sigma-RT is permitted.
  • 28. H-1 Key word driven This material is for training purpose only. No duplication without consent of Sigma-RT is permitted.
  • 29. H-2 Key word driven Script and test bed independent IDE Static suites This material is for training purpose only. No duplication without consent of Sigma-RT is permitted.
  • 30. T Ruby + AutoIT + Witr Strong support for GUI automation on both MS Windows and Browser C/S structure This material is for training purpose only. No duplication without consent of Sigma-RT is permitted.
  • 31. A Perl Heavily use of Selemium This material is for training purpose only. No duplication without consent of Sigma-RT is permitted.
  • 32. N Python All CLI This material is for training purpose only. No duplication without consent of Sigma-RT is permitted.