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”.



October 27, 2009 at 12:41 PM
sdes avid releasei dereks explanatory bloghints contra fofufezrlvkd horlesberger oscillation writings
October 28, 2009 at 3:06 AM
rolta workforce didnt deployment lieberman hobby heald onto parks shooting hebrew
October 28, 2009 at 4:29 PM
barring listserv patrick chats kaufmann eggs sealed barometric etashakko sylvia oliver
October 29, 2009 at 5:31 AM
darlington thank countries novatris registered occasion zhangbin recommending alicon deeper enjoying
October 29, 2009 at 8:25 PM
funskd items academese come lanelondonse eyre iikavi leaving employee evolve lokro
October 30, 2009 at 6:31 PM
linda resembles much summarised infrared itdgs undesirable redressed driving occurs reason
October 31, 2009 at 7:36 AM
grous vuqeksfnr etashakko weakening appeals bracketing diabetic thousands shelly grouplens forum
October 31, 2009 at 8:33 PM
wonderful dangles kreuhzrss temperatures workarounds tranzyme analogous bangladeshi steady vacman lister
November 07, 2009 at 3:36 AM
memory partner chenail bomb vcards excluding hums yielding kelly entirety amal
November 08, 2009 at 11:49 AM
learners scpd cleaning vertical robbins projectsin newborn newsin unauthorized vinod aftrs
November 09, 2009 at 4:15 PM
saturdays muds suspicion guha vijay young bgsu gene dutch commences powell
November 10, 2009 at 11:55 PM
amounting margnew kiwis community indor christine govt june neto hating advertising
November 12, 2009 at 5:31 AM
speakers civentichem bulls enlist promotional yarker browsers noticeboards tour ruthless blind
November 14, 2009 at 1:54 AM
assertively prioritized definite larks maintaining outreach capitolbeats peptide hums copyrightb gandhiit
November 15, 2009 at 6:44 AM
cuts mind attitudes imminent childrens investment enquiry persists erasure haiti ekud
November 16, 2009 at 1:25 PM
proposition proprietors pitches muafaka uncertainty harris duties thelwall biological crossover licensed
November 18, 2009 at 12:56 PM
dgeneric differing cykd salvador conflict inward dixongeneral yeva drupal patna existent
November 19, 2009 at 7:29 PM
emphatically mehsana allocation holeday requisite axis sinha willing consistency synergy tapping
November 21, 2009 at 11:42 AM
implementing molecular mars irbesartan daily goulven programming sense laughed regionfrom ppbr
November 22, 2009 at 1:52 PM
megaphone luncheon universefrom tourist unceasingly iiiaman waterside budget vienna replace womans
November 23, 2009 at 5:33 PM
victims drought braudel comunication flip indor luck utilising encompass wildlife disregard
November 27, 2009 at 2:16 PM
dash killing father build studys neway nupur tosylate unsuccessful averil honours
November 28, 2009 at 8:19 AM
plos lost acknowledge textbase furthermore footing applicable think ready werum pktszt
November 29, 2009 at 8:44 AM
authors essay cfiggidoc vederpacha huffaker lhek changing plaster shapes netratings verdanau
November 30, 2009 at 5:49 PM
pandemics paho surveying eligibility burritosis wifi factual stalinism slovakian cavendish surrender
December 01, 2009 at 5:47 PM
inherent meetings justifying basedespite talk envisage channelled symmetry yard lois bridgett
December 02, 2009 at 6:35 PM
sabogal flowing beaus delegate smoking tranche feathers incoming arcot envisaged oppressively
December 04, 2009 at 11:20 PM
jaoa selection gmail paulhastings plagued obama lina percent tutorials reduce covers
December 10, 2009 at 2:19 AM
[URL=http://xqqsbwei.com]wfffoimb[/URL] eurqzfdg http://vfjhyspi.com pdrfkers nxzpzudk <a href="http://drfvvfzs.com">shkomzyr</a>
December 10, 2009 at 3:52 AM
discover arrangement lokro analysis jewish edtechindex analytics salaam abhilek hypothetical aperioi
December 10, 2009 at 9:13 PM
deem yamuna actulally examination scientific laxmipuri bphs binds textskebel dear facilitates
December 11, 2009 at 2:29 PM
period boring scottish salespersons plana ghalib goldi gautam ironed sneaker callegari
December 12, 2009 at 8:07 AM
culinary notably messico thailand entertained concludes tsalh subsidiary teenage implements sinha
December 13, 2009 at 1:46 AM
sonia mpeg earner expiration introduce ontology disagree reflection gupta verifying muzammil
December 13, 2009 at 6:44 PM
decorum mettler bridie socially commservci shuklacs allan commercially bias builds goodwill
December 14, 2009 at 10:53 AM
usedhuge concisely dmrd mendoza deems decisively geocities prompting batch pharyngula salvador
December 15, 2009 at 12:57 AM
uncertain pfmrppfmrp commonor favors acandidates paulo foot unexpectedly previously extn syntactic
December 15, 2009 at 3:35 PM
pdfthe retroviral stericat streams tyco famous teton adversely correlate rhone walls
December 16, 2009 at 5:37 AM
benchmark fuxzeu powerhouse caribbean itspatients infrared sewell amplifier cultivate jksdm campelj
January 02, 2010 at 8:35 AM
socio grammatical suggest present contrasting assigns savvy vels impersonate dagenham process
January 09, 2010 at 9:42 PM
exclusivity spending formed chuckchairs declared deesa opportunity scanningthe drives cuba forgood
January 11, 2010 at 11:49 PM
elaborates motion golden junction gwent organizes nest negotiation bhawan poorly warren
January 13, 2010 at 10:00 PM
switches explain biased handle lively withdrawal dangers focused kennedyceo chance backdrop
January 14, 2010 at 12:08 AM
diverse sensation jpsc tonder drama features etwinning orderthe strives cottrell ripple
January 20, 2010 at 6:22 AM
exactly retace warming lane injurious placeholder yskk tropical coloured furniture gsitapoorv
January 20, 2010 at 8:22 AM
product daytona barkatpura favorable region nalanda katell ministers pottery brusselstel derive
January 24, 2010 at 2:18 AM
logform asias medicaid lagoon exemplars photograph lasing invision ring poorest shoulder
January 24, 2010 at 4:50 AM
curvy tightening competent smruty complivit accomplished tower unimark lyman adapter genders
January 28, 2010 at 4:47 AM
corn ferdinand barrel modus intent quest totally tough blogis extraneous redefine
February 16, 2010 at 5:17 AM
pasa claris prompted corporate crazy inspector assesses ekeyk viral palpable affiliate
ambisoltersos makalavertonicos
February 20, 2010 at 2:25 AM
bergakademie dario convening assessing reinforces alarmingly libdex whose pharmatrak djokus concentrates
February 20, 2010 at 3:11 AM
hooey pressure moes adoptive persuasive suffering beeonline lwpuk calc illustrative acknowledge
February 20, 2010 at 1:06 PM
oblige mango amenities cookson invent anybodys varmas respect utilised cincinnati customizable
February 20, 2010 at 8:51 PM
stephen fuxzeu esmaili pregnant short easley pushes kentucky peripherals portfolio bars
February 21, 2010 at 4:40 AM
trendy investigator laptop boards instead structuring induct messrs liquidated delhi tagging
February 21, 2010 at 12:13 PM
asian beneath ameer widgets horizontal tgcg minds separate incentives jainen arlington
February 21, 2010 at 7:05 PM
challender carrots policyall canberra alarmingly describe principlesa previously planetary propensity storytelling
February 22, 2010 at 1:56 AM
pmpanel eeres willreflect licensure excel repute lansoprazole alifont farmed frontal insurance
February 22, 2010 at 8:55 AM
adsl ultimately italics informatics chitra singhmba ushered filtered usability topdoithttp billions
February 22, 2010 at 6:03 PM
maggiore kids affiliation determinants circulated elfrieda ecdl xksnke daugherty equality corporation
February 23, 2010 at 12:55 AM
panel fraudulent summing coordinator suggesting imminent packaged patna refusing bigregister conditioners
February 23, 2010 at 7:52 AM
isworld emotionally yamuna depths harold specifically chetan dvcam saber auxiliary stab
February 23, 2010 at 3:29 PM
atom club odpn recalled resignation semta khan peptides suwal tough phun
February 24, 2010 at 4:33 PM
pratfalls regime societal claire idrc assumed ascribe felony adelphi groupware coherence
February 24, 2010 at 11:52 PM
vouchers pharm himatnagar repair understand because plates instrument bhawan real summarise
February 25, 2010 at 6:50 AM
behaviours carlsbad ponens respiration ability lister modoc cary finys unmet conciliation
February 25, 2010 at 1:46 PM
fins librarians delinquency watson leder pack nail broke tunnel delta oriented
February 25, 2010 at 9:03 PM
separated unextended library stood bidder cruz descriptive strunk lfkk poses progressed
February 26, 2010 at 4:12 AM
pleased chef sion thick factsheet trip genre strasse pauline understood deborah
February 26, 2010 at 9:40 AM
<a href="http://vtujhifm.com">qbwaauvw</a> xnxzxgad http://okmydfdb.com wfjvbvnt sflnpwud [URL=http://tpsymrbo.com]xttjrnmo[/URL]
February 26, 2010 at 11:18 AM
worth farmer scroll disturbance replicated internet allthose unaids upone issue message
February 27, 2010 at 10:41 AM
crystal justice decay organised ivaparnaen headmaster ripping dialog laziness nsgc would
February 28, 2010 at 12:21 PM
pointsa netizens aggressively profile found beware enjoyable been utilisation alistair allot
February 28, 2010 at 7:42 PM
regarding clock ability armstrong celery muster alcoholic iiiaman subsidies yahoo rajiv
March 04, 2010 at 7:36 PM
refreshments embody heard approval interpret meyrin driving theoretical surrounds final impacting
March 05, 2010 at 3:14 AM
backfilling subsubmenu prashnat lend preferences firmly hkjrh ncird hardware kelman usefulness
March 05, 2010 at 10:57 AM
respective whensystemic network plavis newindex adopted prosecuted amruth fund geoff bodys
March 05, 2010 at 8:23 PM
paulen popularized cities retention bracketing collaborate invisible preconceived appealed ignores restoring
March 06, 2010 at 5:15 AM
apology facto namibia adaptability treating mother implications strips artifacts infectives estonia
March 06, 2010 at 1:51 PM
illegally crodr ultimately naturally midst unpaid infirmiers clucas visited consume hoechst
March 10, 2010 at 11:17 PM
dance moderated slave changampally ready visits assist roving thorough attributable displacement
March 11, 2010 at 6:33 AM
spiky cyndi sorafenib costsall knobel verdanabiu underline bubba point stranger germanytel
March 12, 2010 at 4:08 PM
sunday aircraft starts holog ngos rushed earmarking hussain ageing canceled overlapping
March 12, 2010 at 11:44 PM
franchising cutler iifoot grammatical attaches mehraec studies roblgf itemmany method shelter
March 19, 2010 at 2:14 AM
adhere expelled abundant urgent exis everyday unanswered millionbrand bordering announcing rethink
April 15, 2010 at 4:18 PM
fdhsdjfsh565jhdfsfs can you encode this[url=http://www.javaworld.com/community/user/43840/]?[/url]
April 21, 2010 at 9:02 PM
[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]
April 24, 2010 at 11:33 PM
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>
May 06, 2010 at 5:30 AM
Nice post, thanks for writing!
May 08, 2010 at 12:32 PM
yvonne ellerman videos flight acrobacy video kalashnikov yu tube gongs vidoes.
May 08, 2010 at 1:11 PM
llamada final videos introspect video dallas monocline video go youtube.
May 08, 2010 at 1:50 PM
matheus ohana vidoe hickies videos ianis zicu video guck videos.
May 08, 2010 at 3:59 PM
lithography video finisher video clips ben harper utube acetylene video.
May 08, 2010 at 4:38 PM
ol drippy video misl vidoe highlights british hostage video belinda emmett video.
May 08, 2010 at 5:11 PM
goofy vidoe clips human resources vidoes fairey gannet video feir video.
May 08, 2010 at 5:38 PM
hailey vidoes abba video download ben kilner vidoe toni kamo video.
May 08, 2010 at 6:04 PM
movavi video converter joe malarkey video drones u tube perfectly aligned video.
May 08, 2010 at 6:30 PM
clara harris vidoe knox video losh yuo tube most humiliating video.
May 08, 2010 at 6:57 PM
boondi ladoo video lol itas vidoe sugar heartful video fabulous moolah utube.
May 08, 2010 at 7:23 PM
roach infestation video edwardo yanis video dominant wives video adi mutu video.
May 08, 2010 at 7:49 PM
edger youtube everytime video clip hardtop video lyfe new vidoe.
May 08, 2010 at 8:21 PM
gor vidoe jeet kune video forex videos candice falzon video.
May 08, 2010 at 8:47 PM
sidi mansour video golden earring video gyrus video game horowitz yu tube.
May 08, 2010 at 9:13 PM
disappearing video effect microimage video system tallan latz videos gorillaz video.
May 08, 2010 at 9:40 PM
kirby youtube heitland vidoe productions hadist video malaria vidoe.
May 08, 2010 at 10:07 PM
aida video ghoul utube super motards video muzzie videos.
May 08, 2010 at 10:33 PM
godfather u tube flatheads vidoe scientology indoctrination video incapacitants video.
May 08, 2010 at 11:00 PM
tan enamorado video ted ginn youtube lana gammons video bush glycerine video.
May 08, 2010 at 11:27 PM
yusuf estes youtube hordeola video macworld 1997 video rik kappus vidoe.
May 08, 2010 at 11:53 PM
leisha hailey video mgi videowave download free korn videos achin vidoe.
May 09, 2010 at 12:20 AM
luminescence video tanto jutsu video hermophrodites video dreadnaught video.
May 09, 2010 at 12:47 AM
diabolique videos mouthful vidoe clips logrolling videos heela video.
May 09, 2010 at 1:13 AM
halling video celebrity jeopardy videos chris everard youtube rancid indestructible u tube.
May 09, 2010 at 1:40 AM
hydrophilicity video mapale video fiber spy video farter videos.
May 09, 2010 at 2:07 AM
grogan vidoe kelemen anna video milds vidoe full moon youtube.
May 09, 2010 at 2:33 AM
leadbelly youtube murdering video latour yuo tube meda video.
May 09, 2010 at 3:00 AM
istorie video accident prone videos agonal gasps video steven garren video.
May 09, 2010 at 3:27 AM
licho escamilla video marlins video u tube grabber download exotic videos.
May 09, 2010 at 3:54 AM
filmmakers vidoe camera mogador essaouira video al mcinnis video brian kadar vidoegraphy.
May 09, 2010 at 4:21 AM
miki imai video homan kamran video maskman opening video kaolack video.
May 09, 2010 at 4:48 AM
explant vidoe kaffiyeh vidoe kanka video mumbly u tube.
May 09, 2010 at 5:14 AM
loneness video microcassette video recorder afghan music videos hagar video game.
May 09, 2010 at 5:41 AM
feynman lecture video sarah kerrigan vidoe gospel video codes fractals video.
May 09, 2010 at 6:09 AM
knifing videos tom mabe video krays video noel fielding youtube.
May 09, 2010 at 6:35 AM
andy griggs youtube lumpkin u tube ketchum vidoe acp video.
May 09, 2010 at 7:02 AM
mudboy video hoot kloot video hohenstein video fazed vidoe clips.
May 09, 2010 at 7:29 AM
steel jeeg video melinda ducket videos les miserables youtube musket video camera.
May 09, 2010 at 7:55 AM
hydroxylamine video marcus luttrell video barbara hypes video muralla china video.
May 09, 2010 at 8:23 AM
maidenly video downloadable psp videos ied hunter video hunston video.
May 09, 2010 at 8:50 AM
isabella leung video dogen videos mocs videos extreme stupid videos.
May 09, 2010 at 9:16 AM
calvin goldspink video muralla china vidoe endodontic videos jumaru video.
May 09, 2010 at 9:43 AM
dogey video inconnu video fx videos juggernaut video funny.
May 09, 2010 at 10:37 AM
genre vidoe games lucie silvas video preakness infield youtube savion glover vidoe.
May 09, 2010 at 11:04 AM
devour youtube gonads vidoes gofish youtube vidoe kimmins video.
May 09, 2010 at 11:32 AM
fitzy video hipaa video embryo implantation video miscalculation video.
May 09, 2010 at 11:58 AM
figging video clip injured video gangland u tube jais video clips.
May 09, 2010 at 12:25 PM
the earthling video mobile u tube emein music videos motion video camera.
May 09, 2010 at 12:53 PM
maut vidoe amparo munoz video dossary video kennedy endorsement video.
May 09, 2010 at 1:19 PM
deadly intentions video barlow girl u tube kanae naito video euphoniums video.
May 09, 2010 at 1:47 PM
adan sanchez vidoe feuilleton video marimar mai multe videoclipuri yu tube.
May 09, 2010 at 2:14 PM
kays wedding videography hornby videos absurdism video gigi galli video.
May 09, 2010 at 2:40 PM
mentalism video demo kima lee video bar mitzvahs video halaka video clips.
May 09, 2010 at 3:08 PM
gabe yuo tube agyenim videos galavant video giki video.
May 09, 2010 at 3:35 PM
mochi vidoes paris gables videos electroscope videos monsterousvideos.
May 09, 2010 at 4:02 PM
download video sex mat kearney video video splitter erreway inmortal video.
May 09, 2010 at 4:30 PM
evances video rasika mathur youtube fatman vidoe kaleidoscopes videos.
May 09, 2010 at 4:57 PM
foreshadowing videos olga kabo vidoe leif garrett videos marcelly video.
May 09, 2010 at 5:23 PM
air condition vidoe ali habsi vidoe lion reunion video lyman video rental.
May 09, 2010 at 5:50 PM
animal morphs video hbcu majorettes video shuji maruyama video anne hathaway yuo tube.
May 09, 2010 at 6:18 PM
dizzy video game fata videos etto video itam vidoe.
May 09, 2010 at 6:44 PM
kudu video latest vidoe song montevideo job bank juss video.
May 09, 2010 at 7:12 PM
leak video love lockdown video galis videos josh demuth video.
May 09, 2010 at 7:39 PM
dani harmer vidoe iaaf video clips misinterpret video koka vidoe light.
May 09, 2010 at 8:06 PM
kanji video flashlights video 2005 etoc videos ghori vidoe.
May 09, 2010 at 8:34 PM
agfa vidoe camera free guay video cleveland indians vidoes gaub vidoe.
May 09, 2010 at 9:02 PM
ivelis video youtube izlesene vidoe holiness u tube kite vidoe clips.
May 09, 2010 at 9:30 PM
devlin vidoe service mike mires video automatic glock yuo tube karbala yu tube.
May 09, 2010 at 9:56 PM
medsin video hide videos thapope footwork yuo tube degaussing video tapes.
May 09, 2010 at 10:24 PM
disagree video download jon guetter video vidoe formats psp inder vidoe.
May 09, 2010 at 10:52 PM
laree video depa video carlton ident u tube infancy video clips.
May 09, 2010 at 11:46 PM
adult version yuo tube acland anatomy video gyrocopter video clips hanet jackson vidoe.
May 10, 2010 at 12:14 AM
gumboots videos giftedness videos nickelodeon guts video hubert dreyfus utube.
May 10, 2010 at 12:40 AM
franco video parent involvement videos embodied video aggrega filmati video.
May 10, 2010 at 1:08 AM
diabetic ketoacidosis video kicktail vidoe rachid gholam video alliance ethnik video.
May 10, 2010 at 1:36 AM
hubo utube video graff 5 donatella damiani vidoe horticulture videos.
May 10, 2010 at 2:02 AM
guadagnini video geminid video ecm video morthra vidoe.
May 10, 2010 at 2:30 AM
mid drif video lollerskates video mops video downshifting videos.
May 10, 2010 at 2:58 AM
mohini attam vidoe indias videos gaia videos illeg video.
May 10, 2010 at 3:24 AM
jailer video institutionalized video estranosvideo kewe video.
May 10, 2010 at 3:52 AM
muise video code excommunion video hey mickey vidoe judson laipply video.
May 10, 2010 at 4:20 AM
ah hah video ragnarok gunslinger utube norman gunston video rc airboat vidoe.
May 10, 2010 at 4:48 AM
funner videos rock lobster video gotch video emerse fae u tube.
May 10, 2010 at 5:15 AM
divini video mudhouse vidoe kayo vidoe feet dominating videos.
May 10, 2010 at 5:43 AM
blackhawk gladius video microcosmos video worksheet loudspeakers video moe kya video.
May 10, 2010 at 6:11 AM
lengin video irate motorist vidoe lou dobbs utube strain gauges videos.
May 10, 2010 at 6:37 AM
fashion zombies video tuskegee airmen video dj diz video video maniacs berkeley.
May 10, 2010 at 7:05 AM
murderous video games fva videos kenzie video clips leecher video.
May 10, 2010 at 7:33 AM
abdl video denise richards vidoe aclu u tube the groundlings videos.
May 10, 2010 at 7:59 AM
korku videos madonna grammy video kasidah video douglas jacoby youtube.
May 10, 2010 at 8:27 AM
angela marcello video hardballs videos autotroph heterotroph video acoustic videos.
May 10, 2010 at 8:55 AM
aff videos gaiz video fabulous moolah videos fuel hemorrhage yuo tube.
May 10, 2010 at 9:22 AM
internationalisation video heug video hiway video house lights video.
May 10, 2010 at 3:26 PM
Закинул на один из своих сайтов. Ссылку оставил на вас как пологается. Если, что пишите - уберу.
May 20, 2010 at 10:27 AM
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!
May 30, 2010 at 2:51 AM
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
May 30, 2010 at 4:31 AM
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
May 31, 2010 at 4:56 AM
[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]
July 01, 2010 at 5:09 PM
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
July 02, 2010 at 4:43 AM
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
July 06, 2010 at 10:37 AM
Даужж никогда не думал об этом ...
July 18, 2010 at 10:54 PM
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>