They still have a major flow - common lisp packages are not hierarchical (in contrast to java) which makes it hard to have some symbols exported to not all packages but rather subset of them.
We've used image comparison tool, which produces pixel-wise diff with the expected image, exactly to verify these kind of things(we've been developing the rendering tool). In addition to this unit tests, combined with the coverage tools, allows you to find potential problems/crashes etc in your code.
Different levels of testing are for different things, unit tests just one of the pieces in the equation.
Your point is just for some tiny tiny scenarios of the software you are working on.
You don't need to think about 'how could I write a unit test', you need to think about how could you improve the quality of the code, and unit tests are just one of your tools available to solve this problem.
That is pretty awesome that you've wrote a such a tool (although I can only imagine how long it took to create such a tool and how it affected the project time frame).
From a web developer's mind: the coll thing is that the tool can be further developed and taken to new directions. For example implement the capability to take snapshots of pages and see if they've changed in layout and notify the user of changes (pretty awesome for scrapping).
I totally agree, unit testing is such a small cog in the wheel of software quality that it is truly a shame how something like this takes all the scene.
I'm working a lot with a huge legacy codebases in C/C++. Here are some advices:
1. Be sure what you can compile and run the program
2. Have good tools to navigate around the code (I use git grep mostly)
3. Most of the app contain some user or other service interaction - try to get some easy bit (like request for capabilities or some simple operation) and follow this until the end. You don't need a debugger for it - grep/git grep is enough, these simple tools will force you to understand codebase deeply.
4. Sometimes writing UML diagrams works -
- Draw the diagrams (class diagrams, sequence diagrams) of the current state of things
- Draw the diagrams with a proposal of how you would like to change
5. If it is possible, use a debugger, start with the main() function.
Yes this could work for personal things. But it is often you need to represent your understanding of the current state of affairs and propose your ideas, so the UML is a good tool to do it - everybody understand it or could learn in like 0.5 hour.