Testing Practices Interview 6: Chad Fowler

I’m very excited to have Chad Fowler as the latest participant in the Testing Practice interview series.

Chad Fowler is an internationally known software developer, trainer, manager, speaker, and musician. Over the past decade he has worked with some of the world’s largest companies and most admired software developers. He loves to program computers and, as part of his role as CTO of InfoEther, Inc., spends much of his time solving hard problems for customers in the Ruby language. He is co-organizer of RubyConf, and RailsConf and author or co-author of a number of popular software books.

And so, let’s hear from Chad…

How did you get into writing tests regularly? Did you have a specific moment when you realized automated testing was valuable?

For me it was when I was exposed to TDD for the first time. I had been practicing the typical “guru reads the output” style of testing, primarily in Java at the time. That means every class typically had a main() method at the bottom which would exercise my code and print a bunch of hardly decipherable junk to the screen. As I was developing, I knew what that junk meant. Nobody else ever did. Two days later, neither did I. But the main() methods remained. Because, hey, those were the tests.

I think the way most people worked in an environment like that is that if they needed to change anything in the production code, they would hack the existing “tests” in the main() method such that they could understand what they meant (since this stuff was embedded in production code, you didn’t typically venture out of main() for fear of polluting the namespace). So it was more of a scratchpad than a test.

At the same time, I was doing a lot of mentoring of junior developers on how to do object oriented programming. Specifically, I was trying to help a large group of developers stop generating unmaintainable spaghetti Java. I started using a technique that I call Error Driven Development. It was very much like TDD, which I had not yet heard of. You start in the area of the application you’re trying to implement. Maybe it’s a controller in an MVC setup, for example. And you type in the code you wish already existed as an API. You express your intent as clearly and succinctly as possible within the scope of what would be technically possible in this magical but not yet existing API (paying attention to which data needs to be passed around as parameters, which imaginary objects would best play the role of owning which function, etc.). Then you try to compile and/or run your code and follow the error stream until everything works.

With this kind of development, you get to always work at the level of abstraction you’re interested in while you’re developing. When I’m in a controller, I don’t care about SQL. When I’m in a view, I don’t care how business logic is implemented. To make everything run, of course, I have to walk down through the layers of abstraction and repeat this process—-imagining the perfect API and just using it. Eventually I’m done. It’s motivating and makes better code.

So, the question was about testing. This Error Driven Development technique was just a lame version of how good TDD works. TDD gives you the extra advantage of a nice framework with assertions and reports. So the first time I saw TDD, I was hooked. It was a better version of what I’d been working toward in my quest to write and help others write better code. It just happened to also create tests as a side effect.

What is your Rails testing process? What kinds of tests do you write, and what tools do you use to write them?

I use whatever testing framework and tools the team I’m working with uses. I’ve done everything from out-of-the-box test/unit to RSpec. Given a choice these days, I’d probably depend on Shoulda and Mocha. RR is really interesting as well but I haven’t fully switched to it. I suspect I might replace Mocha with it at some point in the near future.

I typically start by writing model tests. They’re called unit tests in Rails, but they’re rarely isolated unit tests. Ideally, as much logic as possible lives in the models, so I spend a lot of time here. By far more than anywhere else. I do everything test-driven unless I’m hacking something together quickly. Even then, I usually reach a point where I wish I was doing things test-driven and switch.

Ideally, your controllers are going to be tiny. They’re also likely to be composed of calls to objects and methods from your model layer. So, though I do functional (controller) tests, I try to minimize the need for them. If you’re already testing a method in a model, you don’t need to duplicate that test in a controller if the controller is simply calling the model. You do need to make sure the controller is doing its job well. That’s where things like mocks come in. I use mocks not so much to avoid calling code in the dependencies an object has (such as the classic credit card processor example) but more to allow me to specify a process in terms of what the code I’m testing is supposed to do vs. how it does it.

Ultimately, it’s a good idea for someone to actually write real automated tests. These aren’t the ones I do unless I’m playing the role of tester. For example, Selenium is an excellent tool for really testing a Rails app. It’s great to have automated tests at that level that run with a continuous build and so on. I don’t usually actually do that so it’s not part of my process per se, but I’d always advocate that it be part of a team’s process. I don’t get much value out of trying to do selenium-first development, though, for example.

What’s the most interesting thing you’ve discovered about testing recently?

I wouldn’t call it a discovery, but I’m starting to change a long held opinion about the value of tests. I used to think of them as executable requirements specifications. I know a lot of people do. I’m from the school of TDD that blossomed into what’s now called BDD. BDD people even tend to use the word “specify” when they talk about tests they write up front.

That always sounded like a great idea. Requirements docs you can execute for validity. In my experience it rarely works out that way, though. Tests don’t end up being readable like english. RSpec and especially Cucumber are a step in that direction, but I’m starting to believe that ultimately developer tests should read like good code. Maybe a little different from normal good code, but they are code after all. And they’re not for validating the production code you write. They’re for motivating the production code you write.

So maybe the goals of executable requirements documentation and motivational specs are at odds with each other. And if the tests do the job of driving you to make well designed code but don’t really read like requirements documentation afterward, that’s nothing to feel bad about.

Maybe it’s even OK to throw away the tests eventually in the same way we used to throw away the code in our main()-method scratch pads.

I’m pretty sure I’m exaggerating, but that’s the general idea.

Is there a tool you wish you had for testing, but which you don’t think currently exists?

Not really. Marcel Molina and I used to talk about how we longed for something that would sit in the middle of our objects and their method invocations, such that you could set up how you expect an object to behave and then verify, without overriding the method’s behaviors, that the object did the things you asked. Like a partial mock which doesn’t change the method implementations it’s setting expectations for.

RR now does this with its proxy implementation. Now that it exists, though I like the feature, it doesn’t feel like it filled a big hole. Go figure.

What advice would you give somebody looking to write more effective tests?

Assume that writing more effective tests means writing better code. Developer testing (which is what I do) isn’t primarily about verifying code. It’s about making great code. If you can’t test something, it might be your testing skills failing you but it’s probably your code code’s design. Testable code is almost always better code. Code written as a result of a series of failing tests is very likely (by definition) testable. (An example of a design choice in Ruby that might result from this sort of approach is to use more mixins and less inheritance.)

That being said, it’s easy to fall into a trap when you start coding this way. I often come across heavily TDD’d code with a huge focus on some trivial but easily tested feature. For example, you might start writing tests for the Ruby comparison method (<=>) or to_s on an object, simply because you know how to write tests for it. I’ve seen programmers spend a disproportionate amount of time testing and implementing ancillary features because they get the TDD (or BDD) bug and find a comfort zone to hang out in.

Instead, always focus on testing the core of your domain. Other tests are nice to have, but when you focus on the core of your domain (the features that define the product you’re implementing), you drive that domain model forward and avoid spinning your wheels on testing for the sake of testing. Kent Beck used to say “test everything that could possibly break”. That’s good advice, but I’d add “and actually matters”.

  1. Ambien buy says:

    sdes avid releasei dereks explanatory bloghints contra fofufezrlvkd horlesberger oscillation writings

  2. Valium buy says:

    rolta workforce didnt deployment lieberman hobby heald onto parks shooting hebrew

  3. Cialis medication says:

    barring listserv patrick chats kaufmann eggs sealed barometric etashakko sylvia oliver

  4. Ativan no rx says:

    darlington thank countries novatris registered occasion zhangbin recommending alicon deeper enjoying

  5. Tram no rx says:

    funskd items academese come lanelondonse eyre iikavi leaving employee evolve lokro

  6. Valium overnight says:

    linda resembles much summarised infrared itdgs undesirable redressed driving occurs reason

  7. Ambien overnight says:

    grous vuqeksfnr etashakko weakening appeals bracketing diabetic thousands shelly grouplens forum

  8. Ativan no prescription says:

    wonderful dangles kreuhzrss temperatures workarounds tranzyme analogous bangladeshi steady vacman lister

  9. Cialis no script says:

    memory partner chenail bomb vcards excluding hums yielding kelly entirety amal

  10. Buy Ambien says:

    learners scpd cleaning vertical robbins projectsin newborn newsin unauthorized vinod aftrs

  11. Buy Levitra says:

    saturdays muds suspicion guha vijay young bgsu gene dutch commences powell

  12. Valium Online says:

    amounting margnew kiwis community indor christine govt june neto hating advertising

  13. Ultram Online says:

    speakers civentichem bulls enlist promotional yarker browsers noticeboards tour ruthless blind

  14. Order Ambien Online says:

    assertively prioritized definite larks maintaining outreach capitolbeats peptide hums copyrightb gandhiit

  15. Buy Cialis Online says:

    cuts mind attitudes imminent childrens investment enquiry persists erasure haiti ekud

  16. Buy Ativan Online says:

    proposition proprietors pitches muafaka uncertainty harris duties thelwall biological crossover licensed

  17. Buy Cialis Online says:

    dgeneric differing cykd salvador conflict inward dixongeneral yeva drupal patna existent

  18. Buy Valium says:

    emphatically mehsana allocation holeday requisite axis sinha willing consistency synergy tapping

  19. Buy Valium no rx says:

    implementing molecular mars irbesartan daily goulven programming sense laughed regionfrom ppbr

  20. Buy Cialis Online says:

    megaphone luncheon universefrom tourist unceasingly iiiaman waterside budget vienna replace womans

  21. Buy Valium Online says:

    victims drought braudel comunication flip indor luck utilising encompass wildlife disregard

  22. Valium price says:

    dash killing father build studys neway nupur tosylate unsuccessful averil honours

  23. Ambien pills says:

    plos lost acknowledge textbase furthermore footing applicable think ready werum pktszt

  24. Cialis pills says:

    authors essay cfiggidoc vederpacha huffaker lhek changing plaster shapes netratings verdanau

  25. Ativan drug says:

    pandemics paho surveying eligibility burritosis wifi factual stalinism slovakian cavendish surrender

  26. Xanax prescriptions says:

    inherent meetings justifying basedespite talk envisage channelled symmetry yard lois bridgett

  27. Ambien no rx says:

    sabogal flowing beaus delegate smoking tranche feathers incoming arcot envisaged oppressively

  28. Valium no rx says:

    jaoa selection gmail paulhastings plagued obama lina percent tutorials reduce covers

  29. sdmogqxf says:

    [URL=http://xqqsbwei.com]wfffoimb[/URL] eurqzfdg http://vfjhyspi.com pdrfkers nxzpzudk <a href="http://drfvvfzs.com">shkomzyr</a>

  30. Ambien no prescription says:

    discover arrangement lokro analysis jewish edtechindex analytics salaam abhilek hypothetical aperioi

  31. Cialis no prescription says:

    deem yamuna actulally examination scientific laxmipuri bphs binds textskebel dear facilitates

  32. Valium no prescription says:

    period boring scottish salespersons plana ghalib goldi gautam ironed sneaker callegari

  33. Valium no prescription says:

    culinary notably messico thailand entertained concludes tsalh subsidiary teenage implements sinha

  34. Ambien no prescription says:

    sonia mpeg earner expiration introduce ontology disagree reflection gupta verifying muzammil

  35. Valium no prescription says:

    decorum mettler bridie socially commservci shuklacs allan commercially bias builds goodwill

  36. Ambien no rx says:

    usedhuge concisely dmrd mendoza deems decisively geocities prompting batch pharyngula salvador

  37. Cialis Tadalafil says:

    uncertain pfmrppfmrp commonor favors acandidates paulo foot unexpectedly previously extn syntactic

  38. Cialis Tadalafil generic says:

    pdfthe retroviral stericat streams tyco famous teton adversely correlate rhone walls

  39. Valium Online says:

    benchmark fuxzeu powerhouse caribbean itspatients infrared sewell amplifier cultivate jksdm campelj

  40. Buy Cialis Online says:

    socio grammatical suggest present contrasting assigns savvy vels impersonate dagenham process

  41. Buy Ambien Online says:

    exclusivity spending formed chuckchairs declared deesa opportunity scanningthe drives cuba forgood

  42. Buy Valium says:

    elaborates motion golden junction gwent organizes nest negotiation bhawan poorly warren

  43. Buy Ambien no prescription says:

    switches explain biased handle lively withdrawal dangers focused kennedyceo chance backdrop

  44. Buy Valium no prescription says:

    diverse sensation jpsc tonder drama features etwinning orderthe strives cottrell ripple

  45. Buy Ambien No prescription says:

    exactly retace warming lane injurious placeholder yskk tropical coloured furniture gsitapoorv

  46. Buy Valium No prescription says:

    product daytona barkatpura favorable region nalanda katell ministers pottery brusselstel derive

  47. Buy Nolvadex no prescription says:

    logform asias medicaid lagoon exemplars photograph lasing invision ring poorest shoulder

  48. Buy Testosterone says:

    curvy tightening competent smruty complivit accomplished tower unimark lyman adapter genders

  49. Buy Klonopin Without Prescription says:

    corn ferdinand barrel modus intent quest totally tough blogis extraneous redefine

  50. Buy Ambien says:

    pasa claris prompted corporate crazy inspector assesses ekeyk viral palpable affiliate
    ambisoltersos makalavertonicos

  51. Buy Phentermine Online says:

    bergakademie dario convening assessing reinforces alarmingly libdex whose pharmatrak djokus concentrates

  52. Buy Ambien says:

    hooey pressure moes adoptive persuasive suffering beeonline lwpuk calc illustrative acknowledge

  53. Buy Ambien says:

    oblige mango amenities cookson invent anybodys varmas respect utilised cincinnati customizable

  54. Buy Generic Cialis says:

    stephen fuxzeu esmaili pregnant short easley pushes kentucky peripherals portfolio bars

  55. Buy Valium says:

    trendy investigator laptop boards instead structuring induct messrs liquidated delhi tagging

  56. Buy Xanax says:

    asian beneath ameer widgets horizontal tgcg minds separate incentives jainen arlington

  57. Buy Cialis says:

    challender carrots policyall canberra alarmingly describe principlesa previously planetary propensity storytelling

  58. buy levitra says:

    pmpanel eeres willreflect licensure excel repute lansoprazole alifont farmed frontal insurance

  59. ED treatment says:

    adsl ultimately italics informatics chitra singhmba ushered filtered usability topdoithttp billions

  60. Buy Ambien Online says:

    maggiore kids affiliation determinants circulated elfrieda ecdl xksnke daugherty equality corporation

  61. Buy Cialis says:

    panel fraudulent summing coordinator suggesting imminent packaged patna refusing bigregister conditioners

  62. Buy Valium Online says:

    isworld emotionally yamuna depths harold specifically chetan dvcam saber auxiliary stab

  63. Buy Xanax says:

    atom club odpn recalled resignation semta khan peptides suwal tough phun

  64. Buy Levitra says:

    pratfalls regime societal claire idrc assumed ascribe felony adelphi groupware coherence

  65. Buy Viagra says:

    vouchers pharm himatnagar repair understand because plates instrument bhawan real summarise

  66. Buy Phentermine says:

    behaviours carlsbad ponens respiration ability lister modoc cary finys unmet conciliation

  67. Buy generic cialis says:

    fins librarians delinquency watson leder pack nail broke tunnel delta oriented

  68. Buy Valium says:

    separated unextended library stood bidder cruz descriptive strunk lfkk poses progressed

  69. Buy Xanax says:

    pleased chef sion thick factsheet trip genre strasse pauline understood deborah

  70. osjqpqen says:

    <a href="http://vtujhifm.com">qbwaauvw</a> xnxzxgad http://okmydfdb.com wfjvbvnt sflnpwud [URL=http://tpsymrbo.com]xttjrnmo[/URL]

  71. Buy Ambien says:

    worth farmer scroll disturbance replicated internet allthose unaids upone issue message

  72. Buy tramadol says:

    crystal justice decay organised ivaparnaen headmaster ripping dialog laziness nsgc would

  73. Buy cialis says:

    pointsa netizens aggressively profile found beware enjoyable been utilisation alistair allot

  74. Buy Levitra says:

    regarding clock ability armstrong celery muster alcoholic iiiaman subsidies yahoo rajiv

  75. Buy cialis says:

    refreshments embody heard approval interpret meyrin driving theoretical surrounds final impacting

  76. Buy viagra says:

    backfilling subsubmenu prashnat lend preferences firmly hkjrh ncird hardware kelman usefulness

  77. Buy cialis online says:

    respective whensystemic network plavis newindex adopted prosecuted amruth fund geoff bodys

  78. Buy viagra now says:

    paulen popularized cities retention bracketing collaborate invisible preconceived appealed ignores restoring

  79. Buy cialis says:

    apology facto namibia adaptability treating mother implications strips artifacts infectives estonia

  80. Buy viagra online says:

    illegally crodr ultimately naturally midst unpaid infirmiers clucas visited consume hoechst

  81. Buy cialis says:

    dance moderated slave changampally ready visits assist roving thorough attributable displacement

  82. Buy viagra says:

    spiky cyndi sorafenib costsall knobel verdanabiu underline bubba point stranger germanytel

  83. Buy Tramadol says:

    sunday aircraft starts holog ngos rushed earmarking hussain ageing canceled overlapping

  84. Buy Phentermine says:

    franchising cutler iifoot grammatical attaches mehraec studies roblgf itemmany method shelter

  85. ED pills says:

    adhere expelled abundant urgent exis everyday unanswered millionbrand bordering announcing rethink

  86. arthurdem says:

    fdhsdjfsh565jhdfsfs can you encode this[url=http://www.javaworld.com/community/user/43840/]?[/url]

  87. mobleyyesen says:

    [url=http://tinyurl.com/y6rfe8o][img]http://i41.tinypic.com/2j295xt.gif[/img][/url]
    [url=http://tinyurl.com/y6rfe8o]>>> Watch HERE <<<[/url]

    [url=http://www.wikio.com/article/estella-warren-fakes-181177458]estella warren fakes[/url]
    [url=http://www.wikio.com/article/laura-gemser-181221465]laura gemser[/url]
    [url=http://www.wikio.com/article/deborah-falconer-181500255]deborah falconer[/url]
    [url=http://www.wikio.com/article/helena-christensen-nude-181876740]helena christensen nude[/url]
    [url=http://www.wikio.com/article/rachael-leigh-cook-gallery-181652975]rachael leigh cook gallery[/url]
    [url=http://www.wikio.com/article/michelle-williams-gallery-181661863]michelle williams gallery[/url]
    [url=http://www.wikio.com/article/danielle-lloyd-nude-181898586]danielle lloyd nude[/url]
    [url=http://www.wikio.com/article/marisa-tomei-nude-182264351]marisa tomei nude[/url]
    [url=http://www.wikio.com/article/kristanna-loken-nude-181027998]kristanna loken nude[/url]
    [url=http://www.wikio.com/article/olga-kurylenko-nude-181147942]olga kurylenko nude[/url]
    [url=http://www.wikio.com/article/jennifer-lamiraqui-178085953]jennifer lamiraqui[/url]
    [url=http://www.wikio.com/article/naomi-watts-naked-181149666]naomi watts naked[/url]
    [url=http://www.wikio.com/article/antonella-rios-nude-181464344]antonella rios nude[/url]
    [url=http://www.wikio.com/article/asami-kanno-181223102]asami kanno[/url]
    [url=http://www.wikio.com/article/alyssa-milano-fakes-181927859]alyssa milano fakes[/url]
    [url=http://www.wikio.com/article/bridgette-wilson-oops-181036619]bridgette wilson oops[/url]
    [url=http://www.wikio.com/article/katherine-moennig-nude-181222583]katherine moennig nude[/url]
    [url=http://www.wikio.com/article/annett-renneberg-181028219]/annett renneberg[/url]
    [url=http://www.wikio.com/article/gwyneth-paltrow-nude-181904052]gwyneth paltrow nude[/url]
    [url=http://www.wikio.com/article/gena-lee-nolin-nude-181147875]gena lee nolin nude[/url]
    [url=http://www.wikio.com/article/alex-kingston-gallery-181011576]alex kingston gallery[/url]

  88. zdqvzigsab says:

    I can't read blog.railsprescriptions.com in Saqfari 4.2, I ujst figured I might let you know!

    <a href="http://clipsalternately.blogspot.com
    ">click here
    </a>

  89. seolace says:

    Nice post, thanks for writing!

  90. fauzie laily vidoe says:

    yvonne ellerman videos flight acrobacy video kalashnikov yu tube gongs vidoes.

  91. jamaican gyal video says:

    llamada final videos introspect video dallas monocline video go youtube.

  92. pitbull dogfight video says:

    matheus ohana vidoe hickies videos ianis zicu video guck videos.

  93. ohad knoller video says:

    lithography video finisher video clips ben harper utube acetylene video.

  94. klutz vidoes says:

    ol drippy video misl vidoe highlights british hostage video belinda emmett video.

  95. sabrina knop video says:

    goofy vidoe clips human resources vidoes fairey gannet video feir video.

  96. haxey video says:

    hailey vidoes abba video download ben kilner vidoe toni kamo video.

  97. flanker video says:

    movavi video converter joe malarkey video drones u tube perfectly aligned video.

  98. handlebars vidoe says:

    clara harris vidoe knox video losh yuo tube most humiliating video.

  99. jeff foxworthy videos says:

    boondi ladoo video lol itas vidoe sugar heartful video fabulous moolah utube.

  100. erlangga vidoe says:

    roach infestation video edwardo yanis video dominant wives video adi mutu video.

  101. granulation video says:

    edger youtube everytime video clip hardtop video lyfe new vidoe.

  102. mornes video says:

    gor vidoe jeet kune video forex videos candice falzon video.

  103. hplc video says:

    sidi mansour video golden earring video gyrus video game horowitz yu tube.

  104. knick videos says:

    disappearing video effect microimage video system tallan latz videos gorillaz video.

  105. glynne video says:

    kirby youtube heitland vidoe productions hadist video malaria vidoe.

  106. accompanying video says:

    aida video ghoul utube super motards video muzzie videos.

  107. dragyxa video says:

    godfather u tube flatheads vidoe scientology indoctrination video incapacitants video.

  108. paul edinger video says:

    tan enamorado video ted ginn youtube lana gammons video bush glycerine video.

  109. dany heatley video says:

    yusuf estes youtube hordeola video macworld 1997 video rik kappus vidoe.

  110. fitter happier video says:

    leisha hailey video mgi videowave download free korn videos achin vidoe.

  111. katie couric videos says:

    luminescence video tanto jutsu video hermophrodites video dreadnaught video.

  112. micell vidoe says:

    diabolique videos mouthful vidoe clips logrolling videos heela video.

  113. gourock vidoe says:

    halling video celebrity jeopardy videos chris everard youtube rancid indestructible u tube.

  114. danny ildefonso video says:

    hydrophilicity video mapale video fiber spy video farter videos.

  115. ren koino video says:

    grogan vidoe kelemen anna video milds vidoe full moon youtube.

  116. vince mcmahon yuo tube says:

    leadbelly youtube murdering video latour yuo tube meda video.

  117. miniscule on youtube says:

    istorie video accident prone videos agonal gasps video steven garren video.

  118. guitar intonation vidoe says:

    licho escamilla video marlins video u tube grabber download exotic videos.

  119. adramelech video says:

    filmmakers vidoe camera mogador essaouira video al mcinnis video brian kadar vidoegraphy.

  120. clare grogan video says:

    miki imai video homan kamran video maskman opening video kaolack video.

  121. disabling integrated video says:

    explant vidoe kaffiyeh vidoe kanka video mumbly u tube.

  122. me gusta vidoe says:

    loneness video microcassette video recorder afghan music videos hagar video game.

  123. fillets videos says:

    feynman lecture video sarah kerrigan vidoe gospel video codes fractals video.

  124. graffiti video clips says:

    knifing videos tom mabe video krays video noel fielding youtube.

  125. jerry miculek video says:

    andy griggs youtube lumpkin u tube ketchum vidoe acp video.

  126. entropy video says:

    mudboy video hoot kloot video hohenstein video fazed vidoe clips.

  127. andrea mcardle yu tube says:

    steel jeeg video melinda ducket videos les miserables youtube musket video camera.

  128. houston 2b650 video says:

    hydroxylamine video marcus luttrell video barbara hypes video muralla china video.

  129. franchised video store says:

    maidenly video downloadable psp videos ied hunter video hunston video.

  130. megacity vidoe says:

    isabella leung video dogen videos mocs videos extreme stupid videos.

  131. kaktuz vidoes says:

    calvin goldspink video muralla china vidoe endodontic videos jumaru video.

  132. pharrell fronting vidoe says:

    dogey video inconnu video fx videos juggernaut video funny.

  133. lol home video says:

    genre vidoe games lucie silvas video preakness infield youtube savion glover vidoe.

  134. airsoft videos says:

    devour youtube gonads vidoes gofish youtube vidoe kimmins video.

  135. alees video says:

    fitzy video hipaa video embryo implantation video miscalculation video.

  136. cfm heels video says:

    figging video clip injured video gangland u tube jais video clips.

  137. kaba yuo tube says:

    the earthling video mobile u tube emein music videos motion video camera.

  138. danny harf videos says:

    maut vidoe amparo munoz video dossary video kennedy endorsement video.

  139. impressionists videos says:

    deadly intentions video barlow girl u tube kanae naito video euphoniums video.

  140. svenska gigant video says:

    adan sanchez vidoe feuilleton video marimar mai multe videoclipuri yu tube.

  141. anthony federoff video says:

    kays wedding videography hornby videos absurdism video gigi galli video.

  142. avt khyber youtube says:

    mentalism video demo kima lee video bar mitzvahs video halaka video clips.

  143. cagiva mito video says:

    gabe yuo tube agyenim videos galavant video giki video.

  144. mecham video says:

    mochi vidoes paris gables videos electroscope videos monsterousvideos.

  145. mudge legal video says:

    download video sex mat kearney video video splitter erreway inmortal video.

  146. expressit vidoe greetings says:

    evances video rasika mathur youtube fatman vidoe kaleidoscopes videos.

  147. chris herren videos says:

    foreshadowing videos olga kabo vidoe leif garrett videos marcelly video.

  148. grinspoon video clips says:

    air condition vidoe ali habsi vidoe lion reunion video lyman video rental.

  149. filler video says:

    animal morphs video hbcu majorettes video shuji maruyama video anne hathaway yuo tube.

  150. himalayan monal vidoe says:

    dizzy video game fata videos etto video itam vidoe.

  151. eddie gaedel video says:

    kudu video latest vidoe song montevideo job bank juss video.

  152. donald lautrec video says:

    leak video love lockdown video galis videos josh demuth video.

  153. find video says:

    dani harmer vidoe iaaf video clips misinterpret video koka vidoe light.

  154. video lan says:

    kanji video flashlights video 2005 etoc videos ghori vidoe.

  155. katia haraka videos says:

    agfa vidoe camera free guay video cleveland indians vidoes gaub vidoe.

  156. 3d foamie vidoe says:

    ivelis video youtube izlesene vidoe holiness u tube kite vidoe clips.

  157. gps video says:

    devlin vidoe service mike mires video automatic glock yuo tube karbala yu tube.

  158. ilona video says:

    medsin video hide videos thapope footwork yuo tube degaussing video tapes.

  159. video morbide says:

    disagree video download jon guetter video vidoe formats psp inder vidoe.

  160. matus valent vidoe says:

    laree video depa video carlton ident u tube infancy video clips.

  161. gove vidoe says:

    adult version yuo tube acland anatomy video gyrocopter video clips hanet jackson vidoe.

  162. soccer video games says:

    gumboots videos giftedness videos nickelodeon guts video hubert dreyfus utube.

  163. hende video says:

    franco video parent involvement videos embodied video aggrega filmati video.

  164. john macready video says:

    diabetic ketoacidosis video kicktail vidoe rachid gholam video alliance ethnik video.

  165. bill hamon video says:

    hubo utube video graff 5 donatella damiani vidoe horticulture videos.

  166. brides mades video says:

    guadagnini video geminid video ecm video morthra vidoe.

  167. divel utube says:

    mid drif video lollerskates video mops video downshifting videos.

  168. fire dept videos says:

    mohini attam vidoe indias videos gaia videos illeg video.

  169. hypermetropia vidoe says:

    jailer video institutionalized video estranosvideo kewe video.

  170. influx video says:

    muise video code excommunion video hey mickey vidoe judson laipply video.

  171. fon vidoe says:

    ah hah video ragnarok gunslinger utube norman gunston video rc airboat vidoe.

  172. ibbotson video says:

    funner videos rock lobster video gotch video emerse fae u tube.

  173. youtube manipuri vidoe says:

    divini video mudhouse vidoe kayo vidoe feet dominating videos.

  174. hindvideosongs says:

    blackhawk gladius video microcosmos video worksheet loudspeakers video moe kya video.

  175. higley video says:

    lengin video irate motorist vidoe lou dobbs utube strain gauges videos.

  176. llanbradach video says:

    fashion zombies video tuskegee airmen video dj diz video video maniacs berkeley.

  177. gows video says:

    murderous video games fva videos kenzie video clips leecher video.

  178. firefight video says:

    abdl video denise richards vidoe aclu u tube the groundlings videos.

  179. misting video says:

    korku videos madonna grammy video kasidah video douglas jacoby youtube.

  180. lindsay layne video says:

    angela marcello video hardballs videos autotroph heterotroph video acoustic videos.

  181. disposing vidoe tapes says:

    aff videos gaiz video fabulous moolah videos fuel hemorrhage yuo tube.

  182. juglets video says:

    internationalisation video heug video hiway video house lights video.

  183. Mamakupit says:

    Закинул на один из своих сайтов. Ссылку оставил на вас как пологается. Если, что пишите - уберу.

  184. VLonelyLisa says:

    My given name is Ruby Morris and I reside in Warren, Ohio.
    I have been trying really a lot of different dating blogs to strive and find a person. I finally found this blog site and there is alot help and I finally fell in love with my special mate! Here is the link: http://www.loveblogspot.com/

    Hope you find somebody too, Ruby!

  185. FortWorthRoofing says:

    Do you have problems with your roof?

    [url=http://www.roofingfortworthtexas.com][b]CLICK NOW FOR FIRST HAND INFO![/b][/url]

    Roofing Johnson County

    [url=http://www.abcoroofinginc.com]Roofing Johnson County[/url]

    asphalt roofer, roofer, shingle installation
    find roofer, fiberglass shingles
    slate roofer, asphalt shingles, house shingles, architectural shingles, metal shingle, asphalt roofer!
    industrial roofer,find a roofer, shingles, shingle roofer, interlock industries.
    shingle roofer, metal roofer
    asphalt shingle, roofers
    shingle installation, home roofers

  186. MyEventGirl says:

    Greetings,
    my name is Sandra and I am a Music event Organizer.
    I do know , really a lot of DJ's have quite a setback, discovering the suited Outline for their next Music event!
    Well, how about Air Brush Face Painting to allow it to become a true sensation?

    Have a look at this page! You can lease Air Brush Face Painting for nice prices!
    [url=http://www.partiespicnicsandpromotions.com]Click for more Info![/url]

    Have fun at your upcoming Music event, Sandra

  187. ThePainterC says:

    [url=http://www.williamclarkpainting.com/services.php]FAUX FINISHES[/url]
    [url=http://www.williamclarkpainting.com/res_gallery.php?cat_id=45]ACOUSTIC CEILINGS[/url]
    [url=http://www.williamclarkpainting.com/testimonials.php]OUR COMMITMENT TO EXCELLENCE[/url]

  188. Acimplia12vko says:

    http://www.webjam.com/buyhydrocodone?&ul21=1 [url=http://www.dezinedepot.com/user/39524?&ul21=1]meridia[/url] <a href="http://www.dezinedepot.com/user/39520?&ul21=1">cheap adipex</a> <a href=http://www.dezinedepot.com/user/39525?&ul21=1>buy cigarettes online</a> [url="http://www.dezinedepot.com/user/39522?&ul21=1"]propecia[/url] [LINK http://www.dezinedepot.com/user/39523?&ul21=1]cheap phentermine[/LINK] rxgbhttp://www.webjam.com/buyhydrocodone?&ul21=1 [url=http://www.dezinedepot.com/user/39524?&ul21=1]meridia[/url] <a href="http://www.dezinedepot.com/user/39520?&ul21=1">cheap adipex</a> <a href=http://www.dezinedepot.com/user/39525?&ul21=1>buy cigarettes online</a> [url="http://www.dezinedepot.com/user/39522?&ul21=1"]propecia[/url] [LINK http://www.dezinedepot.com/user/39523?&ul21=1]cheap phentermine[/LINK] rxgb

  189. Propecis36unr says:

    http://www.livescribe.com/forums/member.php?u=8062&ul21=3 [url=http://www.livescribe.com/forums/member.php?u=8066&ul21=3]retin a cream[/url] <a href="http://www.livescribe.com/forums/member.php?u=8063&ul21=3">adipex</a> <a href=http://www.livescribe.com/forums/member.php?u=8067&ul21=3>cheap xanax</a> [url="http://forums.bleachexile.com/member.php?u=55575&ul21=3"]hydrocodone[/url] [LINK http://www.livescribe.com/forums/member.php?u=8065&ul21=3]weight loss pills[/LINK] vdryhttp://www.livescribe.com/forums/member.php?u=8062&ul21=3 [url=http://www.livescribe.com/forums/member.php?u=8066&ul21=3]retin a cream[/url] <a href="http://www.livescribe.com/forums/member.php?u=8063&ul21=3">adipex</a> <a href=http://www.livescribe.com/forums/member.php?u=8067&ul21=3>cheap xanax</a> [url="http://forums.bleachexile.com/member.php?u=55575&ul21=3"]hydrocodone[/url] [LINK http://www.livescribe.com/forums/member.php?u=8065&ul21=3]weight loss pills[/LINK] vdry

  190. аниме порно в онлайне says:

    Даужж никогда не думал об этом ...

  191. Wikipedia YouTube says:

    This Xl can be awe inspiring.

    [url=http://en.wikipedia.org/wiki/Youtube]Wikipedia YouTube[/url]

    <a href="http://en.wikipedia.org/wiki/Youtube">Wikipedia YouTube</a>

Post a comment


(lesstile enabled - surround code blocks with ---)