Perl Testing Consideration (seen from other languages)
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Perl Testing Consideration (seen from other languages)

on

  • 3,192 views

YAPC::Asia Tokyo 2011

YAPC::Asia Tokyo 2011

Statistics

Views

Total Views
3,192
Views on SlideShare
2,436
Embed Views
756

Actions

Likes
2
Downloads
14
Comments
0

7 Embeds 756

http://ikasama.posterous.com 606
http://yapcasia.org 112
http://paper.li 18
http://sporodochia7.okoza.com 15
http://translate.googleusercontent.com 2
http://ikasam6.rssing.com 2
http://webcache.googleusercontent.com 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Perl Testing Consideration (seen from other languages) Presentation Transcript

  • 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.html2011 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 Testing2011 10 14
  • 6. Classification of Testing Perspective Target How What2011 10 14
  • 7. Perspective Developer or User (Customer) • Developer Testing • Acceptance Testing2011 10 14
  • 8. Target One or More • Unit Testing • Integration Testing2011 10 14
  • 9. How Techniques for writing tests • Black Box Testing • White Box Testing2011 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 results2011 10 14
  • 12. Ruby Testing www.atmarkit.co.jp/fcoding/rails/articles/passionate/07/passionate07a.html survey.hamptoncatlin.com/survey/stats2011 10 14
  • 13. e.g.) RSpec 1. describe ... it ... 2. $ rspec ... 3. Spec::Runner::Formatter2011 10 14
  • 14. e.g.) Cucumber 1. Given ... When ... Then ... 2. $ cucumber ... 3. Cucumber::Formatter2011 10 14
  • 15. Many Frameworks2011 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
  • 17. Perl has TAP2011 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_Page2011 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/vol612011 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, WebMock2011 10 14
  • 22. Catalyst • Catalyst::Test • Test::WWW::Mechanize::Catalyst • Test::WWW::Selenium::Catalyst2011 10 14
  • 23. Plack • Plack::Test • Test::WWW::Mechanize::PSGI2011 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::Dispatch2011 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::TCP2011 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” module2011 10 14
  • 30. Comparision • Pros • TAP-based Test Description • Many Helpful Modules • Cons • Non-Uniform Browser Integration • Poor Expectation and Verification2011 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 Descriptively2011 10 14
  • 32. Thank you! Questions?2011 10 14