SlideShare una empresa de Scribd logo
1 de 54
Descargar para leer sin conexión
STAF 在自動化測試上的延伸應用 –
TMSTAF (TrendMicro STAF)
李志和 (Bevis Lee)
Sr. Engineer, R&D Dept.
2012/06/10




                          1   6/12/2012   | Copyright 2012 Trend Micro Inc.
Agenda

      • Brief Introduction of STAF

      • What‟s TMSTAF?

      • TMSTAF vs. QA automation

      • Q&A




6/12/2012   | Copyright 2012 Trend Micro Inc.   2
Brief Introduction of STAF




6/12/2012     | Copyright 2012 Trend Micro Inc.   3
• History
            – Created at IBM Austin in 1998
            – Open-sourced (on SourceForge) in 2001
      • http://staf.sourceforge.net/




6/12/2012     | Copyright 2012 Trend Micro Inc.   4
• STAF runs as a daemon process, called STAFProc




6/12/2012   | Copyright 2012 Trend Micro Inc.   5
What‟s TMSTAF?




6/12/2012     | Copyright 2012 Trend Micro Inc.   6
TMSTAF = Trend Micro STAF




6/12/2012   | Copyright 2012 Trend Micro Inc.   7
TMSTAF Architecture



6/12/2012    Confidential | Copyright 2012 Trend Micro Inc.   8
6/12/2012   | Copyright 2012 Trend Micro Inc.   9
File Structure




6/12/2012   | Copyright 2012 Trend Micro Inc.   10
TMSTAF Features



6/12/2012    Confidential | Copyright 2012 Trend Micro Inc.   11
Testware concept included:
                           Testware configurations can be customized

                           Test suite, test case defined in Python syntax

            Test process included: Setup, Test and Teardown

            Execution log for tracing

            XML test report w/ email notification

            Command line interface
            Cross-platform execution


6/12/2012   | Copyright 2012 Trend Micro Inc.   12
Testing Report




6/12/2012   | Copyright 2012 Trend Micro Inc.   13
Email Notification of Testing Result




6/12/2012   | Copyright 2012 Trend Micro Inc.   14
TMSTAF vs. QA‟s Automation




6/12/2012     | Copyright 2012 Trend Micro Inc.   15
QA‟s Automation Process

       • Automation construction

              Test                                                     Test cases   Automation
                                              Automation
             cases                                                     convert to   script pre-
                                              environment
            creation                                                   automation    run and
                                                 setup
                                                                         scripts      debug



       • Automation online

                          Integrate
                                                           Build
                          with build
                                                          quality
                           release
                                                        verification
                           process



6/12/2012     | Copyright 2012 Trend Micro Inc.               16
Test Cases Creation



6/12/2012    Confidential | Copyright 2012 Trend Micro Inc.   17
• Based on concept of „test suite‟, test case can be
        created for both „manual‟ and „automation‟ use




6/12/2012   | Copyright 2012 Trend Micro Inc.   18
Automation
            Environment Setup


6/12/2012    Confidential | Copyright 2012 Trend Micro Inc.   19
• Automation environment can be deployed easily



                              Automation Environment


                                                  TMSTAF
                                                framework



                            Python 2.6                      STAF 3.x




6/12/2012   | Copyright 2012 Trend Micro Inc.                 20
Test Cases Convert to
      Automation Scripts


6/12/2012   Confidential | Copyright 2012 Trend Micro Inc.   21
• Convert test case to automation scripts structurally




            Automation
                                                  Test step
              Module                                            Test case
                                                               (automation
                                                                  script)
            Automation
                                                  Test step
              Module



            Automation
              Module




6/12/2012     | Copyright 2012 Trend Micro Inc.           22
6/12/2012   | Copyright 2012 Trend Micro Inc.   23
6/12/2012   | Copyright 2012 Trend Micro Inc.   24
3 Weapons…




6/12/2012   Confidential | Copyright 2012 Trend Micro Inc.   25
I - Scenario Mechanism

        test0010.py
            var1 = 111
            var2 = 222
            func = PythonFunction('moduleATester', 'testFunc1')
            r = self.addTest(func, [var1,var2])
            r.failUnlessEqual(0)



        test0020.py
            var1 = 333
            var2 = 444
            func = PythonFunction('moduleATester', 'testFunc1')
            r = self.addTest(func, [var1,var2])
            r.failUnlessEqual(0)




6/12/2012    | Copyright 2012 Trend Micro Inc.   26
test0010.py
              var1 = 111
              var2 = 222
              self.setScenario('_scenario01.py')

            test0020.py
             var1 = 333
             var2 = 444
             self.setScenario('_scenario01.py')




            _scenario01.py
              func = PythonFunction('moduleATester', 'testFunc1')
              result = self.addTest(func, [var1,var2])
              result.failUnlessEqual(0)



6/12/2012      | Copyright 2012 Trend Micro Inc.   27
II - Setup, Teardown and Test procedures

                                                       Setup steps




            Test Case                                  Test steps




                                                      Teardown steps


6/12/2012    | Copyright 2012 Trend Micro Inc.   28
• Setup = addSetup()




      • Test = addTest()




      • Teardown = addTeardown()




6/12/2012   | Copyright 2012 Trend Micro Inc.   29
III - Result Verification

      • Execution result of each steps (includes setup and
        teardown) can be verified easily




                                   Passed if ‘result’ = 0




6/12/2012   | Copyright 2012 Trend Micro Inc.   30
Script Pre-run and
      Debug


6/12/2012   Confidential | Copyright 2012 Trend Micro Inc.   31
• More efficiency development of automation



                                                    Script
                                                  execution




                                     Refinement               Debugging
                                      of script                of script




6/12/2012   | Copyright 2012 Trend Micro Inc.         32
• Script execution from command line interface




6/12/2012   | Copyright 2012 Trend Micro Inc.   33
 “-h” Online Help
                                         Easy to Integrate

                                         Run Target Case
                                         Run Target Suite


6/12/2012   | Copyright 2012 Trend Micro Inc.   34
• Execution log for tracing/debugging




6/12/2012   | Copyright 2012 Trend Micro Inc.   35
6/12/2012   | Copyright 2012 Trend Micro Inc.   36
Automation Online




6/12/2012   Confidential | Copyright 2012 Trend Micro Inc.   37
Build Release Flow




6/12/2012   | Copyright 2012 Trend Micro Inc.   38
1
                                                         3


            2
                                                         4
                                             5




6/12/2012       | Copyright 2012 Trend Micro Inc.   39
Build Quality
      Verification


6/12/2012   Confidential | Copyright 2012 Trend Micro Inc.   40
Mail Notifications




6/12/2012   | Copyright 2012 Trend Micro Inc.   41
6/12/2012   | Copyright 2012 Trend Micro Inc.   42
6/12/2012   | Copyright 2012 Trend Micro Inc.   43
Detail Testing Report




6/12/2012   | Copyright 2012 Trend Micro Inc.   44
6/12/2012   | Copyright 2012 Trend Micro Inc.   45
6/12/2012   | Copyright 2012 Trend Micro Inc.   46
6/12/2012   | Copyright 2012 Trend Micro Inc.   47
6/12/2012   | Copyright 2012 Trend Micro Inc.   48
6/12/2012   | Copyright 2012 Trend Micro Inc.   49
6/12/2012   | Copyright 2012 Trend Micro Inc.   50
6/12/2012   | Copyright 2012 Trend Micro Inc.   51
So, with TMSTAF,
            you can…


6/12/2012    Confidential | Copyright 2012 Trend Micro Inc.   52
Test
                                                   Test case can be used for both ‘manual’ and
             cases creation
                                                   ‘automation’ use, no extra effort needs

              Automation
                                                   Easy to setup automation environment for
              environment
                                                   development and execution
                 setup
               Test cases
               convert to                          Implement test cases with structural and flexible
               automation                          mechanism
                 scripts

            Automation script                      More efficiency development and trouble-shooting
            pre-run and debug                      of automation


              Integrate with
               build release                       Easy integrate with standard build release process
                 process

              Build quality                        Useful information in testing report can help to
              verification                         identify issue more quickly



6/12/2012      | Copyright 2012 Trend Micro Inc.                53
Q&A


6/12/2012   | Copyright 2012 Trend Micro Inc.   54

Más contenido relacionado

La actualidad más candente

Introduction to Behavior Driven Development
Introduction to Behavior Driven Development Introduction to Behavior Driven Development
Introduction to Behavior Driven Development Robin O'Brien
 
Back-2-Basics: Code Contracts
Back-2-Basics: Code ContractsBack-2-Basics: Code Contracts
Back-2-Basics: Code ContractsDavid McCarter
 
DevOps for TYPO3 Teams and Projects
DevOps for TYPO3 Teams and ProjectsDevOps for TYPO3 Teams and Projects
DevOps for TYPO3 Teams and ProjectsFedir RYKHTIK
 
Hello, Android Studio 3.2 & Android App Bundle @ I/O Extended Bangkok 2018
Hello, Android Studio 3.2 & Android App Bundle @ I/O Extended Bangkok 2018Hello, Android Studio 3.2 & Android App Bundle @ I/O Extended Bangkok 2018
Hello, Android Studio 3.2 & Android App Bundle @ I/O Extended Bangkok 2018Somkiat Khitwongwattana
 
Integration Group - Lithium test strategy
Integration Group - Lithium test strategyIntegration Group - Lithium test strategy
Integration Group - Lithium test strategyOpenDaylight
 
Gradle(the innovation continues)
Gradle(the innovation continues)Gradle(the innovation continues)
Gradle(the innovation continues)Sejong Park
 
kranonit S04E02 Кирил Jstor: Hacking .NET applications
kranonit S04E02 Кирил Jstor: Hacking .NET applicationskranonit S04E02 Кирил Jstor: Hacking .NET applications
kranonit S04E02 Кирил Jstor: Hacking .NET applicationsKrivoy Rog IT Community
 
So What Do Cucumbers Have To Do With Testing
So What Do Cucumbers Have To Do With TestingSo What Do Cucumbers Have To Do With Testing
So What Do Cucumbers Have To Do With Testingsjmarsh
 
Gradle: One technology to build them all
Gradle: One technology to build them allGradle: One technology to build them all
Gradle: One technology to build them allBonitasoft
 
Bots on guard of sdlc
Bots on guard of sdlcBots on guard of sdlc
Bots on guard of sdlcAlexey Tokar
 
LeticiaLomeliResume
LeticiaLomeliResumeLeticiaLomeliResume
LeticiaLomeliResumeLETTY_LOGON
 
Super slideshow 2
Super slideshow 2Super slideshow 2
Super slideshow 2zhangxw205
 
Android with dagger_2
Android with dagger_2Android with dagger_2
Android with dagger_2Kros Huang
 
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
 
Szczepan.faber.gradle
Szczepan.faber.gradleSzczepan.faber.gradle
Szczepan.faber.gradlemagda3695
 

La actualidad más candente (20)

Introduction to Behavior Driven Development
Introduction to Behavior Driven Development Introduction to Behavior Driven Development
Introduction to Behavior Driven Development
 
Back-2-Basics: Code Contracts
Back-2-Basics: Code ContractsBack-2-Basics: Code Contracts
Back-2-Basics: Code Contracts
 
DevOps for TYPO3 Teams and Projects
DevOps for TYPO3 Teams and ProjectsDevOps for TYPO3 Teams and Projects
DevOps for TYPO3 Teams and Projects
 
Hello, Android Studio 3.2 & Android App Bundle @ I/O Extended Bangkok 2018
Hello, Android Studio 3.2 & Android App Bundle @ I/O Extended Bangkok 2018Hello, Android Studio 3.2 & Android App Bundle @ I/O Extended Bangkok 2018
Hello, Android Studio 3.2 & Android App Bundle @ I/O Extended Bangkok 2018
 
DI with Dagger2
DI with Dagger2DI with Dagger2
DI with Dagger2
 
Integration Group - Lithium test strategy
Integration Group - Lithium test strategyIntegration Group - Lithium test strategy
Integration Group - Lithium test strategy
 
Gradle explained
Gradle explainedGradle explained
Gradle explained
 
Gradle(the innovation continues)
Gradle(the innovation continues)Gradle(the innovation continues)
Gradle(the innovation continues)
 
Gradle
GradleGradle
Gradle
 
kranonit S04E02 Кирил Jstor: Hacking .NET applications
kranonit S04E02 Кирил Jstor: Hacking .NET applicationskranonit S04E02 Кирил Jstor: Hacking .NET applications
kranonit S04E02 Кирил Jstor: Hacking .NET applications
 
So What Do Cucumbers Have To Do With Testing
So What Do Cucumbers Have To Do With TestingSo What Do Cucumbers Have To Do With Testing
So What Do Cucumbers Have To Do With Testing
 
Boost your API with GraphQL
Boost your API with GraphQLBoost your API with GraphQL
Boost your API with GraphQL
 
Gradle: One technology to build them all
Gradle: One technology to build them allGradle: One technology to build them all
Gradle: One technology to build them all
 
Bots on guard of sdlc
Bots on guard of sdlcBots on guard of sdlc
Bots on guard of sdlc
 
LeticiaLomeliResume
LeticiaLomeliResumeLeticiaLomeliResume
LeticiaLomeliResume
 
Tdd,Ioc
Tdd,IocTdd,Ioc
Tdd,Ioc
 
Super slideshow 2
Super slideshow 2Super slideshow 2
Super slideshow 2
 
Android with dagger_2
Android with dagger_2Android with dagger_2
Android with dagger_2
 
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
 
Szczepan.faber.gradle
Szczepan.faber.gradleSzczepan.faber.gradle
Szczepan.faber.gradle
 

Similar a STAF 在自動化測試上的延伸應用 -- TMSTAF (TrendMicro STAF)

SPCA2013 - Building a SharePoint Factory
SPCA2013 - Building a SharePoint FactorySPCA2013 - Building a SharePoint Factory
SPCA2013 - Building a SharePoint FactoryNCCOMMS
 
STPCon fall 2012: The Testing Renaissance Has Arrived
STPCon fall 2012: The Testing Renaissance Has ArrivedSTPCon fall 2012: The Testing Renaissance Has Arrived
STPCon fall 2012: The Testing Renaissance Has ArrivedSOASTA
 
Framework for Web Automation Testing
Framework for Web Automation TestingFramework for Web Automation Testing
Framework for Web Automation TestingTaras Lytvyn
 
Model-Driven Development for Safety-Critical Software
Model-Driven Development for Safety-Critical SoftwareModel-Driven Development for Safety-Critical Software
Model-Driven Development for Safety-Critical Softwaregjuljo
 
From zero to one - How we evolved our test automation processes and mindset i...
From zero to one - How we evolved our test automation processes and mindset i...From zero to one - How we evolved our test automation processes and mindset i...
From zero to one - How we evolved our test automation processes and mindset i...Jen-Chieh Ko
 
“Data Versioning: Towards Reproducibility in Machine Learning,” a Presentatio...
“Data Versioning: Towards Reproducibility in Machine Learning,” a Presentatio...“Data Versioning: Towards Reproducibility in Machine Learning,” a Presentatio...
“Data Versioning: Towards Reproducibility in Machine Learning,” a Presentatio...Edge AI and Vision Alliance
 
JDXA, The KISS ORM for Android
JDXA, The KISS ORM for AndroidJDXA, The KISS ORM for Android
JDXA, The KISS ORM for AndroidDamodar Periwal
 
Schneider Electric Scada Global Support Provides Troubleshooting and Technica...
Schneider Electric Scada Global Support Provides Troubleshooting and Technica...Schneider Electric Scada Global Support Provides Troubleshooting and Technica...
Schneider Electric Scada Global Support Provides Troubleshooting and Technica...Preeya Selvarajah
 
How CapitalOne Transformed DevTest or Continuous Delivery - AppSphere16
How CapitalOne Transformed DevTest or Continuous Delivery - AppSphere16How CapitalOne Transformed DevTest or Continuous Delivery - AppSphere16
How CapitalOne Transformed DevTest or Continuous Delivery - AppSphere16AppDynamics
 
Setting Up Your Mobile Testing Factory for 2013
Setting Up Your Mobile Testing Factory for 2013Setting Up Your Mobile Testing Factory for 2013
Setting Up Your Mobile Testing Factory for 2013SOASTA
 
Automation Test Lead With 9 Years
Automation Test Lead With 9 YearsAutomation Test Lead With 9 Years
Automation Test Lead With 9 Yearssenthil kumar
 
Performance Testing
Performance TestingPerformance Testing
Performance TestingvodQA
 
Continuous Performance Monitoring of a Distributed Application [CON4730]
Continuous Performance Monitoring of a Distributed Application [CON4730]Continuous Performance Monitoring of a Distributed Application [CON4730]
Continuous Performance Monitoring of a Distributed Application [CON4730]Ashish Srivastava
 
Visual Studio 2010 Testing Overview
Visual Studio 2010 Testing OverviewVisual Studio 2010 Testing Overview
Visual Studio 2010 Testing OverviewSteve Lange
 
Initializing new project
Initializing new projectInitializing new project
Initializing new projectLai Ha
 
OS-Final-Transform-Manual-Testing-Processes-to-incorporate-Automatio....pptx
OS-Final-Transform-Manual-Testing-Processes-to-incorporate-Automatio....pptxOS-Final-Transform-Manual-Testing-Processes-to-incorporate-Automatio....pptx
OS-Final-Transform-Manual-Testing-Processes-to-incorporate-Automatio....pptxShivareddyGangam
 
Dynamic Data Masking - Breakthrough Innovation in Application Security
Dynamic Data Masking - Breakthrough Innovation in Application SecurityDynamic Data Masking - Breakthrough Innovation in Application Security
Dynamic Data Masking - Breakthrough Innovation in Application SecurityDobler Consulting
 
Top 5 Automation Challenges Webinar
Top 5 Automation Challenges WebinarTop 5 Automation Challenges Webinar
Top 5 Automation Challenges WebinarPerfecto by Perforce
 

Similar a STAF 在自動化測試上的延伸應用 -- TMSTAF (TrendMicro STAF) (20)

SPCA2013 - Building a SharePoint Factory
SPCA2013 - Building a SharePoint FactorySPCA2013 - Building a SharePoint Factory
SPCA2013 - Building a SharePoint Factory
 
STPCon fall 2012: The Testing Renaissance Has Arrived
STPCon fall 2012: The Testing Renaissance Has ArrivedSTPCon fall 2012: The Testing Renaissance Has Arrived
STPCon fall 2012: The Testing Renaissance Has Arrived
 
Framework for Web Automation Testing
Framework for Web Automation TestingFramework for Web Automation Testing
Framework for Web Automation Testing
 
Model-Driven Development for Safety-Critical Software
Model-Driven Development for Safety-Critical SoftwareModel-Driven Development for Safety-Critical Software
Model-Driven Development for Safety-Critical Software
 
From zero to one - How we evolved our test automation processes and mindset i...
From zero to one - How we evolved our test automation processes and mindset i...From zero to one - How we evolved our test automation processes and mindset i...
From zero to one - How we evolved our test automation processes and mindset i...
 
“Data Versioning: Towards Reproducibility in Machine Learning,” a Presentatio...
“Data Versioning: Towards Reproducibility in Machine Learning,” a Presentatio...“Data Versioning: Towards Reproducibility in Machine Learning,” a Presentatio...
“Data Versioning: Towards Reproducibility in Machine Learning,” a Presentatio...
 
JDXA, The KISS ORM for Android
JDXA, The KISS ORM for AndroidJDXA, The KISS ORM for Android
JDXA, The KISS ORM for Android
 
Schneider Electric Scada Global Support Provides Troubleshooting and Technica...
Schneider Electric Scada Global Support Provides Troubleshooting and Technica...Schneider Electric Scada Global Support Provides Troubleshooting and Technica...
Schneider Electric Scada Global Support Provides Troubleshooting and Technica...
 
How CapitalOne Transformed DevTest or Continuous Delivery - AppSphere16
How CapitalOne Transformed DevTest or Continuous Delivery - AppSphere16How CapitalOne Transformed DevTest or Continuous Delivery - AppSphere16
How CapitalOne Transformed DevTest or Continuous Delivery - AppSphere16
 
Setting Up Your Mobile Testing Factory for 2013
Setting Up Your Mobile Testing Factory for 2013Setting Up Your Mobile Testing Factory for 2013
Setting Up Your Mobile Testing Factory for 2013
 
Automation Test Lead With 9 Years
Automation Test Lead With 9 YearsAutomation Test Lead With 9 Years
Automation Test Lead With 9 Years
 
Performance Testing
Performance TestingPerformance Testing
Performance Testing
 
Continuous Performance Monitoring of a Distributed Application [CON4730]
Continuous Performance Monitoring of a Distributed Application [CON4730]Continuous Performance Monitoring of a Distributed Application [CON4730]
Continuous Performance Monitoring of a Distributed Application [CON4730]
 
Visual Studio 2010 Testing Overview
Visual Studio 2010 Testing OverviewVisual Studio 2010 Testing Overview
Visual Studio 2010 Testing Overview
 
Initializing new project
Initializing new projectInitializing new project
Initializing new project
 
OS-Final-Transform-Manual-Testing-Processes-to-incorporate-Automatio....pptx
OS-Final-Transform-Manual-Testing-Processes-to-incorporate-Automatio....pptxOS-Final-Transform-Manual-Testing-Processes-to-incorporate-Automatio....pptx
OS-Final-Transform-Manual-Testing-Processes-to-incorporate-Automatio....pptx
 
Testing syllabus
Testing syllabusTesting syllabus
Testing syllabus
 
Dynamic Data Masking - Breakthrough Innovation in Application Security
Dynamic Data Masking - Breakthrough Innovation in Application SecurityDynamic Data Masking - Breakthrough Innovation in Application Security
Dynamic Data Masking - Breakthrough Innovation in Application Security
 
Developer want change Ops want control - devops
Developer want change Ops want control - devopsDeveloper want change Ops want control - devops
Developer want change Ops want control - devops
 
Top 5 Automation Challenges Webinar
Top 5 Automation Challenges WebinarTop 5 Automation Challenges Webinar
Top 5 Automation Challenges Webinar
 

Más de pycontw

Network Security and Analysis with Python
Network Security and Analysis with PythonNetwork Security and Analysis with Python
Network Security and Analysis with Pythonpycontw
 
Python on FreeBSD
Python on FreeBSDPython on FreeBSD
Python on FreeBSDpycontw
 
讓 Python Script 擁有圖形化介面的簡單方法
讓 Python Script 擁有圖形化介面的簡單方法讓 Python Script 擁有圖形化介面的簡單方法
讓 Python Script 擁有圖形化介面的簡單方法pycontw
 
CyberLink Meets Python
CyberLink Meets PythonCyberLink Meets Python
CyberLink Meets Pythonpycontw
 
PyKinect: Body Iteration Application Development Using Python
PyKinect: Body Iteration Application Development Using PythonPyKinect: Body Iteration Application Development Using Python
PyKinect: Body Iteration Application Development Using Pythonpycontw
 
Developing Python Apps on Windows Azure
Developing Python Apps on Windows AzureDeveloping Python Apps on Windows Azure
Developing Python Apps on Windows Azurepycontw
 
Qt Quick GUI Programming with PySide
Qt Quick GUI Programming with PySideQt Quick GUI Programming with PySide
Qt Quick GUI Programming with PySidepycontw
 
Grid Job Management
Grid Job ManagementGrid Job Management
Grid Job Managementpycontw
 
Small Python Tools for Software Release Engineering
Small Python Tools for Software Release EngineeringSmall Python Tools for Software Release Engineering
Small Python Tools for Software Release Engineeringpycontw
 
Python and Startup
Python and StartupPython and Startup
Python and Startuppycontw
 
Panoramic Video in Environmental Monitoring Software Development and Applica...
Panoramic Video in Environmental Monitoring Software Development and Applica...Panoramic Video in Environmental Monitoring Software Development and Applica...
Panoramic Video in Environmental Monitoring Software Development and Applica...pycontw
 
那些年 Python 攻佔了 GIS / The Year Python Takes Over GIS
那些年 Python 攻佔了 GIS / The Year Python Takes Over GIS那些年 Python 攻佔了 GIS / The Year Python Takes Over GIS
那些年 Python 攻佔了 GIS / The Year Python Takes Over GISpycontw
 
Introduction to Discrete-Event Simulation Using SimPy
Introduction to Discrete-Event Simulation Using SimPyIntroduction to Discrete-Event Simulation Using SimPy
Introduction to Discrete-Event Simulation Using SimPypycontw
 
Python and the Web
Python and the WebPython and the Web
Python and the Webpycontw
 
Large-scale Array-oriented Computing with Python
Large-scale Array-oriented Computing with PythonLarge-scale Array-oriented Computing with Python
Large-scale Array-oriented Computing with Pythonpycontw
 

Más de pycontw (15)

Network Security and Analysis with Python
Network Security and Analysis with PythonNetwork Security and Analysis with Python
Network Security and Analysis with Python
 
Python on FreeBSD
Python on FreeBSDPython on FreeBSD
Python on FreeBSD
 
讓 Python Script 擁有圖形化介面的簡單方法
讓 Python Script 擁有圖形化介面的簡單方法讓 Python Script 擁有圖形化介面的簡單方法
讓 Python Script 擁有圖形化介面的簡單方法
 
CyberLink Meets Python
CyberLink Meets PythonCyberLink Meets Python
CyberLink Meets Python
 
PyKinect: Body Iteration Application Development Using Python
PyKinect: Body Iteration Application Development Using PythonPyKinect: Body Iteration Application Development Using Python
PyKinect: Body Iteration Application Development Using Python
 
Developing Python Apps on Windows Azure
Developing Python Apps on Windows AzureDeveloping Python Apps on Windows Azure
Developing Python Apps on Windows Azure
 
Qt Quick GUI Programming with PySide
Qt Quick GUI Programming with PySideQt Quick GUI Programming with PySide
Qt Quick GUI Programming with PySide
 
Grid Job Management
Grid Job ManagementGrid Job Management
Grid Job Management
 
Small Python Tools for Software Release Engineering
Small Python Tools for Software Release EngineeringSmall Python Tools for Software Release Engineering
Small Python Tools for Software Release Engineering
 
Python and Startup
Python and StartupPython and Startup
Python and Startup
 
Panoramic Video in Environmental Monitoring Software Development and Applica...
Panoramic Video in Environmental Monitoring Software Development and Applica...Panoramic Video in Environmental Monitoring Software Development and Applica...
Panoramic Video in Environmental Monitoring Software Development and Applica...
 
那些年 Python 攻佔了 GIS / The Year Python Takes Over GIS
那些年 Python 攻佔了 GIS / The Year Python Takes Over GIS那些年 Python 攻佔了 GIS / The Year Python Takes Over GIS
那些年 Python 攻佔了 GIS / The Year Python Takes Over GIS
 
Introduction to Discrete-Event Simulation Using SimPy
Introduction to Discrete-Event Simulation Using SimPyIntroduction to Discrete-Event Simulation Using SimPy
Introduction to Discrete-Event Simulation Using SimPy
 
Python and the Web
Python and the WebPython and the Web
Python and the Web
 
Large-scale Array-oriented Computing with Python
Large-scale Array-oriented Computing with PythonLarge-scale Array-oriented Computing with Python
Large-scale Array-oriented Computing with Python
 

Último

Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 

Último (20)

Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 

STAF 在自動化測試上的延伸應用 -- TMSTAF (TrendMicro STAF)

  • 1. STAF 在自動化測試上的延伸應用 – TMSTAF (TrendMicro STAF) 李志和 (Bevis Lee) Sr. Engineer, R&D Dept. 2012/06/10 1 6/12/2012 | Copyright 2012 Trend Micro Inc.
  • 2. Agenda • Brief Introduction of STAF • What‟s TMSTAF? • TMSTAF vs. QA automation • Q&A 6/12/2012 | Copyright 2012 Trend Micro Inc. 2
  • 3. Brief Introduction of STAF 6/12/2012 | Copyright 2012 Trend Micro Inc. 3
  • 4. • History – Created at IBM Austin in 1998 – Open-sourced (on SourceForge) in 2001 • http://staf.sourceforge.net/ 6/12/2012 | Copyright 2012 Trend Micro Inc. 4
  • 5. • STAF runs as a daemon process, called STAFProc 6/12/2012 | Copyright 2012 Trend Micro Inc. 5
  • 6. What‟s TMSTAF? 6/12/2012 | Copyright 2012 Trend Micro Inc. 6
  • 7. TMSTAF = Trend Micro STAF 6/12/2012 | Copyright 2012 Trend Micro Inc. 7
  • 8. TMSTAF Architecture 6/12/2012 Confidential | Copyright 2012 Trend Micro Inc. 8
  • 9. 6/12/2012 | Copyright 2012 Trend Micro Inc. 9
  • 10. File Structure 6/12/2012 | Copyright 2012 Trend Micro Inc. 10
  • 11. TMSTAF Features 6/12/2012 Confidential | Copyright 2012 Trend Micro Inc. 11
  • 12. Testware concept included: Testware configurations can be customized Test suite, test case defined in Python syntax Test process included: Setup, Test and Teardown Execution log for tracing XML test report w/ email notification Command line interface Cross-platform execution 6/12/2012 | Copyright 2012 Trend Micro Inc. 12
  • 13. Testing Report 6/12/2012 | Copyright 2012 Trend Micro Inc. 13
  • 14. Email Notification of Testing Result 6/12/2012 | Copyright 2012 Trend Micro Inc. 14
  • 15. TMSTAF vs. QA‟s Automation 6/12/2012 | Copyright 2012 Trend Micro Inc. 15
  • 16. QA‟s Automation Process • Automation construction Test Test cases Automation Automation cases convert to script pre- environment creation automation run and setup scripts debug • Automation online Integrate Build with build quality release verification process 6/12/2012 | Copyright 2012 Trend Micro Inc. 16
  • 17. Test Cases Creation 6/12/2012 Confidential | Copyright 2012 Trend Micro Inc. 17
  • 18. • Based on concept of „test suite‟, test case can be created for both „manual‟ and „automation‟ use 6/12/2012 | Copyright 2012 Trend Micro Inc. 18
  • 19. Automation Environment Setup 6/12/2012 Confidential | Copyright 2012 Trend Micro Inc. 19
  • 20. • Automation environment can be deployed easily Automation Environment TMSTAF framework Python 2.6 STAF 3.x 6/12/2012 | Copyright 2012 Trend Micro Inc. 20
  • 21. Test Cases Convert to Automation Scripts 6/12/2012 Confidential | Copyright 2012 Trend Micro Inc. 21
  • 22. • Convert test case to automation scripts structurally Automation Test step Module Test case (automation script) Automation Test step Module Automation Module 6/12/2012 | Copyright 2012 Trend Micro Inc. 22
  • 23. 6/12/2012 | Copyright 2012 Trend Micro Inc. 23
  • 24. 6/12/2012 | Copyright 2012 Trend Micro Inc. 24
  • 25. 3 Weapons… 6/12/2012 Confidential | Copyright 2012 Trend Micro Inc. 25
  • 26. I - Scenario Mechanism test0010.py var1 = 111 var2 = 222 func = PythonFunction('moduleATester', 'testFunc1') r = self.addTest(func, [var1,var2]) r.failUnlessEqual(0) test0020.py var1 = 333 var2 = 444 func = PythonFunction('moduleATester', 'testFunc1') r = self.addTest(func, [var1,var2]) r.failUnlessEqual(0) 6/12/2012 | Copyright 2012 Trend Micro Inc. 26
  • 27. test0010.py var1 = 111 var2 = 222 self.setScenario('_scenario01.py') test0020.py var1 = 333 var2 = 444 self.setScenario('_scenario01.py') _scenario01.py func = PythonFunction('moduleATester', 'testFunc1') result = self.addTest(func, [var1,var2]) result.failUnlessEqual(0) 6/12/2012 | Copyright 2012 Trend Micro Inc. 27
  • 28. II - Setup, Teardown and Test procedures Setup steps Test Case Test steps Teardown steps 6/12/2012 | Copyright 2012 Trend Micro Inc. 28
  • 29. • Setup = addSetup() • Test = addTest() • Teardown = addTeardown() 6/12/2012 | Copyright 2012 Trend Micro Inc. 29
  • 30. III - Result Verification • Execution result of each steps (includes setup and teardown) can be verified easily Passed if ‘result’ = 0 6/12/2012 | Copyright 2012 Trend Micro Inc. 30
  • 31. Script Pre-run and Debug 6/12/2012 Confidential | Copyright 2012 Trend Micro Inc. 31
  • 32. • More efficiency development of automation Script execution Refinement Debugging of script of script 6/12/2012 | Copyright 2012 Trend Micro Inc. 32
  • 33. • Script execution from command line interface 6/12/2012 | Copyright 2012 Trend Micro Inc. 33
  • 34.  “-h” Online Help  Easy to Integrate  Run Target Case  Run Target Suite 6/12/2012 | Copyright 2012 Trend Micro Inc. 34
  • 35. • Execution log for tracing/debugging 6/12/2012 | Copyright 2012 Trend Micro Inc. 35
  • 36. 6/12/2012 | Copyright 2012 Trend Micro Inc. 36
  • 37. Automation Online 6/12/2012 Confidential | Copyright 2012 Trend Micro Inc. 37
  • 38. Build Release Flow 6/12/2012 | Copyright 2012 Trend Micro Inc. 38
  • 39. 1 3 2 4 5 6/12/2012 | Copyright 2012 Trend Micro Inc. 39
  • 40. Build Quality Verification 6/12/2012 Confidential | Copyright 2012 Trend Micro Inc. 40
  • 41. Mail Notifications 6/12/2012 | Copyright 2012 Trend Micro Inc. 41
  • 42. 6/12/2012 | Copyright 2012 Trend Micro Inc. 42
  • 43. 6/12/2012 | Copyright 2012 Trend Micro Inc. 43
  • 44. Detail Testing Report 6/12/2012 | Copyright 2012 Trend Micro Inc. 44
  • 45. 6/12/2012 | Copyright 2012 Trend Micro Inc. 45
  • 46. 6/12/2012 | Copyright 2012 Trend Micro Inc. 46
  • 47. 6/12/2012 | Copyright 2012 Trend Micro Inc. 47
  • 48. 6/12/2012 | Copyright 2012 Trend Micro Inc. 48
  • 49. 6/12/2012 | Copyright 2012 Trend Micro Inc. 49
  • 50. 6/12/2012 | Copyright 2012 Trend Micro Inc. 50
  • 51. 6/12/2012 | Copyright 2012 Trend Micro Inc. 51
  • 52. So, with TMSTAF, you can… 6/12/2012 Confidential | Copyright 2012 Trend Micro Inc. 52
  • 53. Test Test case can be used for both ‘manual’ and cases creation ‘automation’ use, no extra effort needs Automation Easy to setup automation environment for environment development and execution setup Test cases convert to Implement test cases with structural and flexible automation mechanism scripts Automation script More efficiency development and trouble-shooting pre-run and debug of automation Integrate with build release Easy integrate with standard build release process process Build quality Useful information in testing report can help to verification identify issue more quickly 6/12/2012 | Copyright 2012 Trend Micro Inc. 53
  • 54. Q&A 6/12/2012 | Copyright 2012 Trend Micro Inc. 54