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

PDF
Web testing
PPT
Keyword Driven Testing
PDF
Maveryx presentation
DOCX
Keyword driven testing in qtp
PDF
Testing Banking Applications. Here is a practical example
PDF
User Interface Testing. What is UI Testing and Why it is so important?
PPTX
How to make a Load Testing with Visual Studio 2012
PDF
Visual studio performance testing quick reference guide 3 6
Web testing
Keyword Driven Testing
Maveryx presentation
Keyword driven testing in qtp
Testing Banking Applications. Here is a practical example
User Interface Testing. What is UI Testing and Why it is so important?
How to make a Load Testing with Visual Studio 2012
Visual studio performance testing quick reference guide 3 6

What's hot (20)

PPTX
Qa process
PPTX
Web and load testing with Visual Studio 2010 Ultimate
DOCX
Load testing with vs 2013
PDF
How to easily design and automate test cases.pdf
PPTX
LoadUI web performance testing tool
PPTX
Qa process
PPT
Loadrunner presentation
PDF
Loadster Load Testing by RapidValue Solutions
PPTX
Learn SoapUI
PPTX
Load Testing using Continuous Integration tools
PDF
Are Your Teams Writing Quality Code
PDF
Arquillian & Citrus
PPTX
Coldbox developer training – session 4
PDF
Webservices(or)SoapUI Interview Questions
PDF
UI Testing Automation
PDF
Impact2014: Introduction to the IBM Java Tools
PPTX
Web Application Software Testing
PDF
AWS EC2 Ubuntu Instance - Step-by-Step Deployment Guide
PPTX
Performance Engineering
PPTX
SoapUI Pro Plugin Workshop #SoapUIPlugins
Qa process
Web and load testing with Visual Studio 2010 Ultimate
Load testing with vs 2013
How to easily design and automate test cases.pdf
LoadUI web performance testing tool
Qa process
Loadrunner presentation
Loadster Load Testing by RapidValue Solutions
Learn SoapUI
Load Testing using Continuous Integration tools
Are Your Teams Writing Quality Code
Arquillian & Citrus
Coldbox developer training – session 4
Webservices(or)SoapUI Interview Questions
UI Testing Automation
Impact2014: Introduction to the IBM Java Tools
Web Application Software Testing
AWS EC2 Ubuntu Instance - Step-by-Step Deployment Guide
Performance Engineering
SoapUI Pro Plugin Workshop #SoapUIPlugins
Ad

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

PPT
Martin Gijsen - Effective Test Automation a la Carte
PDF
The future of Test Automation
PDF
Introduction to Test Automation
PPTX
Agile Software Development with Intrinsic Quality
PDF
Test Automation and Keyword-driven testing af Brian Nielsen, CISS/AAU
PPT
Programming skills for test automation
PPT
Test Automation Best Practices (with SOA test approach)
PDF
Testing Experience - Evolution of Test Automation Frameworks
PDF
Strategy-driven Test Generation with Open Source Frameworks
PDF
Introduction to Test Automation - Technology and Tools
PDF
Test Driven Development via Agile Testing
PDF
Code Camp Applying Modern Software Development Techniques To Ui Testing
PPTX
unit-5 SPM.pptx
PDF
ICTSS 2010 - Iterative Software Testing Process for Scrum and Waterfall Projects
PDF
Qa case study
PDF
Accelerated test case - Anish bhanu
KEY
ATDD in Practice
PPT
Testing In Java
PDF
Designing for Testability - Rohit Nayak
DOC
Testing terms & definitions
Martin Gijsen - Effective Test Automation a la Carte
The future of Test Automation
Introduction to Test Automation
Agile Software Development with Intrinsic Quality
Test Automation and Keyword-driven testing af Brian Nielsen, CISS/AAU
Programming skills for test automation
Test Automation Best Practices (with SOA test approach)
Testing Experience - Evolution of Test Automation Frameworks
Strategy-driven Test Generation with Open Source Frameworks
Introduction to Test Automation - Technology and Tools
Test Driven Development via Agile Testing
Code Camp Applying Modern Software Development Techniques To Ui Testing
unit-5 SPM.pptx
ICTSS 2010 - Iterative Software Testing Process for Scrum and Waterfall Projects
Qa case study
Accelerated test case - Anish bhanu
ATDD in Practice
Testing In Java
Designing for Testability - Rohit Nayak
Testing terms & definitions
Ad

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