SlideShare a Scribd company logo
Testautomatiseringserfarenheter
Presentation




   Michael Albrecht   Lars Wahlberg (Aguil)
Vad innehåller boken?
Våra bidrag
•  Michael Albrecht
  –  Anecdote 29.12 Cooperation Can Overcome
     Resource Limitations
•  Lars Wahlberg
  –  Chapter 18 Automated Tests for Marketplace
     Systems: Ten years and Three Frameworks

  Nu blir det vissa slides på Engelska !!!
Framtagning av en bok
•  Hur gick det till
   –  Hur vi blev kontaktade
•  Arbetet med att ta fram bok
   –  Massor med reviewer & uppdateringar
   –  Tekniska saker som att pillra med bilder
•  Legal process
   –  Skriva på kontrakt osv
•  Känslan att få boken (tillslut)
Första stegen
Anecdote 29.12 Cooperation Can
Overcome Resource Limitations
Before the agile hype
•  Sit together
•  Daily status meetings
•  Learn some basic programming (same
   language as the developers)
•  Select tools already used by the developers
   for unit testing if possible
•  Create semi-automatic and automatic tests
•  Learn from the past
•  Get going!
Technical automater
•  55% a good tester
•  35% development skills
•  10% business or domain knowledge
.and the rest of the story?
•  http://www.addq.se/nyheter/back-to-the-
   future-an-agile-story-from-the-past/
•  http://www.automatedtestinginstitute.com
Chapter 18 Automated Tests for Marketplace
Systems: Ten years and Three Frameworks

•    Market Place Systems
•    Automated Tests
•    Three frameworks
•    ROI
Market Place Systems (MPS)
                                                           Standby
    Trading Clients                                      Primary
    Protocol X
                                    Gwy A            Query / History
                                                     Server(s)
  Trading Clients
                                    Gwy B
  Protocol Y
                                                     Matching
                                    Gwy C            Engine
Market Data
                                    Gwy D            Central
                                                     Data
          Admin Client


Typical instruments: Equities, Commodities, Bonds, Derivatives …
Drivers for large nr of tests …
•  Complex functionality
•  Interference of functionality
•  Critical functionality
   –  Wrong auto match L
   –  Wrong transparency L
   –  Possible to “game” the system L
•  High uptime requirements
•  Many customers (adaptations of a product)
Why automate?
•  Large nr of tests
•  Development methods – many releases!
  –  Incremental (10 years ago)
  –  Agile (now days)
•  Time to market important (rapid deliveries)
  –  Enhancements (new business opportunity)
  –  Patch (maintenance)


Solution => automate tests ...
Development of Test Framework
    Framework for automated tests

                   Abstraction Layer
                                       System


  Test
  Scripts




 Test                                     Configuration
 Engine
 (ex JUnit)
Abstraction Layer – Example
                                 Changes in the protocol can be handled in
Test Script
                                 the abstraction layer, instead of rewriting
Enter Buy Order (25 SEK)         ~100 of tests scripts …
Enter Sell Order (24 SEK)
Verify Trade (25 SEK)                 Enter Order (price, isBuy, …)
                                      •    Create Enter Order Message
                                      •    Fill in Price X
Enter Buy Order(price)
                                      •    Fill in Buy or Sell
Enter Order (price, True, ...)
                                      •    Fill in …
                                      •    Send Transaction
Abstraction of Configuration
   •  Predicates can be used
Test Script                                         If not found =>
myList.add(new PredicateInstrument(“Equity”) )
                                                    Test Skipped !
myList.add(new PredicateCurrency(“USD”) )
                                                    Not same as Failed !
myList.add(new PredicateTrader(myTrader1) )
myList.add(new PredicateTrader(myTrader2) )


OrderBook myOb = TestConfig.getAnyOb(myList)



  Hint: Use TDD to design the Abstraction Layer !
Development of Test Tool
   •  Abstraction Layer is important
       –  Thin / Thick? Requirements on people skills!
       –  Who can modify? Who will maintain?
       –  When tests increased problems will be revealed!
   •  Abstraction against test data
       –  Hard coded in a file, version controlled with tests
       –  Predicates may be used to increase robustness

Tip: Very good reference go to => www.stickyminds.com
Search for “mexus” (author Lars-Ivar Sellberg)
Development of Tests
                                         Automatic Tests

        5000
        4500               Actual
                           Planned
        4000
        3500
        3000
Tests




        2500
        2000
        1500
        1000
        500
          0
               1   2   3     4   5   6   7   8    9 10 11 12 13 14 15 16 17
                                                 Week
Test Execution (then)
Test Execution (then)

                                                Now it works again! :)
            Now it works ! :)




                    TestCase written         Oops, it fails! :
                     before implementation   ( Regression tests are
                                             good !
                                             Oops, vacation!
Framework - 1
•  Developed under much time pressure 1998
•  Tests written in Java
     –  New language, attracted developers to test
     –  Thin Abstraction Layer
•    Own Test Engine (JUnit not available)
•    Predicated used
•    Simulations used (later more on that)
•    After ~1 year: 2000 tests, ~3 year: 15 000 tests
•    A real success !!!
Framework - 2
•  Developed 1999 based on success of -1
•  Development took some time …too much
  –  Another system => new abstraction layer, still thin
  –  Predicates not used
  –  Switched to JUnit
  –  Focus on Tool instead of tests … few tests L
•  Heavy investment during 2002
  –  Partly due to one senior Manager J
  –  Larger team => 50 000 tests after 3 years!
Framework - 3
•  Developed around 2003
•  Based on ideas from mostly from 1
  –  But should be better! Func & Non Func tests, Preds
  –  Thick Layer – Tests in XML action language
•  Test Tool Architects became bottlenecks
  –  Difficult to do modifications of abstraction layer L
•  Re-done, Thin layer & No Predicates
•  Now ~ 20 000 Tests
Effort dev manual test              2     h/test
                                                                Effort dev automatic test           2     h/test

               ROI - Savings
                                                                Test Tool Maintanence            3000    h/year
                                                                Effort Execute manual test        0,1    h / test
                                                                Effort Execute automatic test       8   h/batch

                                        Saving of Automization

               150
               100
                50
                 0
savings in %




                                                                                       Yearly
                                           1100


                                                  1300

                                                         1500

                                                                  1700


                                                                         1900
                      500

                            700


                                  900




                -50
                                                                                       Monthly
               -100
                                                                                       Weekly
               -150
                                                                                       Daily
               -200
               -250
               -300
               -350
                                        nr of tests in batch
Utlottning av böcker !

More Related Content

Similar to AddQ Testautomatiseringserfarenheter

Quality Coding with Visual Studio 2012
Quality Coding with Visual Studio 2012Quality Coding with Visual Studio 2012
Quality Coding with Visual Studio 2012
Imaginet
 
Quality Coding: What’s New with Visual Studio 2012
Quality Coding: What’s New with Visual Studio 2012Quality Coding: What’s New with Visual Studio 2012
Quality Coding: What’s New with Visual Studio 2012
Imaginet
 
Quality Coding: What's New with Visual Studio 2012
Quality Coding: What's New with Visual Studio 2012Quality Coding: What's New with Visual Studio 2012
Quality Coding: What's New with Visual Studio 2012
Imaginet
 
Implementing Test Automation in Agile Projects
Implementing Test Automation in Agile ProjectsImplementing Test Automation in Agile Projects
Implementing Test Automation in Agile Projects
Dominik Dary
 
SVCC 2011 - 0 - 60: QA Automation @ Box
SVCC 2011 - 0 - 60: QA Automation @ BoxSVCC 2011 - 0 - 60: QA Automation @ Box
SVCC 2011 - 0 - 60: QA Automation @ Box
Peter White
 
Implementing Test Automation in Agile Projects
Implementing Test Automation in Agile ProjectsImplementing Test Automation in Agile Projects
Implementing Test Automation in Agile ProjectsMichael Palotas
 
Sync Workitems between multiple Team Projects #vssatpn
Sync Workitems between multiple Team Projects #vssatpnSync Workitems between multiple Team Projects #vssatpn
Sync Workitems between multiple Team Projects #vssatpn
Lorenzo Barbieri
 
Rethinking Testing
Rethinking TestingRethinking Testing
Rethinking Testing
pdejuan
 
Performance Testing Java Applications
Performance Testing Java ApplicationsPerformance Testing Java Applications
Performance Testing Java Applications
C4Media
 
Flexing your Agile Muscle - Agile Technical Concepts Explained
Flexing your Agile Muscle - Agile Technical Concepts ExplainedFlexing your Agile Muscle - Agile Technical Concepts Explained
Flexing your Agile Muscle - Agile Technical Concepts Explained
Sandy Mamoli
 
Qtp - Introduction to synchronization
Qtp -  Introduction to synchronizationQtp -  Introduction to synchronization
Qtp - Introduction to synchronization
Vibrant Technologies & Computers
 
Agile Beyond Development
Agile Beyond DevelopmentAgile Beyond Development
Agile Beyond Development
kutuma
 
5 Steps on the Way to Continuous Delivery
5 Steps on the Way to Continuous Delivery5 Steps on the Way to Continuous Delivery
5 Steps on the Way to Continuous Delivery
XebiaLabs
 
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Codemotion
 
Battle for Code Quality - A Story of One Java Project
Battle for Code Quality - A Story of One Java ProjectBattle for Code Quality - A Story of One Java Project
Battle for Code Quality - A Story of One Java Project
GlobalLogic Ukraine
 
Agile Innovation - Product Management in Turbulent times
Agile Innovation - Product Management in Turbulent timesAgile Innovation - Product Management in Turbulent times
Agile Innovation - Product Management in Turbulent times
Vasco Duarte
 
Completely Test-Driven
Completely Test-DrivenCompletely Test-Driven
Completely Test-Driven
Ian Truslove
 
Introduction to Performance Testing Part 1
Introduction to Performance Testing Part 1Introduction to Performance Testing Part 1
Introduction to Performance Testing Part 1
C.T.Co
 
Notes Version: Email Marketing Workshop Closing Now What
Notes Version: Email Marketing Workshop Closing Now What Notes Version: Email Marketing Workshop Closing Now What
Notes Version: Email Marketing Workshop Closing Now What Vivastream
 
Notes Version: Email Marketing Workshop Closing Now What
Notes Version: Email Marketing Workshop Closing Now What Notes Version: Email Marketing Workshop Closing Now What
Notes Version: Email Marketing Workshop Closing Now What Vivastream
 

Similar to AddQ Testautomatiseringserfarenheter (20)

Quality Coding with Visual Studio 2012
Quality Coding with Visual Studio 2012Quality Coding with Visual Studio 2012
Quality Coding with Visual Studio 2012
 
Quality Coding: What’s New with Visual Studio 2012
Quality Coding: What’s New with Visual Studio 2012Quality Coding: What’s New with Visual Studio 2012
Quality Coding: What’s New with Visual Studio 2012
 
Quality Coding: What's New with Visual Studio 2012
Quality Coding: What's New with Visual Studio 2012Quality Coding: What's New with Visual Studio 2012
Quality Coding: What's New with Visual Studio 2012
 
Implementing Test Automation in Agile Projects
Implementing Test Automation in Agile ProjectsImplementing Test Automation in Agile Projects
Implementing Test Automation in Agile Projects
 
SVCC 2011 - 0 - 60: QA Automation @ Box
SVCC 2011 - 0 - 60: QA Automation @ BoxSVCC 2011 - 0 - 60: QA Automation @ Box
SVCC 2011 - 0 - 60: QA Automation @ Box
 
Implementing Test Automation in Agile Projects
Implementing Test Automation in Agile ProjectsImplementing Test Automation in Agile Projects
Implementing Test Automation in Agile Projects
 
Sync Workitems between multiple Team Projects #vssatpn
Sync Workitems between multiple Team Projects #vssatpnSync Workitems between multiple Team Projects #vssatpn
Sync Workitems between multiple Team Projects #vssatpn
 
Rethinking Testing
Rethinking TestingRethinking Testing
Rethinking Testing
 
Performance Testing Java Applications
Performance Testing Java ApplicationsPerformance Testing Java Applications
Performance Testing Java Applications
 
Flexing your Agile Muscle - Agile Technical Concepts Explained
Flexing your Agile Muscle - Agile Technical Concepts ExplainedFlexing your Agile Muscle - Agile Technical Concepts Explained
Flexing your Agile Muscle - Agile Technical Concepts Explained
 
Qtp - Introduction to synchronization
Qtp -  Introduction to synchronizationQtp -  Introduction to synchronization
Qtp - Introduction to synchronization
 
Agile Beyond Development
Agile Beyond DevelopmentAgile Beyond Development
Agile Beyond Development
 
5 Steps on the Way to Continuous Delivery
5 Steps on the Way to Continuous Delivery5 Steps on the Way to Continuous Delivery
5 Steps on the Way to Continuous Delivery
 
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
 
Battle for Code Quality - A Story of One Java Project
Battle for Code Quality - A Story of One Java ProjectBattle for Code Quality - A Story of One Java Project
Battle for Code Quality - A Story of One Java Project
 
Agile Innovation - Product Management in Turbulent times
Agile Innovation - Product Management in Turbulent timesAgile Innovation - Product Management in Turbulent times
Agile Innovation - Product Management in Turbulent times
 
Completely Test-Driven
Completely Test-DrivenCompletely Test-Driven
Completely Test-Driven
 
Introduction to Performance Testing Part 1
Introduction to Performance Testing Part 1Introduction to Performance Testing Part 1
Introduction to Performance Testing Part 1
 
Notes Version: Email Marketing Workshop Closing Now What
Notes Version: Email Marketing Workshop Closing Now What Notes Version: Email Marketing Workshop Closing Now What
Notes Version: Email Marketing Workshop Closing Now What
 
Notes Version: Email Marketing Workshop Closing Now What
Notes Version: Email Marketing Workshop Closing Now What Notes Version: Email Marketing Workshop Closing Now What
Notes Version: Email Marketing Workshop Closing Now What
 

Recently uploaded

Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
nkrafacyberclub
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
Peter Spielvogel
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Nexer Digital
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
Pierluigi Pugliese
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofszkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
Alex Pruden
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
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
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
UiPath Community Day Dubai: AI at Work..
UiPath Community Day Dubai: AI at Work..UiPath Community Day Dubai: AI at Work..
UiPath Community Day Dubai: AI at Work..
UiPathCommunity
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 

Recently uploaded (20)

Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofszkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
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
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
UiPath Community Day Dubai: AI at Work..
UiPath Community Day Dubai: AI at Work..UiPath Community Day Dubai: AI at Work..
UiPath Community Day Dubai: AI at Work..
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 

AddQ Testautomatiseringserfarenheter

  • 2.
  • 3. Presentation Michael Albrecht Lars Wahlberg (Aguil)
  • 5. Våra bidrag •  Michael Albrecht –  Anecdote 29.12 Cooperation Can Overcome Resource Limitations •  Lars Wahlberg –  Chapter 18 Automated Tests for Marketplace Systems: Ten years and Three Frameworks Nu blir det vissa slides på Engelska !!!
  • 6. Framtagning av en bok •  Hur gick det till –  Hur vi blev kontaktade •  Arbetet med att ta fram bok –  Massor med reviewer & uppdateringar –  Tekniska saker som att pillra med bilder •  Legal process –  Skriva på kontrakt osv •  Känslan att få boken (tillslut)
  • 8. Anecdote 29.12 Cooperation Can Overcome Resource Limitations
  • 9. Before the agile hype •  Sit together •  Daily status meetings •  Learn some basic programming (same language as the developers) •  Select tools already used by the developers for unit testing if possible •  Create semi-automatic and automatic tests •  Learn from the past •  Get going!
  • 10. Technical automater •  55% a good tester •  35% development skills •  10% business or domain knowledge
  • 11. .and the rest of the story? •  http://www.addq.se/nyheter/back-to-the- future-an-agile-story-from-the-past/ •  http://www.automatedtestinginstitute.com
  • 12. Chapter 18 Automated Tests for Marketplace Systems: Ten years and Three Frameworks •  Market Place Systems •  Automated Tests •  Three frameworks •  ROI
  • 13. Market Place Systems (MPS) Standby Trading Clients Primary Protocol X Gwy A Query / History Server(s) Trading Clients Gwy B Protocol Y Matching Gwy C Engine Market Data Gwy D Central Data Admin Client Typical instruments: Equities, Commodities, Bonds, Derivatives …
  • 14. Drivers for large nr of tests … •  Complex functionality •  Interference of functionality •  Critical functionality –  Wrong auto match L –  Wrong transparency L –  Possible to “game” the system L •  High uptime requirements •  Many customers (adaptations of a product)
  • 15. Why automate? •  Large nr of tests •  Development methods – many releases! –  Incremental (10 years ago) –  Agile (now days) •  Time to market important (rapid deliveries) –  Enhancements (new business opportunity) –  Patch (maintenance) Solution => automate tests ...
  • 16. Development of Test Framework Framework for automated tests Abstraction Layer System Test Scripts Test Configuration Engine (ex JUnit)
  • 17. Abstraction Layer – Example Changes in the protocol can be handled in Test Script the abstraction layer, instead of rewriting Enter Buy Order (25 SEK) ~100 of tests scripts … Enter Sell Order (24 SEK) Verify Trade (25 SEK) Enter Order (price, isBuy, …) •  Create Enter Order Message •  Fill in Price X Enter Buy Order(price) •  Fill in Buy or Sell Enter Order (price, True, ...) •  Fill in … •  Send Transaction
  • 18. Abstraction of Configuration •  Predicates can be used Test Script If not found => myList.add(new PredicateInstrument(“Equity”) ) Test Skipped ! myList.add(new PredicateCurrency(“USD”) ) Not same as Failed ! myList.add(new PredicateTrader(myTrader1) ) myList.add(new PredicateTrader(myTrader2) ) OrderBook myOb = TestConfig.getAnyOb(myList) Hint: Use TDD to design the Abstraction Layer !
  • 19. Development of Test Tool •  Abstraction Layer is important –  Thin / Thick? Requirements on people skills! –  Who can modify? Who will maintain? –  When tests increased problems will be revealed! •  Abstraction against test data –  Hard coded in a file, version controlled with tests –  Predicates may be used to increase robustness Tip: Very good reference go to => www.stickyminds.com Search for “mexus” (author Lars-Ivar Sellberg)
  • 20. Development of Tests Automatic Tests 5000 4500 Actual Planned 4000 3500 3000 Tests 2500 2000 1500 1000 500 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Week
  • 22. Test Execution (then) Now it works again! :) Now it works ! :) TestCase written Oops, it fails! : before implementation ( Regression tests are good ! Oops, vacation!
  • 23. Framework - 1 •  Developed under much time pressure 1998 •  Tests written in Java –  New language, attracted developers to test –  Thin Abstraction Layer •  Own Test Engine (JUnit not available) •  Predicated used •  Simulations used (later more on that) •  After ~1 year: 2000 tests, ~3 year: 15 000 tests •  A real success !!!
  • 24. Framework - 2 •  Developed 1999 based on success of -1 •  Development took some time …too much –  Another system => new abstraction layer, still thin –  Predicates not used –  Switched to JUnit –  Focus on Tool instead of tests … few tests L •  Heavy investment during 2002 –  Partly due to one senior Manager J –  Larger team => 50 000 tests after 3 years!
  • 25. Framework - 3 •  Developed around 2003 •  Based on ideas from mostly from 1 –  But should be better! Func & Non Func tests, Preds –  Thick Layer – Tests in XML action language •  Test Tool Architects became bottlenecks –  Difficult to do modifications of abstraction layer L •  Re-done, Thin layer & No Predicates •  Now ~ 20 000 Tests
  • 26. Effort dev manual test 2 h/test Effort dev automatic test 2 h/test ROI - Savings Test Tool Maintanence 3000 h/year Effort Execute manual test 0,1 h / test Effort Execute automatic test 8 h/batch Saving of Automization 150 100 50 0 savings in % Yearly 1100 1300 1500 1700 1900 500 700 900 -50 Monthly -100 Weekly -150 Daily -200 -250 -300 -350 nr of tests in batch