SlideShare a Scribd company logo
1 of 32
Download to read offline
Exploring no man's land
with keyword driven testing
       Martin Gijsen, M.Sc.
       Martin@DeAnalist.nl

       Free Test Conference
          March 23, 2009
Presentation overview
●   Automated testing
●   When (not) to use Record & Playback
●   Automated testing as no man's land
●   Keyword driven testing
●   The process
●   Where to get the automator
Automated (functional) testing
●   A computer performs the test
●   Fast and consistent
●   Potential benefits:
    ●   Time (to market) / cost / quality
    ●   More effective use of (test) resources
    ●   More challenged (= happier) testers
    ●   Accurate and up2date test status
●   Continuity
●   Business goals are drivers
The Record & Playback approach
●   Record test actions, replay as needed
●   Checks are added to scripts
●   Fundamental problem is maintenance
    ●   Software evolves until it is decommissioned
    ●   Maintainability requires structure and abstractions
    ●   Recorded test cases are long, unstructured and low
        level programs
    ●   Maintenance sensitivity is high
    ●   Maintainability is low
So why is it still used?
●   Automated testing is often the job of a tester
●   Most testers are:
    ●   willing to record, but
    ●   unwilling or unable to create good automation
        solutions
●   Vendor sales pitch is not always clear on this
Result and conclusion
   It is often initially unclear what
effective automated testing requires


    2 out of every 3 TA projects
        fails sooner or later
          – Brian LaSuer


      Use R&P only in case of
     little manual maintenance
What about the developers?
●   Test automation is software engineering
●   Developers have the skills to create a good
    automation solution
●   Many developers are unwilling or unable to
    create good test sets
●   … or automate test cases that testers wrote
Welcome to no man's land
●   Most testers cannot or will not automate well
●   Most developers cannot or will not test well
●   Automated testing is like a no man's land in
    between testing and development

●   Is automated testing doomed?
Exploring no man's land

          Testing



     Automated testing



       Development
Exploring no man's land

           Testing


      Automated testing
   = analysis (what to test)
  + automation (how to test)


        Development
What is in between?

        Testing

     Test analysis
          ?
    Test automation

     Development
No more no man's land?

          Testing


       Test analysis

      Test automation


       Development
Keywords – The DS(T)L
●   Domain Specific (Test) Language

●   Used to express test cases
●   Defined by (or with) the testers
●   Specific to the application under test
●   No programming
●   High level
Bad example
select (“a box”);
type (“some text”);
click (“OK”);
...
Better example

create account;1234567890;John;Doe
create account;2345678901;Jane;Doe

deposit;1234567890;12345,67

transfer;1234,56;1234567890;2345678901

check balance;1234567890;11111,11
check balance;2345678901;1234,56
Good example
                 Account      First name   Last name
create account   1234567890   John         Doe
create account   2345678901   Jane         Doe


                 Account      Amount
deposit          John         12345,67


                 Amount       From         To
transfer         1234,56      John         Jane


                 Account      Amount
check balance    John         11111,11
check balance    Jane         1234,56
Keywords / Instructions
●   Often have arguments

●   No (irrelevant) test execution details
●   No (irrelevant) interfacing details
●   No tooling details

●   Only the essence of a test case remains
●   Easy to read, write and maintain test cases
●   Low maintenance sensitivity
Sample instruction documentation
Name and aliases   'begin test case' and 'begin testcase'

Description        Indicates the beginning of a (new) test case.

Parameters         Two parameters, both optional
1                  The identification of the test case, printable characters, preferably
                   unique within the test. Optional.
2                  The test case description, printable characters. Optional.

Validity           Anywhere except inside a procedure definition.

Pre-condition      None.
Post-condition     If the previous input line was part of a test case, that test case is
                   closed. A new test case is opened and assigned the next sequence
                   number for the report(s), starting at one.
Error condition    If in a procedure definition.
Automating (basic)

                                     Test
Test
                Automation          report




           Application under test
Automating (more detailed)

                      Engine             Test
Test
                                        report


                    Instructions



                    Interfacing




               Application under test
The ETA Framework 'engine'
●   Can read from and report to a spreadsheet
●   Supports test cases, variables and procedures
●   Implement keywords in Java
●   Use any Java library (Abbot, WebDriver, MQ,
    generated web service client, ...)
●   Documented, actively used and developed
●   Freeware
The process (waterfall)

                               Test cases


               Keyword defs


                                Automate    Test
Requirements


                  Product development
The process (agile)


                   Test cases
         Keyword defs
Requirements        Automate        Test

          Product development
                                                   Test cases
                                         Keyword defs
                                Requirements        Automate         Test

                                           Product development
                                                                                    Test cases
                                                                          Keyword defs
                                                                 Requirements        Automate     Test

                                                                            Product development
Where to get the automator
●   Main criteria (for continuity):
    ●   Skills
    ●   Availability
    ●   Cost
●   Educate someone from test team
●   Borrow from development team
●   Hire or reserve developer for test team
●   Hire external consultant
Summary
●   Automated testing can help achieve your goals
●   Avoid Record & Playback
●   Good keywords help:
    ●   The tester can focus on the testing
    ●   The developer can focus on developing
    ●   Easy to write test cases and little maintenance
●   A good test engine also helps
●   Use skilled automators
●   The automators must be available when needed
Questions




    ?
Automation design

                  Engine             Test
Test
                                    report


                Instructions



                Interfacing




           Application under test
Design for a telephony switch

                Engine



          Instructions (C++)



         Existing library (iTCL)




           Telephony switch
Design for a voice portal
             Engine



        Instructions (C++)



           Tool library




              Tool




           Voice portal
Design for web services (1)

                Engine


          Generic web service
           instructions (Java)


              Generated
        web service client (Java)




             Web services
Design for web services (2)

                Engine


          Specific web service
           instructions (Java)


              Generated
        web service client (Java)




             Web services
Design for a payments system

                                      Engine


Iso20022 protocol    SWIFT MT protocol          Web service        Web instructions
instructions Java)   instructions (Java)     instructions (Java)       (Java)


                                           Generated web service      Web driver
        Messaging library (Java)
                                               client (Java)        library (Java)




                               SEPA banking system

More Related Content

What's hot

Web and load testing with Visual Studio 2010 Ultimate
Web and load testing with Visual Studio 2010 UltimateWeb and load testing with Visual Studio 2010 Ultimate
Web and load testing with Visual Studio 2010 UltimateAbhimanyu Singhal
 
Load testing with vs 2013
Load testing with vs 2013Load testing with vs 2013
Load testing with vs 2013Fahad Shiekh
 
How to easily design and automate test cases.pdf
How to easily design and automate test cases.pdfHow to easily design and automate test cases.pdf
How to easily design and automate test cases.pdfMaveryx
 
LoadUI web performance testing tool
LoadUI web performance testing toolLoadUI web performance testing tool
LoadUI web performance testing toolMilind Rupchandani
 
Loadrunner presentation
Loadrunner presentationLoadrunner presentation
Loadrunner presentationmedsherb
 
Loadster Load Testing by RapidValue Solutions
Loadster Load Testing by RapidValue SolutionsLoadster Load Testing by RapidValue Solutions
Loadster Load Testing by RapidValue SolutionsRapidValue
 
Load Testing using Continuous Integration tools
Load Testing using Continuous Integration toolsLoad Testing using Continuous Integration tools
Load Testing using Continuous Integration toolsRick Pitts
 
Are Your Teams Writing Quality Code
Are Your Teams Writing Quality CodeAre Your Teams Writing Quality Code
Are Your Teams Writing Quality Codesentoh
 
Arquillian & Citrus
Arquillian & CitrusArquillian & Citrus
Arquillian & Citruschristophd
 
Coldbox developer training – session 4
Coldbox developer training – session 4Coldbox developer training – session 4
Coldbox developer training – session 4Billie Berzinskas
 
Webservices(or)SoapUI Interview Questions
Webservices(or)SoapUI Interview QuestionsWebservices(or)SoapUI Interview Questions
Webservices(or)SoapUI Interview QuestionsH2kInfosys
 
UI Testing Automation
UI Testing AutomationUI Testing Automation
UI Testing AutomationAgileEngine
 
Impact2014: Introduction to the IBM Java Tools
Impact2014: Introduction to the IBM Java ToolsImpact2014: Introduction to the IBM Java Tools
Impact2014: Introduction to the IBM Java ToolsChris Bailey
 
Web Application Software Testing
Web Application Software TestingWeb Application Software Testing
Web Application Software TestingAndrew Kandels
 
AWS EC2 Ubuntu Instance - Step-by-Step Deployment Guide
AWS EC2 Ubuntu Instance - Step-by-Step Deployment GuideAWS EC2 Ubuntu Instance - Step-by-Step Deployment Guide
AWS EC2 Ubuntu Instance - Step-by-Step Deployment GuideRapidValue
 
Performance Engineering
Performance EngineeringPerformance Engineering
Performance EngineeringKumar Gupta
 
SoapUI Pro Plugin Workshop #SoapUIPlugins
SoapUI Pro Plugin Workshop #SoapUIPluginsSoapUI Pro Plugin Workshop #SoapUIPlugins
SoapUI Pro Plugin Workshop #SoapUIPluginsSmartBear
 

What's hot (20)

Qa process
Qa processQa process
Qa process
 
Web and load testing with Visual Studio 2010 Ultimate
Web and load testing with Visual Studio 2010 UltimateWeb and load testing with Visual Studio 2010 Ultimate
Web and load testing with Visual Studio 2010 Ultimate
 
Load testing with vs 2013
Load testing with vs 2013Load testing with vs 2013
Load testing with vs 2013
 
How to easily design and automate test cases.pdf
How to easily design and automate test cases.pdfHow to easily design and automate test cases.pdf
How to easily design and automate test cases.pdf
 
LoadUI web performance testing tool
LoadUI web performance testing toolLoadUI web performance testing tool
LoadUI web performance testing tool
 
Qa process
Qa processQa process
Qa process
 
Loadrunner presentation
Loadrunner presentationLoadrunner presentation
Loadrunner presentation
 
Loadster Load Testing by RapidValue Solutions
Loadster Load Testing by RapidValue SolutionsLoadster Load Testing by RapidValue Solutions
Loadster Load Testing by RapidValue Solutions
 
Learn SoapUI
Learn SoapUILearn SoapUI
Learn SoapUI
 
Load Testing using Continuous Integration tools
Load Testing using Continuous Integration toolsLoad Testing using Continuous Integration tools
Load Testing using Continuous Integration tools
 
Are Your Teams Writing Quality Code
Are Your Teams Writing Quality CodeAre Your Teams Writing Quality Code
Are Your Teams Writing Quality Code
 
Arquillian & Citrus
Arquillian & CitrusArquillian & Citrus
Arquillian & Citrus
 
Coldbox developer training – session 4
Coldbox developer training – session 4Coldbox developer training – session 4
Coldbox developer training – session 4
 
Webservices(or)SoapUI Interview Questions
Webservices(or)SoapUI Interview QuestionsWebservices(or)SoapUI Interview Questions
Webservices(or)SoapUI Interview Questions
 
UI Testing Automation
UI Testing AutomationUI Testing Automation
UI Testing Automation
 
Impact2014: Introduction to the IBM Java Tools
Impact2014: Introduction to the IBM Java ToolsImpact2014: Introduction to the IBM Java Tools
Impact2014: Introduction to the IBM Java Tools
 
Web Application Software Testing
Web Application Software TestingWeb Application Software Testing
Web Application Software Testing
 
AWS EC2 Ubuntu Instance - Step-by-Step Deployment Guide
AWS EC2 Ubuntu Instance - Step-by-Step Deployment GuideAWS EC2 Ubuntu Instance - Step-by-Step Deployment Guide
AWS EC2 Ubuntu Instance - Step-by-Step Deployment Guide
 
Performance Engineering
Performance EngineeringPerformance Engineering
Performance Engineering
 
SoapUI Pro Plugin Workshop #SoapUIPlugins
SoapUI Pro Plugin Workshop #SoapUIPluginsSoapUI Pro Plugin Workshop #SoapUIPlugins
SoapUI Pro Plugin Workshop #SoapUIPlugins
 

Similar to Exploring No Mans Land with Keyword-Driven Testing

Test automation - Building effective solutions
Test automation - Building effective solutionsTest automation - Building effective solutions
Test automation - Building effective solutionsArtem Nagornyi
 
High Performance Software Engineering Teams
High Performance Software Engineering TeamsHigh Performance Software Engineering Teams
High Performance Software Engineering TeamsLars Thorup
 
Lessons Learned When Automating
Lessons Learned When AutomatingLessons Learned When Automating
Lessons Learned When AutomatingAlan Richardson
 
Testing Tools Online Training.pdf
Testing Tools Online Training.pdfTesting Tools Online Training.pdf
Testing Tools Online Training.pdfSpiritsoftsTraining
 
End-end tests as first class citizens - SeleniumConf 2020
End-end tests as first class citizens - SeleniumConf 2020End-end tests as first class citizens - SeleniumConf 2020
End-end tests as first class citizens - SeleniumConf 2020Abhijeet Vaikar
 
Software Testing Basic Concepts
Software Testing Basic ConceptsSoftware Testing Basic Concepts
Software Testing Basic Conceptswesovi
 
Agile Testing 2020
Agile Testing 2020Agile Testing 2020
Agile Testing 2020arzu TR
 
Product quality in agile project
Product quality in agile projectProduct quality in agile project
Product quality in agile projectNhan Nguyen
 
Client Side Unit Testing
Client Side Unit TestingClient Side Unit Testing
Client Side Unit Testingcloud chen
 
Automation Testing on Selenium by Quontra Solutions
Automation Testing on Selenium by Quontra SolutionsAutomation Testing on Selenium by Quontra Solutions
Automation Testing on Selenium by Quontra SolutionsQUONTRASOLUTIONS
 
Agile Software Development in Practice - A Developer Perspective
Agile Software Development in Practice - A Developer PerspectiveAgile Software Development in Practice - A Developer Perspective
Agile Software Development in Practice - A Developer PerspectiveWee Witthawaskul
 
Implementing Test Automation in Agile Projects
Implementing Test Automation in Agile ProjectsImplementing Test Automation in Agile Projects
Implementing Test Automation in Agile ProjectsDominik Dary
 
Reliable mobile test automation
Reliable mobile test automationReliable mobile test automation
Reliable mobile test automationVishal Banthia
 
Bdd test automation analysis
Bdd test automation analysisBdd test automation analysis
Bdd test automation analysisssuser2e8d4b
 
Testing in an Open Source Middleware Platform Space The WSO2 Way.
Testing in an Open Source Middleware Platform Space  The WSO2 Way.Testing in an Open Source Middleware Platform Space  The WSO2 Way.
Testing in an Open Source Middleware Platform Space The WSO2 Way.WSO2
 
Guidelines to Measuring Test Automation ROI
 Guidelines to Measuring Test Automation ROI Guidelines to Measuring Test Automation ROI
Guidelines to Measuring Test Automation ROIPerfecto by Perforce
 
Unit Testing and TDD 2017
Unit Testing and TDD 2017Unit Testing and TDD 2017
Unit Testing and TDD 2017Xavi Hidalgo
 
Test automation expert days
Test automation   expert daysTest automation   expert days
Test automation expert daysOren Rubin
 

Similar to Exploring No Mans Land with Keyword-Driven Testing (20)

Test automation - Building effective solutions
Test automation - Building effective solutionsTest automation - Building effective solutions
Test automation - Building effective solutions
 
High Performance Software Engineering Teams
High Performance Software Engineering TeamsHigh Performance Software Engineering Teams
High Performance Software Engineering Teams
 
Lessons Learned When Automating
Lessons Learned When AutomatingLessons Learned When Automating
Lessons Learned When Automating
 
Testing Tools Online Training.pdf
Testing Tools Online Training.pdfTesting Tools Online Training.pdf
Testing Tools Online Training.pdf
 
End-end tests as first class citizens - SeleniumConf 2020
End-end tests as first class citizens - SeleniumConf 2020End-end tests as first class citizens - SeleniumConf 2020
End-end tests as first class citizens - SeleniumConf 2020
 
Agile testing
Agile testingAgile testing
Agile testing
 
Software Testing Basic Concepts
Software Testing Basic ConceptsSoftware Testing Basic Concepts
Software Testing Basic Concepts
 
Agile Testing 2020
Agile Testing 2020Agile Testing 2020
Agile Testing 2020
 
Product quality in agile project
Product quality in agile projectProduct quality in agile project
Product quality in agile project
 
Client Side Unit Testing
Client Side Unit TestingClient Side Unit Testing
Client Side Unit Testing
 
Automation Testing on Selenium by Quontra Solutions
Automation Testing on Selenium by Quontra SolutionsAutomation Testing on Selenium by Quontra Solutions
Automation Testing on Selenium by Quontra Solutions
 
Agile Software Development in Practice - A Developer Perspective
Agile Software Development in Practice - A Developer PerspectiveAgile Software Development in Practice - A Developer Perspective
Agile Software Development in Practice - A Developer Perspective
 
Implementing Test Automation in Agile Projects
Implementing Test Automation in Agile ProjectsImplementing Test Automation in Agile Projects
Implementing Test Automation in Agile Projects
 
Reliable mobile test automation
Reliable mobile test automationReliable mobile test automation
Reliable mobile test automation
 
Bdd test automation analysis
Bdd test automation analysisBdd test automation analysis
Bdd test automation analysis
 
Testing in an Open Source Middleware Platform Space The WSO2 Way.
Testing in an Open Source Middleware Platform Space  The WSO2 Way.Testing in an Open Source Middleware Platform Space  The WSO2 Way.
Testing in an Open Source Middleware Platform Space The WSO2 Way.
 
Software testing
Software testingSoftware testing
Software testing
 
Guidelines to Measuring Test Automation ROI
 Guidelines to Measuring Test Automation ROI Guidelines to Measuring Test Automation ROI
Guidelines to Measuring Test Automation ROI
 
Unit Testing and TDD 2017
Unit Testing and TDD 2017Unit Testing and TDD 2017
Unit Testing and TDD 2017
 
Test automation expert days
Test automation   expert daysTest automation   expert days
Test automation expert days
 

Exploring No Mans Land with Keyword-Driven Testing

  • 1. Exploring no man's land with keyword driven testing Martin Gijsen, M.Sc. Martin@DeAnalist.nl Free Test Conference March 23, 2009
  • 2. Presentation overview ● Automated testing ● When (not) to use Record & Playback ● Automated testing as no man's land ● Keyword driven testing ● The process ● Where to get the automator
  • 3. Automated (functional) testing ● A computer performs the test ● Fast and consistent ● Potential benefits: ● Time (to market) / cost / quality ● More effective use of (test) resources ● More challenged (= happier) testers ● Accurate and up2date test status ● Continuity ● Business goals are drivers
  • 4. The Record & Playback approach ● Record test actions, replay as needed ● Checks are added to scripts ● Fundamental problem is maintenance ● Software evolves until it is decommissioned ● Maintainability requires structure and abstractions ● Recorded test cases are long, unstructured and low level programs ● Maintenance sensitivity is high ● Maintainability is low
  • 5. So why is it still used? ● Automated testing is often the job of a tester ● Most testers are: ● willing to record, but ● unwilling or unable to create good automation solutions ● Vendor sales pitch is not always clear on this
  • 6. Result and conclusion It is often initially unclear what effective automated testing requires 2 out of every 3 TA projects fails sooner or later – Brian LaSuer Use R&P only in case of little manual maintenance
  • 7. What about the developers? ● Test automation is software engineering ● Developers have the skills to create a good automation solution ● Many developers are unwilling or unable to create good test sets ● … or automate test cases that testers wrote
  • 8. Welcome to no man's land ● Most testers cannot or will not automate well ● Most developers cannot or will not test well ● Automated testing is like a no man's land in between testing and development ● Is automated testing doomed?
  • 9. Exploring no man's land Testing Automated testing Development
  • 10. Exploring no man's land Testing Automated testing = analysis (what to test) + automation (how to test) Development
  • 11. What is in between? Testing Test analysis ? Test automation Development
  • 12. No more no man's land? Testing Test analysis Test automation Development
  • 13. Keywords – The DS(T)L ● Domain Specific (Test) Language ● Used to express test cases ● Defined by (or with) the testers ● Specific to the application under test ● No programming ● High level
  • 14. Bad example select (“a box”); type (“some text”); click (“OK”); ...
  • 15. Better example create account;1234567890;John;Doe create account;2345678901;Jane;Doe deposit;1234567890;12345,67 transfer;1234,56;1234567890;2345678901 check balance;1234567890;11111,11 check balance;2345678901;1234,56
  • 16. Good example Account First name Last name create account 1234567890 John Doe create account 2345678901 Jane Doe Account Amount deposit John 12345,67 Amount From To transfer 1234,56 John Jane Account Amount check balance John 11111,11 check balance Jane 1234,56
  • 17. Keywords / Instructions ● Often have arguments ● No (irrelevant) test execution details ● No (irrelevant) interfacing details ● No tooling details ● Only the essence of a test case remains ● Easy to read, write and maintain test cases ● Low maintenance sensitivity
  • 18. Sample instruction documentation Name and aliases 'begin test case' and 'begin testcase' Description Indicates the beginning of a (new) test case. Parameters Two parameters, both optional 1 The identification of the test case, printable characters, preferably unique within the test. Optional. 2 The test case description, printable characters. Optional. Validity Anywhere except inside a procedure definition. Pre-condition None. Post-condition If the previous input line was part of a test case, that test case is closed. A new test case is opened and assigned the next sequence number for the report(s), starting at one. Error condition If in a procedure definition.
  • 19. Automating (basic) Test Test Automation report Application under test
  • 20. Automating (more detailed) Engine Test Test report Instructions Interfacing Application under test
  • 21. The ETA Framework 'engine' ● Can read from and report to a spreadsheet ● Supports test cases, variables and procedures ● Implement keywords in Java ● Use any Java library (Abbot, WebDriver, MQ, generated web service client, ...) ● Documented, actively used and developed ● Freeware
  • 22. The process (waterfall) Test cases Keyword defs Automate Test Requirements Product development
  • 23. The process (agile) Test cases Keyword defs Requirements Automate Test Product development Test cases Keyword defs Requirements Automate Test Product development Test cases Keyword defs Requirements Automate Test Product development
  • 24. Where to get the automator ● Main criteria (for continuity): ● Skills ● Availability ● Cost ● Educate someone from test team ● Borrow from development team ● Hire or reserve developer for test team ● Hire external consultant
  • 25. Summary ● Automated testing can help achieve your goals ● Avoid Record & Playback ● Good keywords help: ● The tester can focus on the testing ● The developer can focus on developing ● Easy to write test cases and little maintenance ● A good test engine also helps ● Use skilled automators ● The automators must be available when needed
  • 27. Automation design Engine Test Test report Instructions Interfacing Application under test
  • 28. Design for a telephony switch Engine Instructions (C++) Existing library (iTCL) Telephony switch
  • 29. Design for a voice portal Engine Instructions (C++) Tool library Tool Voice portal
  • 30. Design for web services (1) Engine Generic web service instructions (Java) Generated web service client (Java) Web services
  • 31. Design for web services (2) Engine Specific web service instructions (Java) Generated web service client (Java) Web services
  • 32. Design for a payments system Engine Iso20022 protocol SWIFT MT protocol Web service Web instructions instructions Java) instructions (Java) instructions (Java) (Java) Generated web service Web driver Messaging library (Java) client (Java) library (Java) SEPA banking system