Slideshare.net (beta)

 
Post to TwitterPost to Twitter
Post: 
Myspace Hi5 Friendster Xanga LiveJournal Facebook Blogger Tagged Typepad Freewebs BlackPlanet gigya icons

All comments

Add a comment on Slide 1

If you have a SlideShare account, login to comment; else you can comment as a guest


Showing 1-50 of 1 (more)

Test Continuous

From gugod, 4 months ago

1291 views  |  0 comments  |  0 favorites  |  37 downloads  |  1 embed (Stats)
 

Categories

Add Category
 
 
 
 

Groups / Events

 
Embed
options

More Info

This slideshow is Public
Total Views: 1291
on Slideshare: 1245
from embeds: 46

Slideshow transcript

Slide 1: Test Continuous Kang-min Liu <gugod@gugod.org>

Slide 2: Continuous Testing http://groups.csail.mit.edu/pag/continuoustesting/

Slide 3: Eclipse Plugin For Java

Slide 4: JUnit

Slide 5: Foo.java FooTest.java

Slide 6: Changed Foo.java FooTest.java

Slide 7: Changed Foo.java FooTest.java auto run

Slide 8: HEY

Slide 9: We Perl

Slide 11: Test::Continuous http://search.cpan.org/dist/Test-Continuous

Slide 12: DEMO

Slide 13: perl -MTest::Continuous -e runtests' murmur: There should be a better way...

Slide 14: --------------------------------------------- /Users/gugod/dev/Acme-Greeting/t/01.english.t (Wstat: 65280 Tests: 5 Failed: 1) Failed test: 5 Non-zero exit status: 255 Parse errors: Bad plan. You planned 4 tests but ran 5. Files=1, Tests=5, 0 wallclock secs ( 0.00 usr 0.01 sys + 0.05 cusr 0.01 csys = 0.07 CPU) Result: FAIL [MSG]: /Users/gugod/Acme-Greeting/t/01.english.t was changed. /Users/gugod/dev/Acme-Greeting/t/01.english......ok --------------------------------------------- Result: PASS [MSG]: /Users/gugod/dev/Acme-Greeting/t/01.english.t was changed. /Users/gugod/dev/Acme-Greeting/t/01.english......ok ---------------------------------------------

Slide 15: What It Does... 1. Scan modified files 2. Find all tests requiring a re-run. 3. Run those tests 4. Report PASS / FAIL 5. GOTO 1

Slide 16: How it’s done 1. Scan modified files. File::Modified 2. Find all tests requiring a re-run. Module::ExtractUse 3. Run those tests. App::Prove 4. Report PASS / FAIL. Log::Dispatch 5. GOTO 1. while(1)

Slide 17: CPANFTW CPAN For The Win

Slide 18: Good For...

Slide 19: Test Driven Development

Slide 20: Test Driven Refactoring

Slide 21: <CODE>

Slide 22: What It Does (1st day) 1. Wait until any file is modified 2. Run all tests 3. Report PASS / FAIL 4. GOTO 1

Slide 23: Run ALL tests

Slide 24: Wasting Time

Slide 25: Write less test

Slide 26: bad software

Slide 27: hate software

Slide 29: Run as few tests as possible Module::ExtractUse

Slide 30: Only run .t if that’s modified

Slide 31: dependency of .t

Slide 32: Moose.pm moose.t Cow.pm cow.t OX.pm fight.t

Slide 33: Moose.pm moose.t Cow.pm cow.t OX.pm fight.t

Slide 34: Moose.pm moose.t Cow.pm cow.t OX.pm fight.t

Slide 35: Moose.pm moose.t Cow.pm cow.t OX.pm fight.t

Slide 36: Moose.pm moose.t Cow.pm cow.t OX.pm fight.t

Slide 37: Log::Dispatch based notification Should be easy extend

Slide 38: Log::Dispatch::Screen

Slide 39: --------------------------------------------- /Users/gugod/dev/Acme-Greeting/t/01.english.t (Wstat: 65280 Tests: 5 Failed: 1) Failed test: 5 Non-zero exit status: 255 Parse errors: Bad plan. You planned 4 tests but ran 5. Files=1, Tests=5, 0 wallclock secs ( 0.00 usr 0.01 sys + 0.05 cusr 0.01 csys = 0.07 CPU) Result: FAIL [MSG]: /Users/gugod/Acme-Greeting/t/01.english.t was changed. /Users/gugod/dev/Acme-Greeting/t/01.english......ok --------------------------------------------- Result: PASS [MSG]: /Users/gugod/dev/Acme-Greeting/t/01.english.t was changed. /Users/gugod/dev/Acme-Greeting/t/01.english......ok ---------------------------------------------

Slide 40: /me Mac

Slide 41: Good developing platform and macbook air is so shiny

Slide 42: Growl Universal Reminder http://growl.info

Slide 43: Growl Universal Reminder http://growl.info

Slide 44: Log::Disptach::MacGrowl auto-used if installed

Slide 45: Log::Disptach::MacGrowl auto-used if installed

Slide 46: Not good enough...

Slide 47: Only check .pm dependency .pm → .t .c → .t .conf → .t .yaml → .t

Slide 48: Shallow Dependency

Slide 49: Animal.pm Moose.pm Cow.pm cow.t moose.t

Slide 50: isa Animal.pm Moose.pm Cow.pm cow.t moose.t

Slide 51: isa Animal.pm Moose.pm isa Cow.pm cow.t moose.t

Slide 52: isa Animal.pm Moose.pm isa tested by Cow.pm cow.t moose.t

Slide 53: isa Animal.pm Moose.pm isa tested by tested by Cow.pm cow.t moose.t

Slide 54: isa Animal.pm Moose.pm isa tested by tested by Cow.pm cow.t moose.t

Slide 55: isa Animal.pm Moose.pm tested by isa tested by animal.t tested by Cow.pm cow.t moose.t

Slide 56: Should clearly notified what’s failed

Slide 57: No High-Def cute looking icon ICON DESIGNER WANTED

Slide 58: Future • Better Dependency Detection • Convention based (For Catalyst / Jifty / Others) • Configuration based • Support other Universal Reminder on other platform. (Twitter!)

Slide 59: END

Slide 60: Happy Testing