First, I think guinex has a good point: consider not rewriting your codebase. Instead try refactoring your existing codebase before adding your new features. I'm guessing you're thinking about rewriting because the current codebase is becoming difficult to maintain. If you take the refactoring route, you should be able to use unit tests from the initial application to ensure that you don't regress upon refactoring or addition of new functionality.
OTOH, if you feel that the code is beyond hope and choose to go the route of a complete redesign, or if you want to make some principle changes to the design of the code, the main problem you'll run up against is that the unit testing methods that are most documented and many of us are comfortable with won't cut the mustard because your updates will break many of them. Instead, you'll need to do some sort of black box testing. Write your tests against the initial implementation, but only run them against your top level application. If it's a web app that means using WWW::Mechanize along with Test::More. If it's not, you'll need to find a different testing module; for example, Test::Output is useful for testing the results of applications that generate STDOUT and STDERR content for checking.
perl -e 'split//,q{john hurl, pest caretaker}and(map{print @_[$_]}(joi +n(q{},map{sprintf(qq{%010u},$_)}(2**2*307*4993,5*101*641*5261,7*59*79 +*36997,13*17*71*45131,3**2*67*89*167*181))=~/\d{2}/g));'
In reply to Re: Recommendations re tests wrt a reference implementation
by agianni
in thread Recommendations re tests wrt a reference implementation
by blazar
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |