NYC Technology Forum Introduction to Test Automation 11/2/07 All rights reserved Not to be reproduced without permission Bill Rinko-Gay Solutions Director, Software Quality Management John Stephens Practice Director, Software Quality Management
Get familiarized with basic concepts of Test Automation Understand what it takes to implement effective Test Automation Introduce techniques to emphasize maintainability Objectives
What is Test Automation?
Benefits of Automated Testing Examples Run automated tests unattended (overnight) Reliable, consistent testing Increased speed in test execution Increased test coverage
General Misconceptions About Automated Testing Automation is simply “record and playback” Automation is the “silver bullet” to solve all testing problems Return on Investment will be achieved immediately Automation will replace all manual test cases
What is Test Automation? An enhancement on manual testing Utilizes technology to provide repeatable, consistent testing of the Application Under Test (AUT) Reduces costs and time for regression testing
Primary Goal of Automated Testing To reduce number of tests to be run manually, not to eliminate manual testing altogether  Automated Testing is an enhancement upon existing methodology and manual process
So, You Want to Implement Test Automation…
Challenges  in Automated Testing Test Automation is a development effort! Automation is time consuming to create (and maintain, if poorly implemented) Limitations of the testing tools and developer expertise Automation of the wrong tests for the given constraints Unrealistic expectations
Test Automation Checklist Criteria for Automation Tool – AUT compatibility Test Automation Requirements Implementation Design Stable, isolated test environment Test data Implementation and coding standards Maintenance
What to Automate? Choosing Ideal Manual Test Cases
Criteria for Automating a Test Case Why Automate? Selecting the right tests to automate is very critical to effective implementation!! Repetitiveness Test Cases that are to be performed repeatedly Test Cases that are business-critical and/or high risk Criticality Tedious Test Cases that are tedious to perform manually  Time Consuming Test Cases that require considerable amount of time to perform manually
Test Automation Checklist Criteria for Automation Tool – AUT compatibility Test Automation Requirements Implementation Design Stable, isolated test environment Test data Implementation and coding standards Maintenance
Tool - AUT Compatibility Conduct Proof of Concept of Tool on AUT Navigate through functional areas to test Verify Object Recognition of AUT Determine whether tool selection is valid
Test Automation Checklist Criteria for Automation Tool – AUT compatibility Test Automation Requirements Implementation Design Stable, isolated test environment Test data Implementation and coding standards Maintenance
Test Automation Requirements Definition The set of criteria that the automated test suite must meet to be successful - the requirements for an automation project.
Test Automation Requirements What are the Success Criteria for the project? Meeting the goals and objectives of the automation effort Tool capabilities Capabilities and skills of the test automation team Example Requirement: The test tool shall test the login functionality of a web application, on a Windows 2000 platform, and run unattended simultaneously on three PCs.
Planning for Test Automation Test Automation Requirements  help drive and determine  the approach and design of the implementation. Test Automation Requirements Test Automation Design/Approach
Test Automation Checklist Criteria for Automation Tool – AUT compatibility Test Automation Requirements Implementation Design Stable, isolated test environment Test data Implementation and coding standards Maintenance
Test Automation Methodology Analysis &  Strategy Execution & Results  Management Construction Design
Automation Architecture encompasses the environment for execution and development of an automated test suite.  It is the overall scheme in which the test scripts will be developed. Implement a Test Automation Architecture
Designing the Test Automation Architecture Maximizing Maintainability
Automation Architecture Design Options Capture/replay Framework-based Data-driven Keyword-driven Hybrid
Design Goals Evaluate feasible design options for implementation Anticipate likely changes to AUT Consider skill level of team members developing and/or inheriting the automated scripts Design of automated tests should address test automation requirements
Typical Design Components Subscripts Startup Script Data Table Driver Script Function Library Compiled module containing application-specific routines and functions A script that initiates automated test execution A script that performs a discrete portion of a business process to be tested A script that sets up and standardizes test automation environment Data sources (such as spreadsheets) used to store test data for use during test execution
Test Automation Checklist Criteria for Automation Tool – AUT compatibility Test Automation Requirements Implementation Design Stable, isolated test environment Test data Implementation and coding standards Maintenance
Automation Test Environment Stable and isolated environment is important for reliable execution of automated tests GUI must be identical to Production
Test Automation Checklist Criteria for Automation Tool – AUT compatibility Test Automation Requirements Implementation Design Stable, isolated test environment Test data Implementation and coding standards Maintenance
Test Data Strategy Create a test environment that is restorable to a known constant, such that the test cases can be repeated each time Identify the procedure required for backup and recovery of data Test Data is critical to reliable automated testing!!
Creating Test Data Various Methods Create test data through application by doing data entry Import test data from production environment, if available Develop automated test scripts to generate test data as prerequisite
Test Automation Checklist Criteria for Automation Tool – AUT compatibility Test Automation Requirements Implementation Design Stable, isolated test environment Test data Implementation and coding standards Maintenance
Coding Standards Specify coding practices and naming conventions May be based on standards in place for project’s AUT developers
Test Automation Checklist Criteria for Automation Tool – AUT compatibility Test Automation Requirements Implementation Design Stable, isolated test environment Test data Implementation and coding standards Maintenance
Maintenance Start small and build on Build modular components Stay within scope of automation requirements Adhere to defined standards and conventions Emphasize robustness and flexibility
Maintenance Must be a good tester Has programming background Must be aware of maintenance and reliability Must be motivated to develop and create automated test scripts Building an Automation Test Team Ideal characteristics of an Automation Engineer:
Get familiarized with basic concepts of Test Automation Understand what it takes to implement effective Test Automation Introduce techniques to emphasize maintainability Learning Objectives   Revisited
Q&A

Guideto Successful Application Test Automation

  • 1.
    NYC Technology ForumIntroduction to Test Automation 11/2/07 All rights reserved Not to be reproduced without permission Bill Rinko-Gay Solutions Director, Software Quality Management John Stephens Practice Director, Software Quality Management
  • 2.
    Get familiarized withbasic concepts of Test Automation Understand what it takes to implement effective Test Automation Introduce techniques to emphasize maintainability Objectives
  • 3.
    What is TestAutomation?
  • 4.
    Benefits of AutomatedTesting Examples Run automated tests unattended (overnight) Reliable, consistent testing Increased speed in test execution Increased test coverage
  • 5.
    General Misconceptions AboutAutomated Testing Automation is simply “record and playback” Automation is the “silver bullet” to solve all testing problems Return on Investment will be achieved immediately Automation will replace all manual test cases
  • 6.
    What is TestAutomation? An enhancement on manual testing Utilizes technology to provide repeatable, consistent testing of the Application Under Test (AUT) Reduces costs and time for regression testing
  • 7.
    Primary Goal ofAutomated Testing To reduce number of tests to be run manually, not to eliminate manual testing altogether Automated Testing is an enhancement upon existing methodology and manual process
  • 8.
    So, You Wantto Implement Test Automation…
  • 9.
    Challenges inAutomated Testing Test Automation is a development effort! Automation is time consuming to create (and maintain, if poorly implemented) Limitations of the testing tools and developer expertise Automation of the wrong tests for the given constraints Unrealistic expectations
  • 10.
    Test Automation ChecklistCriteria for Automation Tool – AUT compatibility Test Automation Requirements Implementation Design Stable, isolated test environment Test data Implementation and coding standards Maintenance
  • 11.
    What to Automate?Choosing Ideal Manual Test Cases
  • 12.
    Criteria for Automatinga Test Case Why Automate? Selecting the right tests to automate is very critical to effective implementation!! Repetitiveness Test Cases that are to be performed repeatedly Test Cases that are business-critical and/or high risk Criticality Tedious Test Cases that are tedious to perform manually Time Consuming Test Cases that require considerable amount of time to perform manually
  • 13.
    Test Automation ChecklistCriteria for Automation Tool – AUT compatibility Test Automation Requirements Implementation Design Stable, isolated test environment Test data Implementation and coding standards Maintenance
  • 14.
    Tool - AUTCompatibility Conduct Proof of Concept of Tool on AUT Navigate through functional areas to test Verify Object Recognition of AUT Determine whether tool selection is valid
  • 15.
    Test Automation ChecklistCriteria for Automation Tool – AUT compatibility Test Automation Requirements Implementation Design Stable, isolated test environment Test data Implementation and coding standards Maintenance
  • 16.
    Test Automation RequirementsDefinition The set of criteria that the automated test suite must meet to be successful - the requirements for an automation project.
  • 17.
    Test Automation RequirementsWhat are the Success Criteria for the project? Meeting the goals and objectives of the automation effort Tool capabilities Capabilities and skills of the test automation team Example Requirement: The test tool shall test the login functionality of a web application, on a Windows 2000 platform, and run unattended simultaneously on three PCs.
  • 18.
    Planning for TestAutomation Test Automation Requirements help drive and determine the approach and design of the implementation. Test Automation Requirements Test Automation Design/Approach
  • 19.
    Test Automation ChecklistCriteria for Automation Tool – AUT compatibility Test Automation Requirements Implementation Design Stable, isolated test environment Test data Implementation and coding standards Maintenance
  • 20.
    Test Automation MethodologyAnalysis & Strategy Execution & Results Management Construction Design
  • 21.
    Automation Architecture encompassesthe environment for execution and development of an automated test suite. It is the overall scheme in which the test scripts will be developed. Implement a Test Automation Architecture
  • 22.
    Designing the TestAutomation Architecture Maximizing Maintainability
  • 23.
    Automation Architecture DesignOptions Capture/replay Framework-based Data-driven Keyword-driven Hybrid
  • 24.
    Design Goals Evaluatefeasible design options for implementation Anticipate likely changes to AUT Consider skill level of team members developing and/or inheriting the automated scripts Design of automated tests should address test automation requirements
  • 25.
    Typical Design ComponentsSubscripts Startup Script Data Table Driver Script Function Library Compiled module containing application-specific routines and functions A script that initiates automated test execution A script that performs a discrete portion of a business process to be tested A script that sets up and standardizes test automation environment Data sources (such as spreadsheets) used to store test data for use during test execution
  • 26.
    Test Automation ChecklistCriteria for Automation Tool – AUT compatibility Test Automation Requirements Implementation Design Stable, isolated test environment Test data Implementation and coding standards Maintenance
  • 27.
    Automation Test EnvironmentStable and isolated environment is important for reliable execution of automated tests GUI must be identical to Production
  • 28.
    Test Automation ChecklistCriteria for Automation Tool – AUT compatibility Test Automation Requirements Implementation Design Stable, isolated test environment Test data Implementation and coding standards Maintenance
  • 29.
    Test Data StrategyCreate a test environment that is restorable to a known constant, such that the test cases can be repeated each time Identify the procedure required for backup and recovery of data Test Data is critical to reliable automated testing!!
  • 30.
    Creating Test DataVarious Methods Create test data through application by doing data entry Import test data from production environment, if available Develop automated test scripts to generate test data as prerequisite
  • 31.
    Test Automation ChecklistCriteria for Automation Tool – AUT compatibility Test Automation Requirements Implementation Design Stable, isolated test environment Test data Implementation and coding standards Maintenance
  • 32.
    Coding Standards Specifycoding practices and naming conventions May be based on standards in place for project’s AUT developers
  • 33.
    Test Automation ChecklistCriteria for Automation Tool – AUT compatibility Test Automation Requirements Implementation Design Stable, isolated test environment Test data Implementation and coding standards Maintenance
  • 34.
    Maintenance Start smalland build on Build modular components Stay within scope of automation requirements Adhere to defined standards and conventions Emphasize robustness and flexibility
  • 35.
    Maintenance Must bea good tester Has programming background Must be aware of maintenance and reliability Must be motivated to develop and create automated test scripts Building an Automation Test Team Ideal characteristics of an Automation Engineer:
  • 36.
    Get familiarized withbasic concepts of Test Automation Understand what it takes to implement effective Test Automation Introduce techniques to emphasize maintainability Learning Objectives Revisited
  • 37.

Editor's Notes

  • #2 Rapid Business Driven Testing ver. 1.0.0 Page Student Study Guide