Beefy Boxes and Bandwidth Generously Provided by pair Networks
We don't bite newbies here... much

Re: What is the best way to add tests to existing code?

by adrianh (Chancellor)
on May 22, 2004 at 14:23 UTC ( #355583=note: print w/replies, xml ) Need Help??

in reply to What is the best way to add tests to existing code?

Please let me know if I've missed important ideas or strategies and which of the points below you consider to be the most important.

I think you're list pretty much has it covered, and I completely agree with chromatic's point about writing tests for new functionality.

The other strategy that I'd add is making sure that you write tests around any code that you're going to improve.

If you've got some gnarly code that you want to refactor write some tests to exercise the behaviour that you want to preserve before you change the code.

In particular, I'm interested to know the best way to add tests to existing code.

The advice I would give is to remember that tests exist to help improve the code. They're not an end in themselves.

A counter productive practice that I've seen is to go through a large piece of legacy code and add developer tests for everything. Doing this with legacy code not driven by tests will produce a test suite that is brittle in the face of change. When you get to the refactoring you're going to find that you're going to be continually throwing away a lot of the new tests so you don't get any benefit from them.

In my experience it's much more effective to build the test suite around the changes you make to the code. Add tests when you add new features. Add tests around code that you're refactoring. Add tests to demonstrate bugs. In my experience just following those three rules naturallys build a test suite around the most important code.

  • Comment on Re: What is the best way to add tests to existing code?

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://355583]
[Corion]: Hmmm - and now that I look at it, the gallery I'm using doesn't produce non-Javascript compatible links in the sense that hotlinking to an image will only work for Javascript enabled...
[Corion]: On the other hand, maybe supporting non-Javascript isn't that much a priority, and I'm not exactly sure how I could make it work for both kinds of browsers without server-side magic
[Corion]: Should I ever come across far too much money, this would become my evil maniac lair ;)

How do I use this? | Other CB clients
Other Users?
Others avoiding work at the Monastery: (10)
As of 2017-02-27 08:36 GMT
Find Nodes?
    Voting Booth?
    Before electricity was invented, what was the Electric Eel called?

    Results (377 votes). Check out past polls.