SlideShare une entreprise Scribd logo
1  sur  10
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

Contenu connexe

Tendances

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
 

Tendances (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
 

Similaire à 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
 

Similaire à 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
 

Dernier

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
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Dernier (20)

Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
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
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
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
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
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
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
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
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 

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