SlideShare ist ein Scribd-Unternehmen logo
1 von 54
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

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
 

Was ist angesagt? (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
 

Ähnlich wie 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
 

Ähnlich wie 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
 

Mehr von 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
 

Mehr von 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
 

Kürzlich hochgeladen

Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 

Kürzlich hochgeladen (20)

Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 

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