Vaguery + tdd   35

Random Thoughts from Esko: Direct and Indirect Effects of TDD
"Noticing the pain as soon as possible and then fixing the problem - whether it is a rigid design, fragile tests or something else - requires skill. Not everybody is alert to the pain, but instead they keep on writing bad code until making changes becomes too expensive and a rewrite is needed. Not everybody fixes the problem when they feel the pain, but instead they implement a quick hack and leave an even bigger mess for the next developer. But for those who have the necessary skills and discipline, TDD can be a powerful tool and they can use it to write better code."
tdd  agile-practices  software-development  testing  social-engineering  good-habits 
april 2010 by Vaguery
Coding Dojo Wiki: KataFizzBuzz
"Imagine the scene. You are eleven years old, and in the five minutes before the end of the lesson, your Maths teacher decides he should make his class more "fun" by introducing a "game". He explains that he is going to point at each pupil in turn and ask them to say the next number in sequence, starting from one. The "fun" part is that if the number is divisible by three, you instead say "Fizz" and if it is divisible by five you say "Buzz". So now your maths teacher is pointing at all of your classmates in turn, and they happily shout "one!", "two!", "Fizz!", "four!", "Buzz!"... until he very deliberately points at you, fixing you with a steely gaze... time stands still, your mouth dries up, your palms become sweatier and sweatier until you finally manage to croak "Fizz!". Doom is avoided, and the pointing finger moves on. Until the next time."
coding-dojo  agility  learning-by-doing  self-assessment  TDD  BDD  training  kata 
march 2010 by Vaguery
Agile Ajax » Rails Testing Frequently Asked Questions — The Non-Code Version » Pathfinder Development
"Things to keep in mind.

No matter where you start, start with one simple test. One assertion, if you can manage it.
Write the code to make that test pass
Then refactor -- this part is critical, this is where the creative design is with a TDD process.
Then write the next test.
In Rails, you'll often start in the controller then realize that code needs to be written in the model (or vice-versa). Write a separate test for the model -- testing models from the controller makes it hard to test all the model logic.
It's okay to plan the tests in advance, but you should only work on one test at a time. (Sometimes I'll write the series of tests, then comment out all but one)"
test-driven-development  TDD  testing  Rails  Ruby  programming-culture  advice  getting-hired 
may 2009 by Vaguery
FakeWeb API Documentation
"FakeWeb is a helper for faking web requests in Ruby. It works at a global level, without modifying code or writing extensive stubs."
Ruby  programming  mocks-and-stubs  TDD  BDD  development  testing 
april 2009 by Vaguery
Test Stub at XUnitPatterns.com
"Variation: Saboteur
A Test Stub that is used to inject invalid indirect inputs into the SUT is often called a "Saboteur" because its purpose is to derail whatever the SUT is trying to do so we can see how the SUT copes with these circumstances. The "derailment" can be caused by returning unexpected values or objects, or it can be caused by raising an exception or causing a runtime error. Each test may either be a Simple Success Test or an Expected Exception Test (see Test Method) depending on how the SUT is expected to behave in response to the indirect input."
testing  TDD  BDD  rspec  design-patterns  programming  unit-testing  specification 
april 2009 by Vaguery
btakita's rr at master - GitHub
"RR (Double Ruby) is a test double framework that features a rich selection of double techniques and a terse syntax."
mocks  programming  testing  TDD  BDD  rspec  framework  ruby 
april 2009 by Vaguery
How To: Setup RSpec, Cucumber, Webrat, RCov and Autotest on Leopard | Clayton Lengel-Zigich
"RSpec, Cucumber, Webrat, RCov and Autotest are a powerful combination of tools for testing your Rails app. Unfortunately getting them to all work nicely together can be a bit of challenge. I recently configured a development environment from scratch on OS X 10.5 Leopard and kept track of all of the little details."
how-to  rspec  Rails  Ruby  Leopard  MacOS  TDD  BDD  autotest 
april 2009 by Vaguery
notahat's machinist at master - GitHub
"Machinist generates data for the fields you don't care about, and constructs any necessary associated objects, leaving you to only specify the fields you do care about in your tests."
BDD  mocks  stubs  Ruby  programming  software-development  test-driven-development  library  TDD  factory 
march 2009 by Vaguery
Agile Ajax » Using Cucumber for Acceptance Testing » Pathfinder Development
"My experience so far, as I explore what Cucumber can do, has been largely positive. Where I was starting with Cucumber and only a vague idea of how the user interaction would play out, writing the scenarios at the Cucumber level felt very valuable and gave the development a clear path that I wouldn't have otherwise had. That said, there is extra code being written, and it's clearly possible to get really tangled in getting the step definitions right."
Cucumber  BDD  behavior-driven-design  Ruby  TDD  Machinist  testing  agility  software-development 
march 2009 by Vaguery
I Love Pair-Programming » Absolutely No Machete Juggling
"I see pairing work so well every day that I consider my career prior to my current job to have consisted mostly of wasting time. When I think back to all the code I’ve written for a job, I’m annoyed at how much less efficient I was then since I wasn’t pairing, and how much better my code and my products would have been if I had paired on them full time."
pair-programming  efficiency  risk-management  software  development  cultural-norms  TDD  productivity 
february 2009 by Vaguery
Projects - MileMarker
"When viewed in development mode, the person div would be overlaid with a translucent gray box with the words “Milestone 6” in it, as shown below."
rails  debugging  MVC  design  software  development  TDD  markup 
february 2009 by Vaguery
Mixing Cucumber with Test::Unit/Shoulda — GIANT ROBOTS SMASHING INTO OTHER GIANT ROBOTS
"We’ve been writing a “feature” for every new client request on that project – for each user-created ticket we handle, we create a .feature file (and include the ticket number in the feature title), and write steps for that request. This means that we have acceptance tests for all new client requests on that project. This approach may seem a little strange, but it’s been helpful, and we’re very happy with it so far. We’ll likely take a different approach if we use Cucumber on a project from scratch.

Now you have no excuse if your projects aren’t doing any kind of top-down testing, so get out there and write some acceptance tests!"
test-driven-development  TDD  behavior-driven-design  BDD  cucumber  shoulda  ruby  testing  agility  emergent-design 
february 2009 by Vaguery
Projects - Shoulda
"The Shoulda gem makes it easy to write elegant, understandable, and maintainable Ruby tests. Shoulda consists of test macros, assertions, and helpers added on to the Test::Unit framework. It’s fully compatible with your existing tests, and requires no retooling to use."
TDD  test-driven-development  specification  Ruby  RoR  cucumberish 
february 2009 by Vaguery
The Truth about BDD
"But enough of irony. Is this useful? I think it may be. You see, one of the great benefits of describing a problem as a Finite State Machine (FSM) is that you can complete the logic of the problem. That is, if you can enumerate the states and the events, then you know that the number of paths through the system is no larger than S * E. Or, rather, there are no more than S*E transitions from one state to another. More importantly, enumerating them is simply a matter of creating a transition for every combination of state and event.

One of the more persistent problems in BDD (and TDD for that matter) is knowing when you are done. That is, how do you know that you have written enough scenarios (tests). Perhaps there is some condition that you have forgotten to explore, some pathway through the system that you have not described."
via:arsyed  software  design  BDD  programming  TDD  behavior-driven-design  analogies  finite-state-machine 
december 2008 by Vaguery
Confreaks: Ruby Hoedown 2008
An excellent talk on testing legacy code. Some great insights on how to use judicious refactoring and contingent testing. Not too Ruby-specific.
refactoring  programming  TDD  BDD  legacy-code  software  development  Ruby  communication 
november 2008 by Vaguery
Dr Nic » Autotesting Javascript in Rails
'Below is a “getting started” tutorial, a helpful autotesting plugin, and hints about a TextMate bundle for Javascript Unit Testing and a future Peepcode on Javascript Unit Testing.'
AJAX  BDD  development  javascript  programming  Ruby  TDD  tutorial  ZenTest 
january 2008 by Vaguery
Creationism versus Natural Selection
"In the beginning, the Product Owner identified a Need. And the Need was without form, and void; and darkness was upon the face of the deep. And the Spirit of the Team (Team) moved upon the face of the Need and asked some questions."
TDD  testing  software  development  methodologies  rigor 
august 2007 by Vaguery
ArticleS.UncleBob.ThePrimeFactorsKata
Great TDD kata from UncleBob. Unfortunate it's PowerPoint; would be nice if it were a PDF. But it's legible.
TDD  test-driven-development  software  development  design  emergence  agility 
april 2007 by Vaguery
NUnit - ReleaseNotes
New version of NUnit testing framework is released.
software  development  agile  XP  unit-testing  TDD  testing  programming 
march 2007 by Vaguery
BehaviourDrivenProgramming - Behaviour-Driven Development
"An interesting aside in favour of agile development techniques in general and TDD in particular is that even in this state the code is often much more robust and a much better functional fit than code developed under more traditional methods based on lar
BDD  TDD  software  development  agility  agile-management  XP  risk-management  design 
march 2007 by Vaguery

related tags

(?)  advice  agile  agile-management  agile-practices  agility  AJAX  analogies  art  automation  autotest  BDD  behavior-driven-design  behavior-driven-development  behaviourdriven  best-practices  better  coding  coding-dojo  communication  cucumber  cucumberish  cultural-norms  debugging  design  design-patterns  development  Django  documentation  efficiency  emergence  emergent-design  engineering  extreme-programming  factory  finite-state-machine  framework  gem  getting-hired  good-habits  Growl  hiring  how-to  interviewing  javascript  kata  learning-by-doing  legacy-code  Leopard  lesson  library  Machinist  MacOS  markup  methodologies  metrics  mocks  mocks-and-stubs  MVC  pair-programming  performance  philosophy  planning  plugin  presentations  productivity  programming  programming-culture  Python  quality  rails  refactoring  rigor  risk-management  RoR  rspec  ruby  rubyonrails  rules  scriptaculous  self-assessment  shoulda  social-engineering  software  software-development  specification  staffing  stubs  tdd  tes  test-driven-design  test-driven-development  testing  tools  training  tutorial  unit-testing  unittest  via:arsyed  web-design  web2.0  XP  ZenTest  Zentest 

Copy this bookmark:



description:


tags: