SlideShare une entreprise Scribd logo
1  sur  40
Télécharger pour lire hors ligne
CONCURRENT TEST FRAMEWORKS
Andrea Giuliano
@bit_shark
Andrea Giuliano
@bit_shark
andreagiuliano.it
$WHOAMI
PHPTEST FRAMEWORKS
WHICH ONE SHOULD I USE?
CONCENTRATE
AND ASK
AGAIN
WHO SAID “ONE”?
ISTHETOOLTHE PROBLEM?
LET’S START FROMTHE
BEGINNING
TEST DRIVEN DEVELOPMENT
Red
GreenRefactor
EMERGENT DESIGN
TDD AS A PROBLEM
TDD AS A PROBLEM
class VideoGalleryTest extends PHPUnit_Framework_TestCase
{
public function testUploadVideo()
{
$videoGallery = new VideoGallery();
$videoGallery->upload('path/on/my/awesome/file.mp4');
$this->assertTrue(is_array($videoGallery->getVideos()));
$this->assertCount(1, $videoGallery->getVideos());
$this->assertInstanceOf(
Video::class,
$videoGallery->getFirstVideo());
}
}
TDD AS A PROBLEM
class VideoGalleryTest extends PHPUnit_Framework_TestCase
{
public function testUploadVideo()
{
$videoGallery = new VideoGallery();
$videoGallery->upload('path/on/my/awesome/file.mp4');
$this->assertTrue(is_array($videoGallery->getVideos()));
$this->assertCount(1, $videoGallery->getVideos());
$this->assertInstanceOf(
Video::class,
$videoGallery->getFirstVideo());
}
}
testing internals
ISVERSUS DOES
IT’S ALL ABOUT BEHAVIOUR
DESCRIBING A STORY
Feature:
As a [role]
I want [feature]
So that [benefit]
Scenario: scenario description
Given [context]
When [event]
Then [outcome]
A DIFFERENT CYCLE
Write an acceptance test
(Given/When/Then)
Discover ‘verbs’, ‘nouns’
and write a failing step
definition
A DIFFERENT CYCLE
Describe the behaviours
for ‘verbs’ and ‘nouns’
Write an acceptance test
(Given/When/Then)
Discover ‘verbs’, ‘nouns’
and write a failing step
definition
A DIFFERENT CYCLE
Describe the behaviours
for ‘verbs’ and ‘nouns’
Write an acceptance test
(Given/When/Then)
Discover ‘verbs’, ‘nouns’
and write a failing step
definition
Create object and
the behavioural methods
A DIFFERENT CYCLE
Describe the behaviours
for ‘verbs’ and ‘nouns’
Write an acceptance test
(Given/When/Then)
Discover ‘verbs’, ‘nouns’
and write a failing step
definition
Create object and
the behavioural methods
THETOOL
composer require behat/behat --dev
DESCRIBING A STORY
Scenario: Getting the total amount for a conference ticket
Given a ticket for the "PHP Day" conference priced EUR100 was
added to the marketplace
When a user adds the "PHP Day" ticket from the marketplace
to the user's shopping cart
Then the overall cart price should be EUR122
RUNTHE STORY
$ bin/behat --append-snippets
VERBS, NOUNS, BEHAVIOUR
DISCOVERING
/**
* @Given a ticket for the :conference conference priced EUR:price
* was added to the marketplace
*/
public function aTicketForTheConferencePriced($conference, $price)
{
$money = Money::EUR((int) $price);
$ticket = Ticket::forConferencePriced($conference, $money);
$this->marketPlace->add($ticket);
}
/**
* @When a user adds the ":conference" ticket
* from the marketplace to the shopping cart
*/
public function aUserAddTheTicketToTheShoppingCart($conference)
{
$this->user->addTicketToCart($conference, $this->marketPlace);
}
VERBS, NOUNS, BEHAVIOUR
DISCOVERING
/**
* @Then the overall cart price should be EUR:price
*/
public function theOverallCartPriceShouldBe($price)
{
$money = Money::EUR((int) $price);
$amount = $this->user->shoppingCart()->total();
if (!$amount->equals($money)) {
throw new Exception("Cart amount is not " . $price);
}
}
VERBS, NOUNS, BEHAVIOUR
DISCOVERING
DESCRIBETHE BEHAVIOUR
Describe the behaviours
for ‘verbs’ and ‘nouns’
Write an acceptance test
(Given/When/Then)
Discover ‘verbs’, ‘nouns’
and write a failing step
definition
Create object and
the behavioural methods
THETOOLS
DESCRIBINGTICKET CREATION
class TicketTest extends PHPUnit_Framework_TestCase
{
/**
* @test
*/
function should_create_a_ticket_for_conference_priced()
{
$price = Money::EUR(1000);
$ticket = Ticket::forConferencePriced(
'An awesome conference',
$price
);
$this->assertInstanceOf(Ticket::class, $ticket);
}
}
OBJECT CREATION
Describe the behaviours
for ‘verbs’ and ‘nouns’
Write an acceptance test
(Given/When/Then)
Discover ‘verbs’, ‘nouns’
and write a failing step
definition
Create object and
the behavioural methods
THETICKET OBJECT
class Ticket implements TicketInterface
{
private $event;
private $price;
private function __construct($event, Money $price)
{
$this->event = $event;
$this->price = $price;
}
public static function forConferencePriced($conference, Money $price)
{
return new Ticket($conference, $price);
}
}
GOING UP
Describe the behaviours
for ‘verbs’ and ‘nouns’
Write an acceptance test
(Given/When/Then)
Discover ‘verbs’, ‘nouns’
and write a failing step
definition
Create object and
the behavioural methods
SHOPPING CART SPECIFICATION
class ShoppingCartSpec extends ObjectBehavior
{
function it_should_return_the_amount_with_vat(TicketInterface $ticket)
{
$ticket->price()->willReturn(Money::EUR(100.00));
$this->addTicket($ticket);
$expectedMoney = Money::EUR(122.00);
$this->total()->shouldBeLike($expectedMoney);
}
}
THE SHOPPING CART OBJECT
class ShoppingCart
{
public function total()
{
$total = Money::EUR(0);
foreach ($this->tickets as $ticket) {
$ticketPriceWithVat = Money::multiply(
$ticket->price(),
self::VAT
);
$total = Money::add($total, $ticketPriceWithVat->amount());
}
return $total;
}
}
GOING UP
Describe the behaviours
for ‘verbs’ and ‘nouns’
Write an acceptance test
(Given/When/Then)
Discover ‘verbs’, ‘nouns’
and write a failing step
definition
Create object and
the behavioural methods
THE GREEN SATISFACTION
MOVING OUTWARDLY
Domain
Application
Presentation
THE FORTRESS
joind.in/14553
Please rate the talk
joind.in/14553
Please rate the talk
REFERENCES
Assets:
https://www.flickr.com/photos/levork/4966756896
https://www.flickr.com/photos/jenny-pics/7960912752
https://www.flickr.com/photos/joel_baker/12484614505
https://www.flickr.com/photos/mike-f/8628898387
https://www.flickr.com/photos/mike-f/8628898387
https://www.flickr.com/photos/michaeljzealot/6485009571
The RSpec book, Behaviour Driven Development with RSpec, Cucumber, and Friends - D. Chelimsky
Konstantin Kudryashov aka Everzet - Introducing modeling by example
everzet.com/post/99045129766/introducing-modelling-by-example
a special thanks to Giulio De Donato aka liuggio

Contenu connexe

Tendances

2014 database - course 2 - php
2014 database - course 2 - php2014 database - course 2 - php
2014 database - course 2 - php
Hung-yu Lin
 
Avinash Kundaliya: Javascript and WordPress
Avinash Kundaliya: Javascript and WordPressAvinash Kundaliya: Javascript and WordPress
Avinash Kundaliya: Javascript and WordPress
wpnepal
 
Advanced modulinos
Advanced modulinosAdvanced modulinos
Advanced modulinos
brian d foy
 

Tendances (20)

2014 database - course 2 - php
2014 database - course 2 - php2014 database - course 2 - php
2014 database - course 2 - php
 
Oracle PL/SQL - Creative Conditional Compilation
Oracle PL/SQL - Creative Conditional CompilationOracle PL/SQL - Creative Conditional Compilation
Oracle PL/SQL - Creative Conditional Compilation
 
PHP: 4 Design Patterns to Make Better Code
PHP: 4 Design Patterns to Make Better CodePHP: 4 Design Patterns to Make Better Code
PHP: 4 Design Patterns to Make Better Code
 
PHPSpec BDD Framework
PHPSpec BDD FrameworkPHPSpec BDD Framework
PHPSpec BDD Framework
 
PHP variables
PHP  variablesPHP  variables
PHP variables
 
Deploying Straight to Production
Deploying Straight to ProductionDeploying Straight to Production
Deploying Straight to Production
 
Exceptions in PHP
Exceptions in PHPExceptions in PHP
Exceptions in PHP
 
Oop php 5
Oop php 5Oop php 5
Oop php 5
 
Advanced modulinos trial
Advanced modulinos trialAdvanced modulinos trial
Advanced modulinos trial
 
SOLID Principles
SOLID PrinciplesSOLID Principles
SOLID Principles
 
Avinash Kundaliya: Javascript and WordPress
Avinash Kundaliya: Javascript and WordPressAvinash Kundaliya: Javascript and WordPress
Avinash Kundaliya: Javascript and WordPress
 
Advanced modulinos
Advanced modulinosAdvanced modulinos
Advanced modulinos
 
Building Testable PHP Applications
Building Testable PHP ApplicationsBuilding Testable PHP Applications
Building Testable PHP Applications
 
Introduction in php
Introduction in phpIntroduction in php
Introduction in php
 
Mocking Dependencies in PHPUnit
Mocking Dependencies in PHPUnitMocking Dependencies in PHPUnit
Mocking Dependencies in PHPUnit
 
TDC 2015 - Metaprogramação na prática
TDC 2015 - Metaprogramação na práticaTDC 2015 - Metaprogramação na prática
TDC 2015 - Metaprogramação na prática
 
PHP 7 Crash Course
PHP 7 Crash CoursePHP 7 Crash Course
PHP 7 Crash Course
 
Introduction in php part 2
Introduction in php part 2Introduction in php part 2
Introduction in php part 2
 
Workshop quality assurance for php projects - ZendCon 2013
Workshop quality assurance for php projects - ZendCon 2013Workshop quality assurance for php projects - ZendCon 2013
Workshop quality assurance for php projects - ZendCon 2013
 
How to test complex SaaS applications - The family july 2014
How to test complex SaaS applications - The family july 2014How to test complex SaaS applications - The family july 2014
How to test complex SaaS applications - The family july 2014
 

En vedette

Anexos a puntos orden del dãa reuniã“n comit㉠intercentros prl 26 05-15
Anexos a puntos orden del dãa reuniã“n comit㉠intercentros prl 26 05-15Anexos a puntos orden del dãa reuniã“n comit㉠intercentros prl 26 05-15
Anexos a puntos orden del dãa reuniã“n comit㉠intercentros prl 26 05-15
sindicatosatif
 
3-Career-Portfolio-Ali-Farsad-05-17-2015
3-Career-Portfolio-Ali-Farsad-05-17-20153-Career-Portfolio-Ali-Farsad-05-17-2015
3-Career-Portfolio-Ali-Farsad-05-17-2015
Ali Farsad
 
Modeling and texturing in 3 ds max
Modeling and texturing in 3 ds maxModeling and texturing in 3 ds max
Modeling and texturing in 3 ds max
sribalaji0007
 
Business Resume 2016_MLT_Ops_Admin-Coord_Sales
Business Resume 2016_MLT_Ops_Admin-Coord_SalesBusiness Resume 2016_MLT_Ops_Admin-Coord_Sales
Business Resume 2016_MLT_Ops_Admin-Coord_Sales
Michael Taylor Gray
 
KANDISKY. Presentación Ampa
KANDISKY. Presentación AmpaKANDISKY. Presentación Ampa
KANDISKY. Presentación Ampa
cp13967
 

En vedette (19)

Vipishi.ru как инструмент продаж
Vipishi.ru как инструмент продажVipishi.ru как инструмент продаж
Vipishi.ru как инструмент продаж
 
Anexos a puntos orden del dãa reuniã“n comit㉠intercentros prl 26 05-15
Anexos a puntos orden del dãa reuniã“n comit㉠intercentros prl 26 05-15Anexos a puntos orden del dãa reuniã“n comit㉠intercentros prl 26 05-15
Anexos a puntos orden del dãa reuniã“n comit㉠intercentros prl 26 05-15
 
Apple Watch Sales Pitch
Apple Watch Sales PitchApple Watch Sales Pitch
Apple Watch Sales Pitch
 
3-Career-Portfolio-Ali-Farsad-05-17-2015
3-Career-Portfolio-Ali-Farsad-05-17-20153-Career-Portfolio-Ali-Farsad-05-17-2015
3-Career-Portfolio-Ali-Farsad-05-17-2015
 
T area
T areaT area
T area
 
Web Design Bangalore| Mediajackers
Web Design Bangalore| MediajackersWeb Design Bangalore| Mediajackers
Web Design Bangalore| Mediajackers
 
Modeling and texturing in 3 ds max
Modeling and texturing in 3 ds maxModeling and texturing in 3 ds max
Modeling and texturing in 3 ds max
 
Reposhitory
ReposhitoryReposhitory
Reposhitory
 
13.02.16
13.02.1613.02.16
13.02.16
 
Digital TV technology
Digital TV technologyDigital TV technology
Digital TV technology
 
Análisis de riesgos y vulnerabilidades
Análisis de riesgos y vulnerabilidades Análisis de riesgos y vulnerabilidades
Análisis de riesgos y vulnerabilidades
 
Business Resume 2016_MLT_Ops_Admin-Coord_Sales
Business Resume 2016_MLT_Ops_Admin-Coord_SalesBusiness Resume 2016_MLT_Ops_Admin-Coord_Sales
Business Resume 2016_MLT_Ops_Admin-Coord_Sales
 
Математика. 1 класс. Урок 103. Повторение изученного в 1-м классе
Математика. 1 класс. Урок 103. Повторение изученного в 1-м классеМатематика. 1 класс. Урок 103. Повторение изученного в 1-м классе
Математика. 1 класс. Урок 103. Повторение изученного в 1-м классе
 
KANDISKY. Presentación Ampa
KANDISKY. Presentación AmpaKANDISKY. Presentación Ampa
KANDISKY. Presentación Ampa
 
Software[1]
Software[1]Software[1]
Software[1]
 
Nomenclatura de óxidos metálicos simplificado
Nomenclatura de óxidos metálicos simplificadoNomenclatura de óxidos metálicos simplificado
Nomenclatura de óxidos metálicos simplificado
 
Shock hipovolemico
Shock hipovolemicoShock hipovolemico
Shock hipovolemico
 
Blogger
BloggerBlogger
Blogger
 
LaKendra_S._Morris_(2)
LaKendra_S._Morris_(2)LaKendra_S._Morris_(2)
LaKendra_S._Morris_(2)
 

Similaire à Concurrent test frameworks

international PHP2011_Bastian Feder_The most unknown Parts of PHPUnit
international PHP2011_Bastian Feder_The most unknown Parts of PHPUnitinternational PHP2011_Bastian Feder_The most unknown Parts of PHPUnit
international PHP2011_Bastian Feder_The most unknown Parts of PHPUnit
smueller_sandsmedia
 

Similaire à Concurrent test frameworks (20)

Refactoring using Codeception
Refactoring using CodeceptionRefactoring using Codeception
Refactoring using Codeception
 
PHP Unit Testing
PHP Unit TestingPHP Unit Testing
PHP Unit Testing
 
Mocking Demystified
Mocking DemystifiedMocking Demystified
Mocking Demystified
 
Unittests für Dummies
Unittests für DummiesUnittests für Dummies
Unittests für Dummies
 
Unit testing with zend framework PHPBenelux
Unit testing with zend framework PHPBeneluxUnit testing with zend framework PHPBenelux
Unit testing with zend framework PHPBenelux
 
Unit testing with zend framework tek11
Unit testing with zend framework tek11Unit testing with zend framework tek11
Unit testing with zend framework tek11
 
PHPUnit testing to Zend_Test
PHPUnit testing to Zend_TestPHPUnit testing to Zend_Test
PHPUnit testing to Zend_Test
 
Hack tutorial
Hack tutorialHack tutorial
Hack tutorial
 
4Developers 2015: Be pragmatic, be SOLID - Krzysztof Menżyk
4Developers 2015: Be pragmatic, be SOLID - Krzysztof Menżyk4Developers 2015: Be pragmatic, be SOLID - Krzysztof Menżyk
4Developers 2015: Be pragmatic, be SOLID - Krzysztof Menżyk
 
Be pragmatic, be SOLID
Be pragmatic, be SOLIDBe pragmatic, be SOLID
Be pragmatic, be SOLID
 
PhpUnit - The most unknown Parts
PhpUnit - The most unknown PartsPhpUnit - The most unknown Parts
PhpUnit - The most unknown Parts
 
Unlock The Mystery Of PHPUnit (Wave PHP 2018)
Unlock The Mystery Of PHPUnit (Wave PHP 2018)Unlock The Mystery Of PHPUnit (Wave PHP 2018)
Unlock The Mystery Of PHPUnit (Wave PHP 2018)
 
Php unit the-mostunknownparts
Php unit the-mostunknownpartsPhp unit the-mostunknownparts
Php unit the-mostunknownparts
 
international PHP2011_Bastian Feder_The most unknown Parts of PHPUnit
international PHP2011_Bastian Feder_The most unknown Parts of PHPUnitinternational PHP2011_Bastian Feder_The most unknown Parts of PHPUnit
international PHP2011_Bastian Feder_The most unknown Parts of PHPUnit
 
Objects, Testing, and Responsibility
Objects, Testing, and ResponsibilityObjects, Testing, and Responsibility
Objects, Testing, and Responsibility
 
Introduction to Unit Testing with PHPUnit
Introduction to Unit Testing with PHPUnitIntroduction to Unit Testing with PHPUnit
Introduction to Unit Testing with PHPUnit
 
Unit testing zend framework apps
Unit testing zend framework appsUnit testing zend framework apps
Unit testing zend framework apps
 
Php unit the-mostunknownparts
Php unit the-mostunknownpartsPhp unit the-mostunknownparts
Php unit the-mostunknownparts
 
Design how your objects talk through mocking
Design how your objects talk through mockingDesign how your objects talk through mocking
Design how your objects talk through mocking
 
Symfony (Unit, Functional) Testing.
Symfony (Unit, Functional) Testing.Symfony (Unit, Functional) Testing.
Symfony (Unit, Functional) Testing.
 

Plus de Andrea Giuliano

Plus de Andrea Giuliano (10)

CQRS, ReactJS, Docker in a nutshell
CQRS, ReactJS, Docker in a nutshellCQRS, ReactJS, Docker in a nutshell
CQRS, ReactJS, Docker in a nutshell
 
Go fast in a graph world
Go fast in a graph worldGo fast in a graph world
Go fast in a graph world
 
Index management in depth
Index management in depthIndex management in depth
Index management in depth
 
Consistency, Availability, Partition: Make Your Choice
Consistency, Availability, Partition: Make Your ChoiceConsistency, Availability, Partition: Make Your Choice
Consistency, Availability, Partition: Make Your Choice
 
Asynchronous data processing
Asynchronous data processingAsynchronous data processing
Asynchronous data processing
 
Think horizontally @Codemotion
Think horizontally @CodemotionThink horizontally @Codemotion
Think horizontally @Codemotion
 
Index management in shallow depth
Index management in shallow depthIndex management in shallow depth
Index management in shallow depth
 
Everything you always wanted to know about forms* *but were afraid to ask
Everything you always wanted to know about forms* *but were afraid to askEverything you always wanted to know about forms* *but were afraid to ask
Everything you always wanted to know about forms* *but were afraid to ask
 
Stub you!
Stub you!Stub you!
Stub you!
 
Let's test!
Let's test!Let's test!
Let's test!
 

Dernier

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 

Dernier (20)

Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 

Concurrent test frameworks