SlideShare a Scribd company logo
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

More Related Content

What's hot

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 Contracts
David McCarter
 
DevOps for TYPO3 Teams and Projects
DevOps for TYPO3 Teams and ProjectsDevOps for TYPO3 Teams and Projects
DevOps for TYPO3 Teams and Projects
Fedir 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 2018
Somkiat Khitwongwattana
 
DI with Dagger2
DI with Dagger2DI with Dagger2
DI with Dagger2
Eugen Martynov
 
Integration Group - Lithium test strategy
Integration Group - Lithium test strategyIntegration Group - Lithium test strategy
Integration Group - Lithium test strategy
OpenDaylight
 
Gradle explained
Gradle explainedGradle explained
Gradle explained
Andrey Mukamolov
 
Gradle(the innovation continues)
Gradle(the innovation continues)Gradle(the innovation continues)
Gradle(the innovation continues)
Sejong Park
 
Gradle
GradleGradle
Gradle
Han Yin
 
kranonit S04E02 Кирил Jstor: Hacking .NET applications
kranonit S04E02 Кирил Jstor: Hacking .NET applicationskranonit S04E02 Кирил Jstor: Hacking .NET applications
kranonit S04E02 Кирил Jstor: Hacking .NET applications
Krivoy 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 Testing
sjmarsh
 
Boost your API with GraphQL
Boost your API with GraphQLBoost your API with GraphQL
Boost your API with GraphQL
Jean-Francois James
 
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
Bonitasoft
 
Bots on guard of sdlc
Bots on guard of sdlcBots on guard of sdlc
Bots on guard of sdlc
Alexey Tokar
 
LeticiaLomeliResume
LeticiaLomeliResumeLeticiaLomeliResume
LeticiaLomeliResume
LETTY_LOGON
 
Tdd,Ioc
Tdd,IocTdd,Ioc
Super slideshow 2
Super slideshow 2Super slideshow 2
Super slideshow 2
zhangxw205
 
Android with dagger_2
Android with dagger_2Android with dagger_2
Android with dagger_2
Kros 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 Framework
Ramdhan Hidayat
 
Szczepan.faber.gradle
Szczepan.faber.gradleSzczepan.faber.gradle
Szczepan.faber.gradle
magda3695
 

What's hot (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 to STAF 在自動化測試上的延伸應用 -- TMSTAF (TrendMicro STAF)

SPCA2013 - Building a SharePoint Factory
SPCA2013 - Building a SharePoint FactorySPCA2013 - Building a SharePoint Factory
SPCA2013 - Building a SharePoint Factory
NCCOMMS
 
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
SOASTA
 
Framework for Web Automation Testing
Framework for Web Automation TestingFramework for Web Automation Testing
Framework for Web Automation Testing
Taras 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 Software
gjuljo
 
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 Android
Damodar 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 - AppSphere16
AppDynamics
 
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
SOASTA
 
Automation Test Lead With 9 Years
Automation Test Lead With 9 YearsAutomation Test Lead With 9 Years
Automation Test Lead With 9 Years
senthil kumar
 
Performance Testing
Performance TestingPerformance Testing
Performance Testing
vodQA
 
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 Overview
Steve Lange
 
Initializing new project
Initializing new projectInitializing new project
Initializing new project
Lai Ha
 
MLOPS By Amazon offered and free download
MLOPS By Amazon offered and free downloadMLOPS By Amazon offered and free download
MLOPS By Amazon offered and free download
pouyan533
 
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
ShivareddyGangam
 
Testing syllabus
Testing syllabusTesting syllabus
Testing syllabus
Rohit Chintu
 
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
Dobler Consulting
 
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
Venkat Janardhanam, MS, MBA
 

Similar to 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
 
MLOPS By Amazon offered and free download
MLOPS By Amazon offered and free downloadMLOPS By Amazon offered and free download
MLOPS By Amazon offered and free download
 
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
 

More from pycontw

Network Security and Analysis with Python
Network Security and Analysis with PythonNetwork Security and Analysis with Python
Network Security and Analysis with Python
pycontw
 
Python on FreeBSD
Python on FreeBSDPython on FreeBSD
Python on FreeBSD
pycontw
 
讓 Python Script 擁有圖形化介面的簡單方法
讓 Python Script 擁有圖形化介面的簡單方法讓 Python Script 擁有圖形化介面的簡單方法
讓 Python Script 擁有圖形化介面的簡單方法
pycontw
 
CyberLink Meets Python
CyberLink Meets PythonCyberLink Meets Python
CyberLink Meets Python
pycontw
 
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
pycontw
 
Developing Python Apps on Windows Azure
Developing Python Apps on Windows AzureDeveloping Python Apps on Windows Azure
Developing Python Apps on Windows Azure
pycontw
 
Qt Quick GUI Programming with PySide
Qt Quick GUI Programming with PySideQt Quick GUI Programming with PySide
Qt Quick GUI Programming with PySide
pycontw
 
Grid Job Management
Grid Job ManagementGrid Job Management
Grid Job Management
pycontw
 
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
pycontw
 
Python and Startup
Python and StartupPython and Startup
Python and Startup
pycontw
 
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 GIS
pycontw
 
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
pycontw
 
Python and the Web
Python and the WebPython and the Web
Python and the Web
pycontw
 
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
pycontw
 

More from 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
 

Recently uploaded

GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
kumardaparthi1024
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
shyamraj55
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
Daiki Mogmet Ito
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
ssuserfac0301
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
Zilliz
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
Zilliz
 
AI-Powered Food Delivery Transforming App Development in Saudi Arabia.pdf
AI-Powered Food Delivery Transforming App Development in Saudi Arabia.pdfAI-Powered Food Delivery Transforming App Development in Saudi Arabia.pdf
AI-Powered Food Delivery Transforming App Development in Saudi Arabia.pdf
Techgropse Pvt.Ltd.
 
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxOcean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
SitimaJohn
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 
OpenID AuthZEN Interop Read Out - Authorization
OpenID AuthZEN Interop Read Out - AuthorizationOpenID AuthZEN Interop Read Out - Authorization
OpenID AuthZEN Interop Read Out - Authorization
David Brossard
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
DianaGray10
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
Zilliz
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
Kumud Singh
 

Recently uploaded (20)

GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
 
AI-Powered Food Delivery Transforming App Development in Saudi Arabia.pdf
AI-Powered Food Delivery Transforming App Development in Saudi Arabia.pdfAI-Powered Food Delivery Transforming App Development in Saudi Arabia.pdf
AI-Powered Food Delivery Transforming App Development in Saudi Arabia.pdf
 
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxOcean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 
OpenID AuthZEN Interop Read Out - Authorization
OpenID AuthZEN Interop Read Out - AuthorizationOpenID AuthZEN Interop Read Out - Authorization
OpenID AuthZEN Interop Read Out - Authorization
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
 

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