SlideShare a Scribd company logo
http://RandomTest.net
Random Integration Tests
For Your Continuous
Integration Toolchain
By
Dariusz Cieslak
dc at aplikacja.info

RandomTest.net
Unit Tests?
●

I strongly believe in Unit Tests efficiency

●

Are great for automation, but:

●

Are hard to implement properly

●

Requires architectural changes (deps!)

●

●

Integration issues not visible there:
performance, resources, …
So then … ?

RandomTest.net
QA Team Activity
●

●

I do appreciate our QA teams effort – it's
important part of any project and cannot be
omitted
But: any human activity (including mine) is
expensive – we would like to use them as
effectively as possible

●

How to minimize the effort?

●

→ AUTOMATION!
RandomTest.net
Record'n'Play Integration Tests?
●

●

Simple idea: record events in application and
reply them automatically
Have you seen big 100% working UI scripts
after 1 year of development? Me: NOT

●

Fragile due to changes in application

●

Fragile due to environment state

●

→ Requires big effort to maintain

RandomTest.net
Contracts!
●

An Idea from Eiffell language:

●

1. Embed assertions in your code

●

●

●

2. Supply runtime coverage somehow (run the
stuff)
3. App will crash on unmet assertion when
found
4. Fix the issue then goto 2

RandomTest.net
Code Coverage – How?
●

●

●

Manual tests are important but expensive
(boring?)
Scripted automation – requires big effort for
maintenance
Solution: RANDOMISATION! – cheaper
method to deliver runtime codebase coverage

RandomTest.net
Results Verification – How?
●

●

●

●

Do not try to verify output of the randomised
input – it won't work
Assert / Require / Expect / @pre / @post / …
are your friends
Replace static test cases (data – dependant)
with contracts (data – independant)
Collect any failed assertion for aggregations in
central repository
RandomTest.net
QA + RandomTest setup

RandomTest.net
About Us
●

●
●

●

Aplikacja.info delivers software consulting
services
We're The Continuous Integration Freaks
RandomTest.net supports C/C++, Java, PHP at
the moment, more to come!
Need more information? Please visit
randomtest.net for full source code (LGPL-ed)
and documentation
RandomTest.net
About Us
●

●
●

●

Aplikacja.info delivers software consulting
services
We're The Continuous Integration Freaks
RandomTest.net supports C/C++, Java, PHP at
the moment, more to come!
Need more information? Please visit
randomtest.net for full source code (LGPL-ed)
and documentation
RandomTest.net

More Related Content

What's hot

Understand regression testing
Understand regression testingUnderstand regression testing
Understand regression testing
gaoliang641
 
Exploratory testing
Exploratory testingExploratory testing
Exploratory testing
ISsoft
 
Black box testing lecture 11
Black box testing lecture 11Black box testing lecture 11
Black box testing lecture 11
Abdul Basit
 

What's hot (20)

Lesson 2....PPT 1
Lesson 2....PPT 1Lesson 2....PPT 1
Lesson 2....PPT 1
 
White box testing
White box testing White box testing
White box testing
 
White box testing-200709
White box testing-200709White box testing-200709
White box testing-200709
 
Introduction to White box testing
Introduction to White box testingIntroduction to White box testing
Introduction to White box testing
 
Testing strategies for legacy code
Testing strategies for legacy codeTesting strategies for legacy code
Testing strategies for legacy code
 
ISTQB Certified Mobile Application Tester - intro
ISTQB Certified Mobile Application Tester - introISTQB Certified Mobile Application Tester - intro
ISTQB Certified Mobile Application Tester - intro
 
Unit 4 testing
Unit 4 testingUnit 4 testing
Unit 4 testing
 
Understand regression testing
Understand regression testingUnderstand regression testing
Understand regression testing
 
Software Testing Techniques: An Overview
Software Testing Techniques: An Overview Software Testing Techniques: An Overview
Software Testing Techniques: An Overview
 
Black box testing
Black box testingBlack box testing
Black box testing
 
Testing
TestingTesting
Testing
 
VLSI testing and analysis
VLSI testing and analysisVLSI testing and analysis
VLSI testing and analysis
 
Formal method
Formal methodFormal method
Formal method
 
5 black box and grey box testing
5   black box and grey box testing5   black box and grey box testing
5 black box and grey box testing
 
White box & Black box testing
White box & Black box testingWhite box & Black box testing
White box & Black box testing
 
Testing techniques
Testing techniquesTesting techniques
Testing techniques
 
Exploratory testing
Exploratory testingExploratory testing
Exploratory testing
 
Black Box Testing
Black Box TestingBlack Box Testing
Black Box Testing
 
Black box testing lecture 11
Black box testing lecture 11Black box testing lecture 11
Black box testing lecture 11
 
01 software testing_introduction
01 software testing_introduction01 software testing_introduction
01 software testing_introduction
 

Similar to RandomTest - Random Software Integration Tests That Just Work for C/C++, Java, PHP, Python

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
 

Similar to RandomTest - Random Software Integration Tests That Just Work for C/C++, Java, PHP, Python (20)

Don't Suck at Building Stuff - Mykel Alvis at Puppet Camp Altanta
Don't Suck at Building Stuff  - Mykel Alvis at Puppet Camp AltantaDon't Suck at Building Stuff  - Mykel Alvis at Puppet Camp Altanta
Don't Suck at Building Stuff - Mykel Alvis at Puppet Camp Altanta
 
High Performance Software Engineering Teams
High Performance Software Engineering TeamsHigh Performance Software Engineering Teams
High Performance Software Engineering Teams
 
Continuous integration (eng)
Continuous integration (eng)Continuous integration (eng)
Continuous integration (eng)
 
Wso2con test-automation
Wso2con test-automationWso2con test-automation
Wso2con test-automation
 
Lessons Learned When Automating
Lessons Learned When AutomatingLessons Learned When Automating
Lessons Learned When Automating
 
Path Dependent Development (PyCon AU)
Path Dependent Development (PyCon AU)Path Dependent Development (PyCon AU)
Path Dependent Development (PyCon AU)
 
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
 
Writing Tests with the Unity Test Framework
Writing Tests with the Unity Test FrameworkWriting Tests with the Unity Test Framework
Writing Tests with the Unity Test Framework
 
Indy meetup#7 effective unit-testing-mule
Indy meetup#7 effective unit-testing-muleIndy meetup#7 effective unit-testing-mule
Indy meetup#7 effective unit-testing-mule
 
Path dependent-development (PyCon India)
Path dependent-development (PyCon India)Path dependent-development (PyCon India)
Path dependent-development (PyCon India)
 
Put "fast" back in "fast feedback"
Put "fast" back in "fast feedback"Put "fast" back in "fast feedback"
Put "fast" back in "fast feedback"
 
Stop Sucking at Building Stuff!
Stop Sucking at Building Stuff!Stop Sucking at Building Stuff!
Stop Sucking at Building Stuff!
 
Services, tools & practices for a software house
Services, tools & practices for a software houseServices, tools & practices for a software house
Services, tools & practices for a software house
 
Survival of the Continuist
Survival of the ContinuistSurvival of the Continuist
Survival of the Continuist
 
Keeping code clean
Keeping code cleanKeeping code clean
Keeping code clean
 
Usable Software Design
Usable Software DesignUsable Software Design
Usable Software Design
 
Indix Engineering Culture Code (2015)
Indix Engineering Culture Code (2015)Indix Engineering Culture Code (2015)
Indix Engineering Culture Code (2015)
 
Introduction to Continuous Delivery
Introduction to Continuous DeliveryIntroduction to Continuous Delivery
Introduction to Continuous Delivery
 
IFG for SAP Integration, webinar on Automated Testing
IFG for SAP Integration, webinar on Automated TestingIFG for SAP Integration, webinar on Automated Testing
IFG for SAP Integration, webinar on Automated Testing
 
Debugging 2013- Lars pedersen
Debugging 2013- Lars pedersenDebugging 2013- Lars pedersen
Debugging 2013- Lars pedersen
 

Recently uploaded

Recently uploaded (20)

Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeFree and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
 
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptxUnpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
 
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
PLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. StartupsPLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. Startups
 
Introduction to Open Source RAG and RAG Evaluation
Introduction to Open Source RAG and RAG EvaluationIntroduction to Open Source RAG and RAG Evaluation
Introduction to Open Source RAG and RAG Evaluation
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
Optimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through ObservabilityOptimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through Observability
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
In-Depth Performance Testing Guide for IT Professionals
In-Depth Performance Testing Guide for IT ProfessionalsIn-Depth Performance Testing Guide for IT Professionals
In-Depth Performance Testing Guide for IT Professionals
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCustom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
The architecture of Generative AI for enterprises.pdf
The architecture of Generative AI for enterprises.pdfThe architecture of Generative AI for enterprises.pdf
The architecture of Generative AI for enterprises.pdf
 
IESVE for Early Stage Design and Planning
IESVE for Early Stage Design and PlanningIESVE for Early Stage Design and Planning
IESVE for Early Stage Design and Planning
 

RandomTest - Random Software Integration Tests That Just Work for C/C++, Java, PHP, Python

  • 1. http://RandomTest.net Random Integration Tests For Your Continuous Integration Toolchain By Dariusz Cieslak dc at aplikacja.info RandomTest.net
  • 2. Unit Tests? ● I strongly believe in Unit Tests efficiency ● Are great for automation, but: ● Are hard to implement properly ● Requires architectural changes (deps!) ● ● Integration issues not visible there: performance, resources, … So then … ? RandomTest.net
  • 3. QA Team Activity ● ● I do appreciate our QA teams effort – it's important part of any project and cannot be omitted But: any human activity (including mine) is expensive – we would like to use them as effectively as possible ● How to minimize the effort? ● → AUTOMATION! RandomTest.net
  • 4. Record'n'Play Integration Tests? ● ● Simple idea: record events in application and reply them automatically Have you seen big 100% working UI scripts after 1 year of development? Me: NOT ● Fragile due to changes in application ● Fragile due to environment state ● → Requires big effort to maintain RandomTest.net
  • 5. Contracts! ● An Idea from Eiffell language: ● 1. Embed assertions in your code ● ● ● 2. Supply runtime coverage somehow (run the stuff) 3. App will crash on unmet assertion when found 4. Fix the issue then goto 2 RandomTest.net
  • 6. Code Coverage – How? ● ● ● Manual tests are important but expensive (boring?) Scripted automation – requires big effort for maintenance Solution: RANDOMISATION! – cheaper method to deliver runtime codebase coverage RandomTest.net
  • 7. Results Verification – How? ● ● ● ● Do not try to verify output of the randomised input – it won't work Assert / Require / Expect / @pre / @post / … are your friends Replace static test cases (data – dependant) with contracts (data – independant) Collect any failed assertion for aggregations in central repository RandomTest.net
  • 8. QA + RandomTest setup RandomTest.net
  • 9. About Us ● ● ● ● Aplikacja.info delivers software consulting services We're The Continuous Integration Freaks RandomTest.net supports C/C++, Java, PHP at the moment, more to come! Need more information? Please visit randomtest.net for full source code (LGPL-ed) and documentation RandomTest.net
  • 10. About Us ● ● ● ● Aplikacja.info delivers software consulting services We're The Continuous Integration Freaks RandomTest.net supports C/C++, Java, PHP at the moment, more to come! Need more information? Please visit randomtest.net for full source code (LGPL-ed) and documentation RandomTest.net