SlideShare a Scribd company logo
1 of 27
Download to read offline
Olli-Pekka Puolitaival 
• Lead quality engineer test 
automation 
• 5 yrs test automation 
• 4 yrs research 
Protecting the irreplaceable | f-secure.com
Index 
• Idea of model-based testing 
• Story of OSMO tester 
• How we test 
• Experiences & tips
MBT is new way to think 
• Traditional way to think 
• People do testing 
• Regression automation reduce peoples work time 
• New way to think 
• Smart people want to do testing in smart way 
• Computers are fast and hard worker, let them also try 
“stupid” things
5
6
7
8
9
10
11
12
13
Why we made osmo? 
Traditional MBT tools 
• Hard to take in use 
• Closed 
• Limited extending 
• Advanced algorithms 
• Expensive 
Osmo tester 
• Easy start 
• Flexible 
• Easy to extend 
• Simple algorithms 
• Free (open source) 
14
Osmo tester idea 
public class ExampleModel{ 
int i = 0; 
@Guard(“increase") 
public guardfunction() { 
return true; //Return true if this transition is allowed to execute 
} 
@Transition(“example") 
public void transitionfunction() { 
System.out.println(i++); //This code is executed when transition is selected 
} 
… 
public static void main(String[] args) { 
OSMOTester tester = new OSMOTester(new ExampleModel()); 
tester.generate(); 
} 
} 
15 
“Model is pure java code, 
Which makes possible to use 
Any java library”
Many additional features 
• Support online and offline MBT 
• Requirements tagging 
• Coverage calculations 
• Many test design algorithms, also manual drive 
• Coverage, time and length based stopping criteria 
• Self written adapters to the SUT 
• Custom test output formats 
• Easy to integrate with Jenkins 
• Model reuse and combining 
• Probability numbers support 
• Available: http://code.google.com/p/osmo/ 
16 
Easy to start and 
custom for your needs
Tips 
• Modelling 
• Good model is high level, modular and cover core functionality 
• Start from small and continue iteratively 
• Adaptation 
• Reuse code from test automation or development if possible 
• Running 
• Run tests always automatically 
• Fixed run length for verifying and ”unlimited” for finding some new 
• Reports 
• Report what you need to know, visual is mostly better 
• OSMO is not good if you need very sophisticated algorithms, but most people 
don’t need those 
17
The domain is content cloud
Client smoke 
Our continuous integration 
Backend 
components 
Backend 
components 
Building 
Clients 
19 
Backend 
components 
Clients 
Client 
Integration 
test 
environment 
Unittest 
Clients 
Smoke test 
Regression test 
Backend 
integration 
Test 
Environment 
Performance 
test 
Performance 
Test 
Environment 
Client regression 
Chain of Jenkins jobs runs everything
Jenkins 
Android phone 
Android client 
CAN 
Solution 
Backend 
Current test setup 
“run once per hour” 
Selenium webdriver 
Firefox 
Web adapter 
Test status 
radiator 
Nativedriver client 
Nativedriver 
server 
Model 
OSMO 
Android adapter
What kind of model? 
• Idea of this testing 
• Do actions and verify that other clients data is same 
• Model includes actions which can be seen in other client like 
• Upload a file 
• Remove a file 
• Rename a file 
• Check quota 
• Check that file exist 
• Check that all files exist as supposed 
21
Example test run 
22 
Osmo test engine Web page Android Client 
Login 
Upload file1.jpg 
Login 
Check file1.jpg 
Upload file2.jpg 
Remove file1.jpg 
Check that only 
file2.jpg exist 
Logout 
Logout
What are changing in test runs 
• New file set each time 
• New test accounts each time 
• Random amount of uploaded files 
• Randomly removed files 
• Randomly renamed files 
• Random checks 
23
Experiences 
• Useful testing because 
• Tells well the status of core functionality 
• Is very close the new user use case 
• Test generation is easy to do with OSMO 
• Modeling is easy and support well iterative development 
• Test parameterization is easy 
• The challenges 
• Adapters are not easy to do and maintain 
• I keep my testing enough simple, then I don’t need too much maintenance 
• Automating test run was challenging in first time 
• Developers was helping me 
24
Next steps 
• Look for new adapter for android 
• Extend testing on other platforms 
• Extend the power 
• Cover many environments 
• Many machines for testing 
• Run continuously several kind of test sets: 
• Short run for radiator 
• “infinite run” for finding weakest point 
25
My MBT cooking receipt 
1. Find out the core functionality 
2. Make a simple model of that 
3. Make adaptation for test running 
4. Automate test runs 
5. Run model continuously against 
SUT 
6. Put the results visible in your room 
for seeing the “temperature” 
7. Keep the radiator GREEN 
26
Olli-Pekka Puolitaival - Model-Based Tested for Integration Tested in Real Production - EuroSTAR 2012

More Related Content

What's hot

Unit testing
Unit testingUnit testing
Unit testing
Brian Hu
 

What's hot (20)

Unit testing
Unit testingUnit testing
Unit testing
 
Build Tests to Build Websites
Build Tests to Build WebsitesBuild Tests to Build Websites
Build Tests to Build Websites
 
Introduction to jest
Introduction to jestIntroduction to jest
Introduction to jest
 
Functional Tests. PHP Unconf 2016
Functional Tests. PHP Unconf 2016Functional Tests. PHP Unconf 2016
Functional Tests. PHP Unconf 2016
 
The Bumpy Road Towards Continuous Delivery
The Bumpy Road Towards Continuous DeliveryThe Bumpy Road Towards Continuous Delivery
The Bumpy Road Towards Continuous Delivery
 
Agile Testing
Agile TestingAgile Testing
Agile Testing
 
Increase selenium tests stability via java script
Increase selenium tests stability via java scriptIncrease selenium tests stability via java script
Increase selenium tests stability via java script
 
Why test automation projects are failing
Why test automation projects are failingWhy test automation projects are failing
Why test automation projects are failing
 
The Key Components of Adopting CI The OpenStack Way
The Key Components of Adopting CI The OpenStack WayThe Key Components of Adopting CI The OpenStack Way
The Key Components of Adopting CI The OpenStack Way
 
QAorHighway2016
QAorHighway2016QAorHighway2016
QAorHighway2016
 
Continuous testing and deployment in Perl (London.pm Technical Meeting Octobe...
Continuous testing and deployment in Perl (London.pm Technical Meeting Octobe...Continuous testing and deployment in Perl (London.pm Technical Meeting Octobe...
Continuous testing and deployment in Perl (London.pm Technical Meeting Octobe...
 
Automating Perl deployments with Hudson
Automating Perl deployments with HudsonAutomating Perl deployments with Hudson
Automating Perl deployments with Hudson
 
КОСТЯНТИН НАТАЛУХА «Setup and run automated test framework for Android applic...
КОСТЯНТИН НАТАЛУХА «Setup and run automated test framework for Android applic...КОСТЯНТИН НАТАЛУХА «Setup and run automated test framework for Android applic...
КОСТЯНТИН НАТАЛУХА «Setup and run automated test framework for Android applic...
 
Benefits from AATs
Benefits from AATsBenefits from AATs
Benefits from AATs
 
5 Considerations When Adopting Automated Testing
5 Considerations When Adopting Automated Testing5 Considerations When Adopting Automated Testing
5 Considerations When Adopting Automated Testing
 
Better Page Object Handling with Loadable Component Pattern - SQA Days 20, Be...
Better Page Object Handling with Loadable Component Pattern - SQA Days 20, Be...Better Page Object Handling with Loadable Component Pattern - SQA Days 20, Be...
Better Page Object Handling with Loadable Component Pattern - SQA Days 20, Be...
 
Leandro Melendez - Switching Performance Left & Right
Leandro Melendez - Switching Performance Left & RightLeandro Melendez - Switching Performance Left & Right
Leandro Melendez - Switching Performance Left & Right
 
Team Build in TFS - Introduction
Team Build in TFS - IntroductionTeam Build in TFS - Introduction
Team Build in TFS - Introduction
 
QA Automation testing online training
QA Automation testing online trainingQA Automation testing online training
QA Automation testing online training
 
Next generation frontend tooling
Next generation frontend toolingNext generation frontend tooling
Next generation frontend tooling
 

Similar to Olli-Pekka Puolitaival - Model-Based Tested for Integration Tested in Real Production - EuroSTAR 2012

WSO2Con Asia 2014 - Effective Test Automation in an Agile Environment
WSO2Con Asia 2014 - Effective Test Automation in an Agile EnvironmentWSO2Con Asia 2014 - Effective Test Automation in an Agile Environment
WSO2Con Asia 2014 - Effective Test Automation in an Agile Environment
WSO2
 
When is a project ready for Software Automation_NEW
When is a project ready for Software Automation_NEWWhen is a project ready for Software Automation_NEW
When is a project ready for Software Automation_NEW
Mike Christesen
 
Automated Software Testing Framework Training by Quontra Solutions
Automated Software Testing Framework Training by Quontra SolutionsAutomated Software Testing Framework Training by Quontra Solutions
Automated Software Testing Framework Training by Quontra Solutions
Quontra Solutions
 

Similar to Olli-Pekka Puolitaival - Model-Based Tested for Integration Tested in Real Production - EuroSTAR 2012 (20)

Generalization in Auto-Testing. How we put what we had into new Technological...
Generalization in Auto-Testing. How we put what we had into new Technological...Generalization in Auto-Testing. How we put what we had into new Technological...
Generalization in Auto-Testing. How we put what we had into new Technological...
 
John Fodeh - Adventures in Test Automation-Breaking the Boundaries of Regress...
John Fodeh - Adventures in Test Automation-Breaking the Boundaries of Regress...John Fodeh - Adventures in Test Automation-Breaking the Boundaries of Regress...
John Fodeh - Adventures in Test Automation-Breaking the Boundaries of Regress...
 
John Fodeh Adventures in Test Automation - EuroSTAR 2013
John Fodeh Adventures in Test Automation - EuroSTAR 2013John Fodeh Adventures in Test Automation - EuroSTAR 2013
John Fodeh Adventures in Test Automation - EuroSTAR 2013
 
Introduction to Unit Tests and TDD
Introduction to Unit Tests and TDDIntroduction to Unit Tests and TDD
Introduction to Unit Tests and TDD
 
Test parallelization using Jenkins
Test parallelization using JenkinsTest parallelization using Jenkins
Test parallelization using Jenkins
 
5 Steps to Jump Start Your Test Automation
5 Steps to Jump Start Your Test Automation5 Steps to Jump Start Your Test Automation
5 Steps to Jump Start Your Test Automation
 
Tools for Software Testing
Tools for Software TestingTools for Software Testing
Tools for Software Testing
 
Testing Angular
Testing AngularTesting Angular
Testing Angular
 
Lecture #6. automation testing (andrey oleynik)
Lecture #6. automation testing (andrey oleynik)Lecture #6. automation testing (andrey oleynik)
Lecture #6. automation testing (andrey oleynik)
 
Wso2con test-automation
Wso2con test-automationWso2con test-automation
Wso2con test-automation
 
TLC2018 Thomas Haver: The Automation Firehose - Be Strategic and Tactical
TLC2018 Thomas Haver: The Automation Firehose - Be Strategic and TacticalTLC2018 Thomas Haver: The Automation Firehose - Be Strategic and Tactical
TLC2018 Thomas Haver: The Automation Firehose - Be Strategic and Tactical
 
WSO2Con Asia 2014 - Effective Test Automation in an Agile Environment
WSO2Con Asia 2014 - Effective Test Automation in an Agile EnvironmentWSO2Con Asia 2014 - Effective Test Automation in an Agile Environment
WSO2Con Asia 2014 - Effective Test Automation in an Agile Environment
 
When is a project ready for Software Automation_NEW
When is a project ready for Software Automation_NEWWhen is a project ready for Software Automation_NEW
When is a project ready for Software Automation_NEW
 
Implementing Continuous Integration in .NET for Cheapskates
Implementing Continuous Integration in .NET for CheapskatesImplementing Continuous Integration in .NET for Cheapskates
Implementing Continuous Integration in .NET for Cheapskates
 
Software Testing
Software TestingSoftware Testing
Software Testing
 
A la découverte des google/test (aka gtest)
A la découverte des google/test (aka gtest)A la découverte des google/test (aka gtest)
A la découverte des google/test (aka gtest)
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 
Automated Software Testing Framework Training by Quontra Solutions
Automated Software Testing Framework Training by Quontra SolutionsAutomated Software Testing Framework Training by Quontra Solutions
Automated Software Testing Framework Training by Quontra Solutions
 
Tests immutable when refactoring - SegFault Unconference Cracow 2019
Tests immutable when refactoring - SegFault Unconference Cracow 2019Tests immutable when refactoring - SegFault Unconference Cracow 2019
Tests immutable when refactoring - SegFault Unconference Cracow 2019
 
Performance testing with 100,000 concurrent users in AWS
Performance testing with 100,000 concurrent users in AWSPerformance testing with 100,000 concurrent users in AWS
Performance testing with 100,000 concurrent users in AWS
 

More from TEST Huddle

More from TEST Huddle (20)

Why We Need Diversity in Testing- Accenture
Why We Need Diversity in Testing- AccentureWhy We Need Diversity in Testing- Accenture
Why We Need Diversity in Testing- Accenture
 
Keys to continuous testing for faster delivery euro star webinar
Keys to continuous testing for faster delivery euro star webinar Keys to continuous testing for faster delivery euro star webinar
Keys to continuous testing for faster delivery euro star webinar
 
Why you Shouldnt Automated But You Will Anyway
Why you Shouldnt Automated But You Will Anyway Why you Shouldnt Automated But You Will Anyway
Why you Shouldnt Automated But You Will Anyway
 
Being a Tester in Scrum
Being a Tester in ScrumBeing a Tester in Scrum
Being a Tester in Scrum
 
Leveraging Visual Testing with Your Functional Tests
Leveraging Visual Testing with Your Functional TestsLeveraging Visual Testing with Your Functional Tests
Leveraging Visual Testing with Your Functional Tests
 
Using Test Trees to get an Overview of Test Work
Using Test Trees to get an Overview of Test WorkUsing Test Trees to get an Overview of Test Work
Using Test Trees to get an Overview of Test Work
 
Big Data: The Magic to Attain New Heights
Big Data:  The Magic to Attain New HeightsBig Data:  The Magic to Attain New Heights
Big Data: The Magic to Attain New Heights
 
Will Robots Replace Testers?
Will Robots Replace Testers?Will Robots Replace Testers?
Will Robots Replace Testers?
 
TDD For The Rest Of Us
TDD For The Rest Of UsTDD For The Rest Of Us
TDD For The Rest Of Us
 
Scaling Agile with LeSS (Large Scale Scrum)
Scaling Agile with LeSS (Large Scale Scrum)Scaling Agile with LeSS (Large Scale Scrum)
Scaling Agile with LeSS (Large Scale Scrum)
 
Creating Agile Test Strategies for Larger Enterprises
Creating Agile Test Strategies for Larger EnterprisesCreating Agile Test Strategies for Larger Enterprises
Creating Agile Test Strategies for Larger Enterprises
 
Is There A Risk?
Is There A Risk?Is There A Risk?
Is There A Risk?
 
Are Your Tests Well-Travelled? Thoughts About Test Coverage
Are Your Tests Well-Travelled? Thoughts About Test CoverageAre Your Tests Well-Travelled? Thoughts About Test Coverage
Are Your Tests Well-Travelled? Thoughts About Test Coverage
 
Growing a Company Test Community: Roles and Paths for Testers
Growing a Company Test Community: Roles and Paths for TestersGrowing a Company Test Community: Roles and Paths for Testers
Growing a Company Test Community: Roles and Paths for Testers
 
Do we need testers on agile teams?
Do we need testers on agile teams?Do we need testers on agile teams?
Do we need testers on agile teams?
 
How to use selenium successfully
How to use selenium successfullyHow to use selenium successfully
How to use selenium successfully
 
Testers & Teams on the Agile Fluency™ Journey
Testers & Teams on the Agile Fluency™ Journey Testers & Teams on the Agile Fluency™ Journey
Testers & Teams on the Agile Fluency™ Journey
 
Practical Test Strategy Using Heuristics
Practical Test Strategy Using HeuristicsPractical Test Strategy Using Heuristics
Practical Test Strategy Using Heuristics
 
Thinking Through Your Role
Thinking Through Your RoleThinking Through Your Role
Thinking Through Your Role
 
Using Selenium 3 0
Using Selenium 3 0Using Selenium 3 0
Using Selenium 3 0
 

Recently uploaded

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 

Recently uploaded (20)

DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Quantum Leap in Next-Generation Computing
Quantum Leap in Next-Generation ComputingQuantum Leap in Next-Generation Computing
Quantum Leap in Next-Generation Computing
 
Simplifying Mobile A11y Presentation.pptx
Simplifying Mobile A11y Presentation.pptxSimplifying Mobile A11y Presentation.pptx
Simplifying Mobile A11y Presentation.pptx
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
The Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightThe Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and Insight
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Choreo: Empowering the Future of Enterprise Software Engineering
Choreo: Empowering the Future of Enterprise Software EngineeringChoreo: Empowering the Future of Enterprise Software Engineering
Choreo: Empowering the Future of Enterprise Software Engineering
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
AI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by Anitaraj
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
How to Check CNIC Information Online with Pakdata cf
How to Check CNIC Information Online with Pakdata cfHow to Check CNIC Information Online with Pakdata cf
How to Check CNIC Information Online with Pakdata cf
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 

Olli-Pekka Puolitaival - Model-Based Tested for Integration Tested in Real Production - EuroSTAR 2012

  • 1.
  • 2. Olli-Pekka Puolitaival • Lead quality engineer test automation • 5 yrs test automation • 4 yrs research Protecting the irreplaceable | f-secure.com
  • 3. Index • Idea of model-based testing • Story of OSMO tester • How we test • Experiences & tips
  • 4. MBT is new way to think • Traditional way to think • People do testing • Regression automation reduce peoples work time • New way to think • Smart people want to do testing in smart way • Computers are fast and hard worker, let them also try “stupid” things
  • 5. 5
  • 6. 6
  • 7. 7
  • 8. 8
  • 9. 9
  • 10. 10
  • 11. 11
  • 12. 12
  • 13. 13
  • 14. Why we made osmo? Traditional MBT tools • Hard to take in use • Closed • Limited extending • Advanced algorithms • Expensive Osmo tester • Easy start • Flexible • Easy to extend • Simple algorithms • Free (open source) 14
  • 15. Osmo tester idea public class ExampleModel{ int i = 0; @Guard(“increase") public guardfunction() { return true; //Return true if this transition is allowed to execute } @Transition(“example") public void transitionfunction() { System.out.println(i++); //This code is executed when transition is selected } … public static void main(String[] args) { OSMOTester tester = new OSMOTester(new ExampleModel()); tester.generate(); } } 15 “Model is pure java code, Which makes possible to use Any java library”
  • 16. Many additional features • Support online and offline MBT • Requirements tagging • Coverage calculations • Many test design algorithms, also manual drive • Coverage, time and length based stopping criteria • Self written adapters to the SUT • Custom test output formats • Easy to integrate with Jenkins • Model reuse and combining • Probability numbers support • Available: http://code.google.com/p/osmo/ 16 Easy to start and custom for your needs
  • 17. Tips • Modelling • Good model is high level, modular and cover core functionality • Start from small and continue iteratively • Adaptation • Reuse code from test automation or development if possible • Running • Run tests always automatically • Fixed run length for verifying and ”unlimited” for finding some new • Reports • Report what you need to know, visual is mostly better • OSMO is not good if you need very sophisticated algorithms, but most people don’t need those 17
  • 18. The domain is content cloud
  • 19. Client smoke Our continuous integration Backend components Backend components Building Clients 19 Backend components Clients Client Integration test environment Unittest Clients Smoke test Regression test Backend integration Test Environment Performance test Performance Test Environment Client regression Chain of Jenkins jobs runs everything
  • 20. Jenkins Android phone Android client CAN Solution Backend Current test setup “run once per hour” Selenium webdriver Firefox Web adapter Test status radiator Nativedriver client Nativedriver server Model OSMO Android adapter
  • 21. What kind of model? • Idea of this testing • Do actions and verify that other clients data is same • Model includes actions which can be seen in other client like • Upload a file • Remove a file • Rename a file • Check quota • Check that file exist • Check that all files exist as supposed 21
  • 22. Example test run 22 Osmo test engine Web page Android Client Login Upload file1.jpg Login Check file1.jpg Upload file2.jpg Remove file1.jpg Check that only file2.jpg exist Logout Logout
  • 23. What are changing in test runs • New file set each time • New test accounts each time • Random amount of uploaded files • Randomly removed files • Randomly renamed files • Random checks 23
  • 24. Experiences • Useful testing because • Tells well the status of core functionality • Is very close the new user use case • Test generation is easy to do with OSMO • Modeling is easy and support well iterative development • Test parameterization is easy • The challenges • Adapters are not easy to do and maintain • I keep my testing enough simple, then I don’t need too much maintenance • Automating test run was challenging in first time • Developers was helping me 24
  • 25. Next steps • Look for new adapter for android • Extend testing on other platforms • Extend the power • Cover many environments • Many machines for testing • Run continuously several kind of test sets: • Short run for radiator • “infinite run” for finding weakest point 25
  • 26. My MBT cooking receipt 1. Find out the core functionality 2. Make a simple model of that 3. Make adaptation for test running 4. Automate test runs 5. Run model continuously against SUT 6. Put the results visible in your room for seeing the “temperature” 7. Keep the radiator GREEN 26