SlideShare une entreprise Scribd logo
1  sur  29
Télécharger pour lire hors ligne
Fundamentals of unit testing in PHP usingPHPUnit,[object Object],Nicolas A. Bérard-Nault,[object Object],5 May 2011,[object Object]
Some of the goals of test automation,[object Object],For the stakeholders:,[object Object],[object Object]
Improvinginternalqualityby increasingmaintainability
Reduced short and long-termriskFor the programmers:,[object Object],[object Object]
Use tests as documentation
Use tests as a specification,[object Object]
PHPUnit and the xUnitfamily,[object Object],[object Object]
Member of the xUnitfamily
Direct descendant of sUnitwritten by Kent Beck and jUnit, written by Beck and Erich GammaWebsite: http://www.phpunit.de,[object Object],Code coverageisprovidedusing the xDebug extension: http://www.xdebug.org,[object Object]
Your first ,[object Object],PHPUnittest (1),[object Object],Goal: test an implementation of ROT13,[object Object],System under test:,[object Object],functionrot13($text),[object Object],{,[object Object],$len = strlen($text);,[object Object],for ($i = 0; $i < $len; $i++),[object Object],    {,[object Object],$text{$i} = chr((ord($text{$i}) - ord('a') + 13) % 26 + ord('a'));,[object Object],    },[object Object],return$text;,[object Object],},[object Object],Initial naïve approach: Formulateexpectedbehavior,[object Object]
Your first ,[object Object],PHPUnittest (2),[object Object],Class namehas Test suffix,[object Object],Base class for tests,[object Object],class Rot13Test extendsPHPUnit_Framework_TestCase,[object Object],{,[object Object],public functiontestWord(),[object Object],    {,[object Object],$this->assertEquals('cheryl', rot13('purely'));,[object Object],    },[object Object],},[object Object],Test methodhas test prefix,[object Object],Post-condition verification,[object Object]
Your first ,[object Object],PHPUnittest (3),[object Object],nicobn@nicobn-laptop:~$ phpunit rot13.php,[object Object],PHPUnit 3.5.5 by Sebastian Bergmann.,[object Object],.,[object Object],Time: 0 seconds, Memory: 3.50Mb,[object Object],OK (1 test, 1 assertion),[object Object],The test passes but have wereallycovered all of our bases ?,[object Object]
Preconditions, invariants and postconditions,[object Object],functionrot13($text),[object Object],{,[object Object],$len = strlen($text);,[object Object],for ($i = 0; $i < $len; $i++),[object Object],    {,[object Object],$text{$i} = chr((ord($text{$i}) - ord('a') + 13) % 26 + ord('a'));,[object Object],    },[object Object],return$text;,[object Object],},[object Object],Precondition: $text must be a string,[object Object],Precondition: $text must belower case,[object Object],Invariant: non-alpha characters must remainunchanged,[object Object],Postcondition: each alpha character must bemoved 13 positions ,[object Object],Wescrewed up ! How many more tests do weneed ? ,[object Object]
NEWFLASH: It’s not a question of how awesomelyawesome of a programmer you are, but a question of methodology !,[object Object],Sad panda issad,[object Object]
Test first ! (1),[object Object],“Applying ROT13 to a piece of text merely requires examining its alphabetic characters and replacing each one by the letter 13 places further along in the alphabet, wrapping back to the beginning if necessary. A becomes N, B becomes O, and so on up to M, which becomes Z, then the sequence continues at the beginning of the alphabet: N becomes A, O becomes B, and so on to Z, which becomes M. Only those letters which occur in the English alphabet are affected; numbers, symbols, whitespace, and all other characters are left unchanged. Because there are 26 letters in the English alphabet and 26 = 2 × 13, the ROT13 function is its own inverse.”,[object Object],(Wikipedia),[object Object]
Test first ! (2a),[object Object],functionrot13($text),[object Object],{,[object Object],},[object Object],class Rot13Test extendsPHPUnit_Framework_TestCase,[object Object],{,[object Object],public function test_A_Lower(),[object Object],    {,[object Object],$this->assertEquals('n', rot13('a'));,[object Object],    },[object Object],},[object Object],There was 1 failure:,[object Object],1) Rot13Test::test_A_Lower,[object Object],Failed asserting that two strings are equal.,[object Object],--- Expected,[object Object],+++ Actual,[object Object],@@ @@,[object Object],-n,[object Object],+,[object Object]
Test first ! (2b),[object Object],functionrot13($text),[object Object],{,[object Object],return‘n’;,[object Object],},[object Object],class Rot13Test extendsPHPUnit_Framework_TestCase,[object Object],{,[object Object],public function test_A_Lower(),[object Object],    {,[object Object],$this->assertEquals('n', rot13('a'));,[object Object],    },[object Object],},[object Object],PHPUnit 3.5.5 by Sebastian Bergmann.,[object Object],.,[object Object],Time: 1 second, Memory: 3.50Mb,[object Object],OK (1 test, 1 assertion),[object Object]
Test first ! (2c),[object Object],functionrot13($text),[object Object],{,[object Object],returnchr(ord($text{0}) + 13);,[object Object],},[object Object],class Rot13Test extendsPHPUnit_Framework_TestCase,[object Object],{,[object Object],public function test_A_Lower(),[object Object],    {,[object Object],$this->assertEquals('n', rot13('a'));,[object Object],    },[object Object],},[object Object],PHPUnit 3.5.5 by Sebastian Bergmann.,[object Object],.,[object Object],Time: 1 second, Memory: 3.50Mb,[object Object],OK (1 test, 1 assertion),[object Object]
Test first ! (3a),[object Object],functionrot13($text),[object Object],{,[object Object],returnchr(ord($text{0}) + 13);,[object Object],},[object Object],class Rot13Test extendsPHPUnit_Framework_TestCase,[object Object],{,[object Object],public function test_A_Lower(),[object Object],    {,[object Object],$this->assertEquals('n', rot13('a'));,[object Object],    },[object Object],public function test_N_Lower(),[object Object],    {,[object Object],$this->assertEquals(‘a', rot13(‘n'));,[object Object],    },[object Object],},[object Object],FAIL !,[object Object]
Test first ! (3b),[object Object],functionrot13($text),[object Object],{,[object Object],return chr((ord($text{0}) - ord('a') + 13) % 26 + ord('a'));,[object Object],},[object Object],class Rot13Test extendsPHPUnit_Framework_TestCase,[object Object],{,[object Object],public function test_A_Lower(),[object Object],    {,[object Object],$this->assertEquals('n', rot13('a'));,[object Object],    },[object Object],public function test_N_Lower(),[object Object],    {,[object Object],$this->assertEquals(‘a', rot13(‘n'));,[object Object],    },[object Object],},[object Object],PASS !,[object Object]
Test first ! (4a),[object Object],functionrot13($text),[object Object],{,[object Object],   return chr((ord($text{0}) - ord('a') + 13) % 26 + ord('a'));,[object Object],},[object Object],class Rot13Test extendsPHPUnit_Framework_TestCase,[object Object],{,[object Object],public function test_A_Lower(),[object Object],    {,[object Object],$this->assertEquals('n', rot13('a'));,[object Object],    },[object Object],public function test_N_Lower(),[object Object],    {,[object Object],$this->assertEquals(‘a', rot13(‘n'));,[object Object],    },[object Object],public functiontest_Symbol(),[object Object],    {,[object Object],$this->assertEquals('$', rot13('$'));,[object Object],    },[object Object],},[object Object],FAIL !,[object Object]
Test first ! (4b),[object Object],functionrot13($text),[object Object],{,[object Object],if (!ctype_alnum($text{0})) {,[object Object],return$text{0};,[object Object],    },[object Object],   return chr((ord($text{0}) - ord('a') + 13) % 26 + ord('a'));,[object Object],},[object Object],class Rot13Test extendsPHPUnit_Framework_TestCase,[object Object],{,[object Object],public function test_A_Lower(),[object Object],    {,[object Object],$this->assertEquals('n', rot13('a'));,[object Object],    },[object Object],public function test_N_Lower(),[object Object],    {,[object Object],$this->assertEquals(‘a', rot13(‘n'));,[object Object],    },[object Object],public functiontest_Symbol(),[object Object],    {,[object Object],$this->assertEquals('$', rot13('$'));,[object Object],    },[object Object],},[object Object],PASS !,[object Object]
Test first ! (5a),[object Object],functionrot13($text),[object Object],{,[object Object],if (!ctype_alnum($text{0})) {,[object Object],return$text{0};,[object Object],    },[object Object],   return chr((ord($text{0}) - ord('a') + 13) % 26 + ord('a'));,[object Object],},[object Object],class Rot13Test extendsPHPUnit_Framework_TestCase,[object Object],{,[object Object],/* […] */,[object Object],public functiontest_N_Upper(),[object Object],    {,[object Object],$this->assertEquals('A', rot13('N'));,[object Object],    },[object Object],},[object Object],FAIL !,[object Object]
Test first ! (5b),[object Object],functionrot13($text),[object Object],{,[object Object],if (!ctype_alnum($text{0})) {,[object Object],return$text{0};,[object Object],    },[object Object],if (ctype_upper($text{0})) {,[object Object],$delta = ord('A');,[object Object],    } else {,[object Object],$delta = ord('a');,[object Object],    },[object Object],   return chr((ord($text{0}) - $delta + 13) % 26 + $delta);,[object Object],},[object Object],class Rot13Test extendsPHPUnit_Framework_TestCase,[object Object],{,[object Object],/* […] */,[object Object],public functiontest_N_Upper(),[object Object],    {,[object Object],$this->assertEquals('A', rot13('N'));,[object Object],    },[object Object],},[object Object],PASS !,[object Object]
Test first ! (6a),[object Object],functionrot13($text),[object Object],{,[object Object],if (!ctype_alnum($text{0})) {,[object Object],return$text{0};,[object Object],    },[object Object],if (ctype_upper($text{0})) {,[object Object],$delta = ord('A');,[object Object],    } else {,[object Object],$delta = ord('a');,[object Object],    },[object Object],   return chr((ord($text{0}) - $delta + 13) % 26 + $delta);,[object Object],},[object Object],class Rot13Test extendsPHPUnit_Framework_TestCase,[object Object],{,[object Object],/* […] */,[object Object],public functiontest_N_Purely(),[object Object],    {,[object Object],$this->assertEquals(‘$purely$', rot13(‘$cheryl$'));,[object Object],    },[object Object],},[object Object],FAIL !,[object Object]
Test first ! (6b),[object Object],functionrot13($text),[object Object],{,[object Object],$str = '';,[object Object],$len = strlen($text);,[object Object],for ($i = 0; $i < $len; $i++),[object Object],    {,[object Object],if (!ctype_alnum($text{$i})) {,[object Object],$str .= $text{$i};,[object Object],        } else {,[object Object],            if (ctype_upper($text{$i})) {,[object Object],$delta = ord('A');,[object Object],            } else {,[object Object],$delta = ord('a');,[object Object],            },[object Object],$str.= chr((ord($text{$i}) - $delta + 13) % 26 + $delta);,[object Object],        },[object Object],    },[object Object],return$str;,[object Object],},[object Object],PASS !,[object Object]
Test-drivendevelopment,[object Object],RED,[object Object],GREEN,[object Object],REFACTOR,[object Object]
PHPUnit assertions,[object Object],Note: most assertions have a assertNotXXXX() counterpart.,[object Object]
Test status,[object Object],Do yourself and yourcolleaguesa favor and mark tests as skipped or incompletewhen relevant !,[object Object]

Contenu connexe

Tendances

Advanced PHPUnit Testing
Advanced PHPUnit TestingAdvanced PHPUnit Testing
Advanced PHPUnit TestingMike Lively
 
PHPUnit best practices presentation
PHPUnit best practices presentationPHPUnit best practices presentation
PHPUnit best practices presentationThanh Robi
 
Unit testing PHP apps with PHPUnit
Unit testing PHP apps with PHPUnitUnit testing PHP apps with PHPUnit
Unit testing PHP apps with PHPUnitMichelangelo van Dam
 
Test your code like a pro - PHPUnit in practice
Test your code like a pro - PHPUnit in practiceTest your code like a pro - PHPUnit in practice
Test your code like a pro - PHPUnit in practiceSebastian Marek
 
Unit Testng with PHP Unit - A Step by Step Training
Unit Testng with PHP Unit - A Step by Step TrainingUnit Testng with PHP Unit - A Step by Step Training
Unit Testng with PHP Unit - A Step by Step TrainingRam Awadh Prasad, PMP
 
Mocking Dependencies in PHPUnit
Mocking Dependencies in PHPUnitMocking Dependencies in PHPUnit
Mocking Dependencies in PHPUnitmfrost503
 
Beginning PHPUnit
Beginning PHPUnitBeginning PHPUnit
Beginning PHPUnitJace Ju
 
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)ENDelt260
 
Building Testable PHP Applications
Building Testable PHP ApplicationsBuilding Testable PHP Applications
Building Testable PHP Applicationschartjes
 
Test Driven Development With Python
Test Driven Development With PythonTest Driven Development With Python
Test Driven Development With PythonSiddhi
 
An introduction to Google test framework
An introduction to Google test frameworkAn introduction to Google test framework
An introduction to Google test frameworkAbner Chih Yi Huang
 
Test in action week 2
Test in action   week 2Test in action   week 2
Test in action week 2Yi-Huan Chan
 
EPHPC Webinar Slides: Unit Testing by Arthur Purnama
EPHPC Webinar Slides: Unit Testing by Arthur PurnamaEPHPC Webinar Slides: Unit Testing by Arthur Purnama
EPHPC Webinar Slides: Unit Testing by Arthur PurnamaEnterprise PHP Center
 
C++ Unit Test with Google Testing Framework
C++ Unit Test with Google Testing FrameworkC++ Unit Test with Google Testing Framework
C++ Unit Test with Google Testing FrameworkHumberto Marchezi
 
Testing Code and Assuring Quality
Testing Code and Assuring QualityTesting Code and Assuring Quality
Testing Code and Assuring QualityKent Cowgill
 
Python Unit Test
Python Unit TestPython Unit Test
Python Unit TestDavid Xie
 

Tendances (20)

Advanced PHPUnit Testing
Advanced PHPUnit TestingAdvanced PHPUnit Testing
Advanced PHPUnit Testing
 
PHPUnit best practices presentation
PHPUnit best practices presentationPHPUnit best practices presentation
PHPUnit best practices presentation
 
Unit testing PHP apps with PHPUnit
Unit testing PHP apps with PHPUnitUnit testing PHP apps with PHPUnit
Unit testing PHP apps with PHPUnit
 
Test your code like a pro - PHPUnit in practice
Test your code like a pro - PHPUnit in practiceTest your code like a pro - PHPUnit in practice
Test your code like a pro - PHPUnit in practice
 
PHPUnit
PHPUnitPHPUnit
PHPUnit
 
Unit Testng with PHP Unit - A Step by Step Training
Unit Testng with PHP Unit - A Step by Step TrainingUnit Testng with PHP Unit - A Step by Step Training
Unit Testng with PHP Unit - A Step by Step Training
 
Mocking Dependencies in PHPUnit
Mocking Dependencies in PHPUnitMocking Dependencies in PHPUnit
Mocking Dependencies in PHPUnit
 
Beginning PHPUnit
Beginning PHPUnitBeginning PHPUnit
Beginning PHPUnit
 
Unit testing
Unit testingUnit testing
Unit testing
 
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)
 
PHPUnit testing to Zend_Test
PHPUnit testing to Zend_TestPHPUnit testing to Zend_Test
PHPUnit testing to Zend_Test
 
Building Testable PHP Applications
Building Testable PHP ApplicationsBuilding Testable PHP Applications
Building Testable PHP Applications
 
Test Driven Development With Python
Test Driven Development With PythonTest Driven Development With Python
Test Driven Development With Python
 
An introduction to Google test framework
An introduction to Google test frameworkAn introduction to Google test framework
An introduction to Google test framework
 
Test in action week 2
Test in action   week 2Test in action   week 2
Test in action week 2
 
EPHPC Webinar Slides: Unit Testing by Arthur Purnama
EPHPC Webinar Slides: Unit Testing by Arthur PurnamaEPHPC Webinar Slides: Unit Testing by Arthur Purnama
EPHPC Webinar Slides: Unit Testing by Arthur Purnama
 
C++ Unit Test with Google Testing Framework
C++ Unit Test with Google Testing FrameworkC++ Unit Test with Google Testing Framework
C++ Unit Test with Google Testing Framework
 
Phpunit
PhpunitPhpunit
Phpunit
 
Testing Code and Assuring Quality
Testing Code and Assuring QualityTesting Code and Assuring Quality
Testing Code and Assuring Quality
 
Python Unit Test
Python Unit TestPython Unit Test
Python Unit Test
 

Similaire à Unit Testing Presentation

Mario Fusco - Lazy Java - Codemotion Milan 2018
Mario Fusco - Lazy Java - Codemotion Milan 2018Mario Fusco - Lazy Java - Codemotion Milan 2018
Mario Fusco - Lazy Java - Codemotion Milan 2018Codemotion
 
Intro to Testing in Zope, Plone
Intro to Testing in Zope, PloneIntro to Testing in Zope, Plone
Intro to Testing in Zope, PloneQuintagroup
 
maXbox Starter 36 Software Testing
maXbox Starter 36 Software TestingmaXbox Starter 36 Software Testing
maXbox Starter 36 Software TestingMax Kleiner
 
Kamil witecki asynchronous, yet readable, code
Kamil witecki asynchronous, yet readable, codeKamil witecki asynchronous, yet readable, code
Kamil witecki asynchronous, yet readable, codeKamil Witecki
 
Automated Unit Testing
Automated Unit TestingAutomated Unit Testing
Automated Unit TestingMike Lively
 
Quality Assurance
Quality AssuranceQuality Assurance
Quality AssuranceKiran Kumar
 
Mutation Testing: Start Hunting The Bugs
Mutation Testing: Start Hunting The BugsMutation Testing: Start Hunting The Bugs
Mutation Testing: Start Hunting The BugsAri Waller
 
using python module: doctest
using python module: doctestusing python module: doctest
using python module: doctestmitnk
 
Fighting Fear-Driven-Development With PHPUnit
Fighting Fear-Driven-Development With PHPUnitFighting Fear-Driven-Development With PHPUnit
Fighting Fear-Driven-Development With PHPUnitJames Fuller
 
Testing JavaScript Applications
Testing JavaScript ApplicationsTesting JavaScript Applications
Testing JavaScript ApplicationsThe Rolling Scopes
 

Similaire à Unit Testing Presentation (20)

Mario Fusco - Lazy Java - Codemotion Milan 2018
Mario Fusco - Lazy Java - Codemotion Milan 2018Mario Fusco - Lazy Java - Codemotion Milan 2018
Mario Fusco - Lazy Java - Codemotion Milan 2018
 
Lazy java
Lazy javaLazy java
Lazy java
 
Lazy Java
Lazy JavaLazy Java
Lazy Java
 
Lazy Java
Lazy JavaLazy Java
Lazy Java
 
Java 8 Workshop
Java 8 WorkshopJava 8 Workshop
Java 8 Workshop
 
Intro to Testing in Zope, Plone
Intro to Testing in Zope, PloneIntro to Testing in Zope, Plone
Intro to Testing in Zope, Plone
 
Core java
Core javaCore java
Core java
 
maXbox Starter 36 Software Testing
maXbox Starter 36 Software TestingmaXbox Starter 36 Software Testing
maXbox Starter 36 Software Testing
 
Kamil witecki asynchronous, yet readable, code
Kamil witecki asynchronous, yet readable, codeKamil witecki asynchronous, yet readable, code
Kamil witecki asynchronous, yet readable, code
 
Automated Unit Testing
Automated Unit TestingAutomated Unit Testing
Automated Unit Testing
 
Groovy Basics
Groovy BasicsGroovy Basics
Groovy Basics
 
Quality Assurance
Quality AssuranceQuality Assurance
Quality Assurance
 
Mutation Testing: Start Hunting The Bugs
Mutation Testing: Start Hunting The BugsMutation Testing: Start Hunting The Bugs
Mutation Testing: Start Hunting The Bugs
 
TDD Training
TDD TrainingTDD Training
TDD Training
 
using python module: doctest
using python module: doctestusing python module: doctest
using python module: doctest
 
Unit testing
Unit testingUnit testing
Unit testing
 
Writing tests
Writing testsWriting tests
Writing tests
 
Good Practices On Test Automation
Good Practices On Test AutomationGood Practices On Test Automation
Good Practices On Test Automation
 
Fighting Fear-Driven-Development With PHPUnit
Fighting Fear-Driven-Development With PHPUnitFighting Fear-Driven-Development With PHPUnit
Fighting Fear-Driven-Development With PHPUnit
 
Testing JavaScript Applications
Testing JavaScript ApplicationsTesting JavaScript Applications
Testing JavaScript Applications
 

Dernier

AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesAI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesMd Hossain Ali
 
Computer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsComputer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsSeth Reyes
 
Linked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesLinked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesDavid Newbury
 
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfJamie (Taka) Wang
 
UiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPathCommunity
 
20230202 - Introduction to tis-py
20230202 - Introduction to tis-py20230202 - Introduction to tis-py
20230202 - Introduction to tis-pyJamie (Taka) Wang
 
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...Aggregage
 
UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8DianaGray10
 
UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6DianaGray10
 
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfUiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfDianaGray10
 
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...DianaGray10
 
Videogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfVideogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfinfogdgmi
 
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDEADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDELiveplex
 
Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1DianaGray10
 
OpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureOpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureEric D. Schabell
 
Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.YounusS2
 
Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024D Cloud Solutions
 
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online CollaborationCOMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online Collaborationbruanjhuli
 

Dernier (20)

20230104 - machine vision
20230104 - machine vision20230104 - machine vision
20230104 - machine vision
 
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesAI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
 
Computer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsComputer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and Hazards
 
Linked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesLinked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond Ontologies
 
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
 
20150722 - AGV
20150722 - AGV20150722 - AGV
20150722 - AGV
 
UiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation Developers
 
20230202 - Introduction to tis-py
20230202 - Introduction to tis-py20230202 - Introduction to tis-py
20230202 - Introduction to tis-py
 
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
 
UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8
 
UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6
 
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfUiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
 
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
 
Videogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfVideogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdf
 
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDEADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
 
Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1
 
OpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureOpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability Adventure
 
Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.
 
Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024
 
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online CollaborationCOMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
 

Unit Testing Presentation