SlideShare une entreprise Scribd logo
1  sur  32
Télécharger pour lire hors ligne
Perl Testing
                       Consideration
                          (seen from other languages)


                               Masaki Nakagawa

                 YAPC::Asia 2011 Tokyo (yapcasia.org/2011/talk/80)



2011   10   14
Profile
                 • Masaki Nakagawa
                 • @ikasam_a
                 • metacpan.org/author/MASAKI
                 • MC of Yokohama.pm (yokohama.pm.org)
                 • github.com/masaki
                 • socialbios.com/ikasam_a
                 • “Pushing the Team B”
2011   10   14
Thank you !

                 ameblo.jp/yuki-kashiwagi-we/image-11002817849-11452563522.html
2011   10   14
Works
                 • Embedded Development w/ C++
                 • WebApp. Development w/ Ruby
                 • Project Management (small)
                 • New Business Development
                  •   www.ricoh.co.jp/ucs/

                  •   www.ricoh.co.jp/ucs/P3000/



2011   10   14
Embedded Development

                 • “Hardware Driven”
                 • “The Waterfall”
                 • Development Process
                 • QA Process
                 • Systematic Testing
2011   10   14
Classification of Testing


                  Perspective   Target

                     How         What




2011   10   14
Perspective
                      Developer or User (Customer)


                 • Developer Testing
                 • Acceptance Testing


2011   10   14
Target
                               One or More


                 • Unit Testing
                 • Integration Testing


2011   10   14
How
                        Techniques for writing tests


                 • Black Box Testing
                 • White Box Testing


2011   10   14
What
                           the Purpose of testing

                 • Functional Testing
                 • Non-Functional Testing
                  • Performance / Stress / Usability / ...

2011   10   14
Testing Framework


                 1. Helping to write tests
                 2. Executing tests
                 3. Reporting test results




2011   10   14
Ruby Testing




                 www.atmarkit.co.jp/fcoding/rails/articles/passionate/07/passionate07a.html
                                 survey.hamptoncatlin.com/survey/stats
2011   10   14
e.g.) RSpec

                 1. describe ... it ...
                 2. $ rspec ...
                 3. Spec::Runner::Formatter




2011   10   14
e.g.) Cucumber

                 1. Given ... When ... Then ...
                 2. $ cucumber ...
                 3. Cucumber::Formatter




2011   10   14
Many Frameworks


2011   10   14
Perl Testing

                 1. Test::More, Test::Class,
                    Test::Base, Test::Spec, ...
                 2. $ prove ... (TAP::Harness)
                 3. TAP (TAP::Formatter)



2011   10   14
Perl has TAP

2011   10   14
TAP
                 • testanything.org
                  • “the Test Anything Protocol”
                  • “is a simple text-based interface”
        1..4
        ok 1 -     Input file opened
        not ok     2 - First line of the input valid
        ok 3 -     Read the rest of the file
        not ok     4 - Summarized correctly # TODO Not written yet


                             testanything.org/wiki/index.php/Main_Page
2011   10   14
Perl <3 TAP
                 • From any test description
                  •   e.g.) Test::Class, Test::Base, Test::Spec

                 • Convert results to non-TAP format
                  •   e.g.) TAP::Formatter::JUnit

                 • Easy to write test helpers
                  •   e.g.) Test::Exception, Test::Deep, ...


2011   10   14
Rails Testing




                  gihyo.jp/magazine/wdpress/archive/2011/vol61
2011   10   14
Rails Testing
                 •   Perspective
                     •   UnitTest, End-to-End

                 •   Frameworks
                     •   Test::Unit (+ Shoulda), RSpec, Cucumber

                 •   Browser Integration
                     •   Capybara (rack-test, Selenium, Envjs, ...)

                 •   Test Double
                     •   rspec-mocks, rr, WebMock

2011   10   14
Catalyst

                 • Catalyst::Test
                 • Test::WWW::Mechanize::Catalyst
                 • Test::WWW::Selenium::Catalyst

2011   10   14
Plack


                 • Plack::Test
                 • Test::WWW::Mechanize::PSGI


2011   10   14
Browser Integration

                 • WWW:: + WAF Customization
                  • WWW::Mechanize
                  • WWW::Selenium (Selenium-RC)
                 • not yet for testing
                  • WWW::HtmlUnit
                  • Selenium::Remote::Driver (WebDriver)
2011   10   14
Test Double
                         xunitpatterns.com/Test%20Double.html




                 • Mock
                  • Test::MockObject
                  • Test::Mock::Recorder
                 • Stub
                  • Test::Mock::Guard
                  • Test::Mock::LWP::Dispatch
2011   10   14
Test Double
                                  xunitpatterns.com/Test%20Double.html


                 •   Test::Double (under construction)

                     •   0.01 released !

                         •   metacpan.org/release/Test-Double

                     •   github.com/masaki/Test-Double

                     •   Mocks and Stubs

                         •   mock out w/ mocha style

                         •   stub out w/ rr style

                     •   Collaborators Welcome!!!
2011   10   14
Test Double
                          xunitpatterns.com/Test%20Double.html




                 • Spy
                  • DBD::Mock
                 • Fake
                  • Test::mysqld
                  • Test::TCP
2011   10   14
Descriptive Frameworks

                 • Test::More
                 • Test::Class (xUnit style)
                 • Test::Declare / Test::More + “subtest”
                 • Test::Spec (RSpec 1 compat.)
                 • Test::Base (Parameterized Tests)
                 • Test::Cukes / Test::BDD::Cucumber
                   (Cucumber clone)
2011   10   14
Weakness
                 • Expectation and Verification
                  • vs. rr, rspec-mocks, mocha, ...
                 • Browser Integration API
                  • vs. Capybara, Webrat, ...
                 • Naming of Test Double modules
                  • Test::Mock::Guard is “Stub” module
2011   10   14
Comparision
                 • Pros
                  • TAP-based Test Description
                  • Many Helpful Modules
                 • Cons
                  • Non-Uniform Browser Integration
                  • Poor Expectation and Verification
2011   10   14
Conclusions
                 • About Testing
                  • 4 Classifications
                  • 3 Elements in Frameworks
                 • Perl and Ruby/Rails Testing Environments
                  • Perl has TAP and Many Great Modules
                  • Learn and Steal MORE from Ruby/Rails
                    • Write More Descriptively
2011   10   14
Thank you!
                 Questions?


2011   10   14

Contenu connexe

Tendances

ProtractorJS for automated testing of Angular 1.x/2.x applications
ProtractorJS for automated testing of Angular 1.x/2.x applicationsProtractorJS for automated testing of Angular 1.x/2.x applications
ProtractorJS for automated testing of Angular 1.x/2.x applicationsBinary Studio
 
Visual Regression Testing: In search of an Ember solution
Visual Regression Testing: In search of an Ember solutionVisual Regression Testing: In search of an Ember solution
Visual Regression Testing: In search of an Ember solutionLisa Backer
 
Protractor for angularJS
Protractor for angularJSProtractor for angularJS
Protractor for angularJSKrishna Kumar
 
Sonar qube to impove code quality
Sonar qube   to impove code qualitySonar qube   to impove code quality
Sonar qube to impove code qualityMani Sarkar
 
Mastering Test Automation: How to Use Selenium Successfully
Mastering Test Automation: How to Use Selenium Successfully Mastering Test Automation: How to Use Selenium Successfully
Mastering Test Automation: How to Use Selenium Successfully Applitools
 
Real Java EE Testing with Arquillian and ShrinkWrap
Real Java EE Testing with Arquillian and ShrinkWrapReal Java EE Testing with Arquillian and ShrinkWrap
Real Java EE Testing with Arquillian and ShrinkWrapDan Allen
 
Test Automation with Twist and Sahi
Test Automation with Twist and SahiTest Automation with Twist and Sahi
Test Automation with Twist and Sahiericjamesblackburn
 
Jest: Frontend Testing leicht gemacht @EnterJS2018
Jest: Frontend Testing leicht gemacht @EnterJS2018Jest: Frontend Testing leicht gemacht @EnterJS2018
Jest: Frontend Testing leicht gemacht @EnterJS2018Holger Grosse-Plankermann
 
Rethinking Testing
Rethinking TestingRethinking Testing
Rethinking Testingpdejuan
 
How to Use Selenium, Successfully
How to Use Selenium, SuccessfullyHow to Use Selenium, Successfully
How to Use Selenium, SuccessfullySauce Labs
 
QA Fest 2015. Сергей Пирогов. Красивые JBehave отчеты
QA Fest 2015. Сергей Пирогов. Красивые JBehave отчетыQA Fest 2015. Сергей Пирогов. Красивые JBehave отчеты
QA Fest 2015. Сергей Пирогов. Красивые JBehave отчетыQAFest
 
Automated Testing using JavaScript
Automated Testing using JavaScriptAutomated Testing using JavaScript
Automated Testing using JavaScriptSimon Guest
 
FIT and JBehave - Good, Bad and Ugly
FIT and JBehave - Good, Bad and UglyFIT and JBehave - Good, Bad and Ugly
FIT and JBehave - Good, Bad and UglyBrian Repko
 
Fabulous Tests on Spock and Groovy
Fabulous Tests on Spock and GroovyFabulous Tests on Spock and Groovy
Fabulous Tests on Spock and GroovyYaroslav Pernerovsky
 
AngularJS and Protractor
AngularJS and ProtractorAngularJS and Protractor
AngularJS and ProtractorFilipe Falcão
 
API Testing following the Test Pyramid
API Testing following the Test PyramidAPI Testing following the Test Pyramid
API Testing following the Test PyramidElias Nogueira
 
Jest: Frontend Testing richtig gemacht @WebworkerNRW
Jest: Frontend Testing richtig gemacht @WebworkerNRWJest: Frontend Testing richtig gemacht @WebworkerNRW
Jest: Frontend Testing richtig gemacht @WebworkerNRWHolger Grosse-Plankermann
 
Test Driven Development in CQ5/AEM
Test Driven Development in CQ5/AEMTest Driven Development in CQ5/AEM
Test Driven Development in CQ5/AEMSagar Sane
 
Selenium
SeleniumSelenium
Seleniumg2ix
 
Behaviour testing for single-page applications and API’s
Behaviour testing for single-page applications and API’sBehaviour testing for single-page applications and API’s
Behaviour testing for single-page applications and API’sAndrew Kirkpatrick
 

Tendances (20)

ProtractorJS for automated testing of Angular 1.x/2.x applications
ProtractorJS for automated testing of Angular 1.x/2.x applicationsProtractorJS for automated testing of Angular 1.x/2.x applications
ProtractorJS for automated testing of Angular 1.x/2.x applications
 
Visual Regression Testing: In search of an Ember solution
Visual Regression Testing: In search of an Ember solutionVisual Regression Testing: In search of an Ember solution
Visual Regression Testing: In search of an Ember solution
 
Protractor for angularJS
Protractor for angularJSProtractor for angularJS
Protractor for angularJS
 
Sonar qube to impove code quality
Sonar qube   to impove code qualitySonar qube   to impove code quality
Sonar qube to impove code quality
 
Mastering Test Automation: How to Use Selenium Successfully
Mastering Test Automation: How to Use Selenium Successfully Mastering Test Automation: How to Use Selenium Successfully
Mastering Test Automation: How to Use Selenium Successfully
 
Real Java EE Testing with Arquillian and ShrinkWrap
Real Java EE Testing with Arquillian and ShrinkWrapReal Java EE Testing with Arquillian and ShrinkWrap
Real Java EE Testing with Arquillian and ShrinkWrap
 
Test Automation with Twist and Sahi
Test Automation with Twist and SahiTest Automation with Twist and Sahi
Test Automation with Twist and Sahi
 
Jest: Frontend Testing leicht gemacht @EnterJS2018
Jest: Frontend Testing leicht gemacht @EnterJS2018Jest: Frontend Testing leicht gemacht @EnterJS2018
Jest: Frontend Testing leicht gemacht @EnterJS2018
 
Rethinking Testing
Rethinking TestingRethinking Testing
Rethinking Testing
 
How to Use Selenium, Successfully
How to Use Selenium, SuccessfullyHow to Use Selenium, Successfully
How to Use Selenium, Successfully
 
QA Fest 2015. Сергей Пирогов. Красивые JBehave отчеты
QA Fest 2015. Сергей Пирогов. Красивые JBehave отчетыQA Fest 2015. Сергей Пирогов. Красивые JBehave отчеты
QA Fest 2015. Сергей Пирогов. Красивые JBehave отчеты
 
Automated Testing using JavaScript
Automated Testing using JavaScriptAutomated Testing using JavaScript
Automated Testing using JavaScript
 
FIT and JBehave - Good, Bad and Ugly
FIT and JBehave - Good, Bad and UglyFIT and JBehave - Good, Bad and Ugly
FIT and JBehave - Good, Bad and Ugly
 
Fabulous Tests on Spock and Groovy
Fabulous Tests on Spock and GroovyFabulous Tests on Spock and Groovy
Fabulous Tests on Spock and Groovy
 
AngularJS and Protractor
AngularJS and ProtractorAngularJS and Protractor
AngularJS and Protractor
 
API Testing following the Test Pyramid
API Testing following the Test PyramidAPI Testing following the Test Pyramid
API Testing following the Test Pyramid
 
Jest: Frontend Testing richtig gemacht @WebworkerNRW
Jest: Frontend Testing richtig gemacht @WebworkerNRWJest: Frontend Testing richtig gemacht @WebworkerNRW
Jest: Frontend Testing richtig gemacht @WebworkerNRW
 
Test Driven Development in CQ5/AEM
Test Driven Development in CQ5/AEMTest Driven Development in CQ5/AEM
Test Driven Development in CQ5/AEM
 
Selenium
SeleniumSelenium
Selenium
 
Behaviour testing for single-page applications and API’s
Behaviour testing for single-page applications and API’sBehaviour testing for single-page applications and API’s
Behaviour testing for single-page applications and API’s
 

Similaire à Perl Testing Consideration (seen from other languages)

Thucydides - a brief review
Thucydides - a brief reviewThucydides - a brief review
Thucydides - a brief reviewCristian COȚOI
 
Angular 2 overview
Angular 2 overviewAngular 2 overview
Angular 2 overviewJesse Warden
 
Seasprint2012ploneconferencereportout
Seasprint2012ploneconferencereportoutSeasprint2012ploneconferencereportout
Seasprint2012ploneconferencereportoutableeb
 
Developers Testing - Girl Code at bloomon
Developers Testing - Girl Code at bloomonDevelopers Testing - Girl Code at bloomon
Developers Testing - Girl Code at bloomonIneke Scheffers
 
Test::Kantan - Perl and Testing
Test::Kantan - Perl and TestingTest::Kantan - Perl and Testing
Test::Kantan - Perl and TestingTokuhiro Matsuno
 
Java for XPages Development
Java for XPages DevelopmentJava for XPages Development
Java for XPages DevelopmentTeamstudio
 
Exploring Ruby on Rails and PostgreSQL
Exploring Ruby on Rails and PostgreSQLExploring Ruby on Rails and PostgreSQL
Exploring Ruby on Rails and PostgreSQLBarry Jones
 
Tuenti Release Workflow
Tuenti Release WorkflowTuenti Release Workflow
Tuenti Release WorkflowTuenti
 
Web a Quebec - JS Debugging
Web a Quebec - JS DebuggingWeb a Quebec - JS Debugging
Web a Quebec - JS DebuggingRami Sayar
 
2009 seminar - tim m - vs 2010 developer edition
2009   seminar - tim m - vs 2010 developer edition2009   seminar - tim m - vs 2010 developer edition
2009 seminar - tim m - vs 2010 developer editionTim Mahy
 
Introduction to tempest
Introduction to tempest Introduction to tempest
Introduction to tempest openstackindia
 
Start with passing tests (tdd for bugs) v0.5 (22 sep 2016)
Start with passing tests (tdd for bugs) v0.5 (22 sep 2016)Start with passing tests (tdd for bugs) v0.5 (22 sep 2016)
Start with passing tests (tdd for bugs) v0.5 (22 sep 2016)Dinis Cruz
 
Practical maven-slides 2
Practical maven-slides 2Practical maven-slides 2
Practical maven-slides 2Will Iverson
 
Automated Testing with Cucumber, PhantomJS and Selenium
Automated Testing with Cucumber, PhantomJS and SeleniumAutomated Testing with Cucumber, PhantomJS and Selenium
Automated Testing with Cucumber, PhantomJS and SeleniumDev9Com
 
New Java features: Simplified Design Patterns[LIT3826]
New Java features: Simplified Design Patterns[LIT3826]New Java features: Simplified Design Patterns[LIT3826]
New Java features: Simplified Design Patterns[LIT3826]Miro Wengner
 
Tuenti Release Workflow v1.1
Tuenti Release Workflow v1.1Tuenti Release Workflow v1.1
Tuenti Release Workflow v1.1Tuenti
 
Testing sync engine
Testing sync engineTesting sync engine
Testing sync engineIlya Puchka
 
Testing - How Vital and How Easy to use
Testing - How Vital and How Easy to useTesting - How Vital and How Easy to use
Testing - How Vital and How Easy to useUma Ghotikar
 

Similaire à Perl Testing Consideration (seen from other languages) (20)

Thucydides - a brief review
Thucydides - a brief reviewThucydides - a brief review
Thucydides - a brief review
 
Angular 2 overview
Angular 2 overviewAngular 2 overview
Angular 2 overview
 
Seasprint2012ploneconferencereportout
Seasprint2012ploneconferencereportoutSeasprint2012ploneconferencereportout
Seasprint2012ploneconferencereportout
 
Developers Testing - Girl Code at bloomon
Developers Testing - Girl Code at bloomonDevelopers Testing - Girl Code at bloomon
Developers Testing - Girl Code at bloomon
 
Test::Kantan - Perl and Testing
Test::Kantan - Perl and TestingTest::Kantan - Perl and Testing
Test::Kantan - Perl and Testing
 
Java for XPages Development
Java for XPages DevelopmentJava for XPages Development
Java for XPages Development
 
Exploring Ruby on Rails and PostgreSQL
Exploring Ruby on Rails and PostgreSQLExploring Ruby on Rails and PostgreSQL
Exploring Ruby on Rails and PostgreSQL
 
Tuenti Release Workflow
Tuenti Release WorkflowTuenti Release Workflow
Tuenti Release Workflow
 
Web a Quebec - JS Debugging
Web a Quebec - JS DebuggingWeb a Quebec - JS Debugging
Web a Quebec - JS Debugging
 
2009 seminar - tim m - vs 2010 developer edition
2009   seminar - tim m - vs 2010 developer edition2009   seminar - tim m - vs 2010 developer edition
2009 seminar - tim m - vs 2010 developer edition
 
Introduction to tempest
Introduction to tempest Introduction to tempest
Introduction to tempest
 
Start with passing tests (tdd for bugs) v0.5 (22 sep 2016)
Start with passing tests (tdd for bugs) v0.5 (22 sep 2016)Start with passing tests (tdd for bugs) v0.5 (22 sep 2016)
Start with passing tests (tdd for bugs) v0.5 (22 sep 2016)
 
Practical maven-slides 2
Practical maven-slides 2Practical maven-slides 2
Practical maven-slides 2
 
Automated Testing with Cucumber, PhantomJS and Selenium
Automated Testing with Cucumber, PhantomJS and SeleniumAutomated Testing with Cucumber, PhantomJS and Selenium
Automated Testing with Cucumber, PhantomJS and Selenium
 
Stackato
StackatoStackato
Stackato
 
New Java features: Simplified Design Patterns[LIT3826]
New Java features: Simplified Design Patterns[LIT3826]New Java features: Simplified Design Patterns[LIT3826]
New Java features: Simplified Design Patterns[LIT3826]
 
Fastest Servlets in the West
Fastest Servlets in the WestFastest Servlets in the West
Fastest Servlets in the West
 
Tuenti Release Workflow v1.1
Tuenti Release Workflow v1.1Tuenti Release Workflow v1.1
Tuenti Release Workflow v1.1
 
Testing sync engine
Testing sync engineTesting sync engine
Testing sync engine
 
Testing - How Vital and How Easy to use
Testing - How Vital and How Easy to useTesting - How Vital and How Easy to use
Testing - How Vital and How Easy to use
 

Plus de Masaki Nakagawa

YAPCと俺 (吉祥寺.pm #17)
YAPCと俺 (吉祥寺.pm #17)YAPCと俺 (吉祥寺.pm #17)
YAPCと俺 (吉祥寺.pm #17)Masaki Nakagawa
 
10年モノ熟成Perlとの付き合い方
10年モノ熟成Perlとの付き合い方10年モノ熟成Perlとの付き合い方
10年モノ熟成Perlとの付き合い方Masaki Nakagawa
 
レシピブログのサービス設計と今後の展望
レシピブログのサービス設計と今後の展望レシピブログのサービス設計と今後の展望
レシピブログのサービス設計と今後の展望Masaki Nakagawa
 
DeNAが取り組む Software Engineer in Test
DeNAが取り組む Software Engineer in TestDeNAが取り組む Software Engineer in Test
DeNAが取り組む Software Engineer in TestMasaki Nakagawa
 
5minQues - SWET近況報告
5minQues - SWET近況報告5minQues - SWET近況報告
5minQues - SWET近況報告Masaki Nakagawa
 
WebサービスのソフトウェアQAと自動テスト戦略
WebサービスのソフトウェアQAと自動テスト戦略WebサービスのソフトウェアQAと自動テスト戦略
WebサービスのソフトウェアQAと自動テスト戦略Masaki Nakagawa
 
2014-04-22 Ques #4 Automation Testing of Mobage Platform
2014-04-22 Ques #4 Automation Testing of Mobage Platform2014-04-22 Ques #4 Automation Testing of Mobage Platform
2014-04-22 Ques #4 Automation Testing of Mobage PlatformMasaki Nakagawa
 
Software Engineer in Test at DeNA
Software Engineer in Test at DeNASoftware Engineer in Test at DeNA
Software Engineer in Test at DeNAMasaki Nakagawa
 
Carton について何か話す
Carton について何か話すCarton について何か話す
Carton について何か話すMasaki Nakagawa
 

Plus de Masaki Nakagawa (10)

YAPCと俺 (吉祥寺.pm #17)
YAPCと俺 (吉祥寺.pm #17)YAPCと俺 (吉祥寺.pm #17)
YAPCと俺 (吉祥寺.pm #17)
 
10年モノ熟成Perlとの付き合い方
10年モノ熟成Perlとの付き合い方10年モノ熟成Perlとの付き合い方
10年モノ熟成Perlとの付き合い方
 
レシピブログのサービス設計と今後の展望
レシピブログのサービス設計と今後の展望レシピブログのサービス設計と今後の展望
レシピブログのサービス設計と今後の展望
 
DeNAが取り組む Software Engineer in Test
DeNAが取り組む Software Engineer in TestDeNAが取り組む Software Engineer in Test
DeNAが取り組む Software Engineer in Test
 
5minQues - SWET近況報告
5minQues - SWET近況報告5minQues - SWET近況報告
5minQues - SWET近況報告
 
WebサービスのソフトウェアQAと自動テスト戦略
WebサービスのソフトウェアQAと自動テスト戦略WebサービスのソフトウェアQAと自動テスト戦略
WebサービスのソフトウェアQAと自動テスト戦略
 
2014-04-22 Ques #4 Automation Testing of Mobage Platform
2014-04-22 Ques #4 Automation Testing of Mobage Platform2014-04-22 Ques #4 Automation Testing of Mobage Platform
2014-04-22 Ques #4 Automation Testing of Mobage Platform
 
Software Engineer in Test at DeNA
Software Engineer in Test at DeNASoftware Engineer in Test at DeNA
Software Engineer in Test at DeNA
 
Carton について何か話す
Carton について何か話すCarton について何か話す
Carton について何か話す
 
As an Test Engineer
As an Test EngineerAs an Test Engineer
As an Test Engineer
 

Dernier

Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
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 REVIEWERMadyBayot
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Zilliz
 
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 AmsterdamUiPathCommunity
 
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.pptxRemote DBA Services
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
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.pptxRustici Software
 
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 FresherRemote DBA Services
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
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 WoodJuan lago vázquez
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelDeepika Singh
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityWSO2
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
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.pdfsudhanshuwaghmare1
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
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​Bhuvaneswari Subramani
 
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 Ontologyjohnbeverley2021
 
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.pdfOrbitshub
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusZilliz
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 

Dernier (20)

Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
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
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
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
 
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
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
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
 
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
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
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
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
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
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
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​
 
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
 
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
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 

Perl Testing Consideration (seen from other languages)

  • 1. Perl Testing Consideration (seen from other languages) Masaki Nakagawa YAPC::Asia 2011 Tokyo (yapcasia.org/2011/talk/80) 2011 10 14
  • 2. Profile • Masaki Nakagawa • @ikasam_a • metacpan.org/author/MASAKI • MC of Yokohama.pm (yokohama.pm.org) • github.com/masaki • socialbios.com/ikasam_a • “Pushing the Team B” 2011 10 14
  • 3. Thank you ! ameblo.jp/yuki-kashiwagi-we/image-11002817849-11452563522.html 2011 10 14
  • 4. Works • Embedded Development w/ C++ • WebApp. Development w/ Ruby • Project Management (small) • New Business Development • www.ricoh.co.jp/ucs/ • www.ricoh.co.jp/ucs/P3000/ 2011 10 14
  • 5. Embedded Development • “Hardware Driven” • “The Waterfall” • Development Process • QA Process • Systematic Testing 2011 10 14
  • 6. Classification of Testing Perspective Target How What 2011 10 14
  • 7. Perspective Developer or User (Customer) • Developer Testing • Acceptance Testing 2011 10 14
  • 8. Target One or More • Unit Testing • Integration Testing 2011 10 14
  • 9. How Techniques for writing tests • Black Box Testing • White Box Testing 2011 10 14
  • 10. What the Purpose of testing • Functional Testing • Non-Functional Testing • Performance / Stress / Usability / ... 2011 10 14
  • 11. Testing Framework 1. Helping to write tests 2. Executing tests 3. Reporting test results 2011 10 14
  • 12. Ruby Testing www.atmarkit.co.jp/fcoding/rails/articles/passionate/07/passionate07a.html survey.hamptoncatlin.com/survey/stats 2011 10 14
  • 13. e.g.) RSpec 1. describe ... it ... 2. $ rspec ... 3. Spec::Runner::Formatter 2011 10 14
  • 14. e.g.) Cucumber 1. Given ... When ... Then ... 2. $ cucumber ... 3. Cucumber::Formatter 2011 10 14
  • 16. Perl Testing 1. Test::More, Test::Class, Test::Base, Test::Spec, ... 2. $ prove ... (TAP::Harness) 3. TAP (TAP::Formatter) 2011 10 14
  • 18. TAP • testanything.org • “the Test Anything Protocol” • “is a simple text-based interface” 1..4 ok 1 - Input file opened not ok 2 - First line of the input valid ok 3 - Read the rest of the file not ok 4 - Summarized correctly # TODO Not written yet testanything.org/wiki/index.php/Main_Page 2011 10 14
  • 19. Perl <3 TAP • From any test description • e.g.) Test::Class, Test::Base, Test::Spec • Convert results to non-TAP format • e.g.) TAP::Formatter::JUnit • Easy to write test helpers • e.g.) Test::Exception, Test::Deep, ... 2011 10 14
  • 20. Rails Testing gihyo.jp/magazine/wdpress/archive/2011/vol61 2011 10 14
  • 21. Rails Testing • Perspective • UnitTest, End-to-End • Frameworks • Test::Unit (+ Shoulda), RSpec, Cucumber • Browser Integration • Capybara (rack-test, Selenium, Envjs, ...) • Test Double • rspec-mocks, rr, WebMock 2011 10 14
  • 22. Catalyst • Catalyst::Test • Test::WWW::Mechanize::Catalyst • Test::WWW::Selenium::Catalyst 2011 10 14
  • 23. Plack • Plack::Test • Test::WWW::Mechanize::PSGI 2011 10 14
  • 24. Browser Integration • WWW:: + WAF Customization • WWW::Mechanize • WWW::Selenium (Selenium-RC) • not yet for testing • WWW::HtmlUnit • Selenium::Remote::Driver (WebDriver) 2011 10 14
  • 25. Test Double xunitpatterns.com/Test%20Double.html • Mock • Test::MockObject • Test::Mock::Recorder • Stub • Test::Mock::Guard • Test::Mock::LWP::Dispatch 2011 10 14
  • 26. Test Double xunitpatterns.com/Test%20Double.html • Test::Double (under construction) • 0.01 released ! • metacpan.org/release/Test-Double • github.com/masaki/Test-Double • Mocks and Stubs • mock out w/ mocha style • stub out w/ rr style • Collaborators Welcome!!! 2011 10 14
  • 27. Test Double xunitpatterns.com/Test%20Double.html • Spy • DBD::Mock • Fake • Test::mysqld • Test::TCP 2011 10 14
  • 28. Descriptive Frameworks • Test::More • Test::Class (xUnit style) • Test::Declare / Test::More + “subtest” • Test::Spec (RSpec 1 compat.) • Test::Base (Parameterized Tests) • Test::Cukes / Test::BDD::Cucumber (Cucumber clone) 2011 10 14
  • 29. Weakness • Expectation and Verification • vs. rr, rspec-mocks, mocha, ... • Browser Integration API • vs. Capybara, Webrat, ... • Naming of Test Double modules • Test::Mock::Guard is “Stub” module 2011 10 14
  • 30. Comparision • Pros • TAP-based Test Description • Many Helpful Modules • Cons • Non-Uniform Browser Integration • Poor Expectation and Verification 2011 10 14
  • 31. Conclusions • About Testing • 4 Classifications • 3 Elements in Frameworks • Perl and Ruby/Rails Testing Environments • Perl has TAP and Many Great Modules • Learn and Steal MORE from Ruby/Rails • Write More Descriptively 2011 10 14
  • 32. Thank you! Questions? 2011 10 14