Breaking the perpetual deadlock of legacy code, lack of testing, and missing documentation
Having been an iOS developer at quite a few tech companies, from small to large, I’ve found that they all mostly share the same painful reality of software development:
- Lots of fragile legacy code that is risky to refactor or update because it is untested
- Tests can’t be written for legacy code because what it even . . .
Having established what tests can actually be good for, outlined the only two types of test that matter and their value, and having attempted to make the case against a narrow fixation on “unit tests”, where does that leave us?
Well, it leaves us free to think about how we can write good tests that are useful and practical! And the . . .
If you’ve been reading this Fresh Look at Testing series of blog posts, you may have noticed that there is little to no mention of unit tests. So what about unit tests? Unit tests are the most common and frequently discussed kind of tests in software development at large and seem to have the most support among developers. However, you won’t . . .
In response to my last post, I had a few insightful readers ask about various types of testing and if they went beyond the single purpose of confirming expected behaviors.
I also mentioned in the last post that human QA analysts are often able to effect quality in a way that automated tests currently do not, but that such an . . .
There are as many opinions about testing as there are developers, and then some. The opinions run the range from considering all testing a waste of time, to the belief that only unit testing is worthwhile, to an insistence that end to end tests are the most important, to a dismissal of end-to-end tests as not maintainable.
Because . . .
Last year, I wrote a post about the problems with code coverage as a metric, and left the topic as “to be continued”, saying that I had some ideas for a better approach. Well, it's taken long enough, but here are the first pieces in that objective to evolve a better way to create and measure well-tested software.
What Makes Good . . .
Yesterday, during the lead up to the WWDC keynote, I started thinking about what really matters the most when it comes to software engineering. We (I include myself) tend to talk a lot about APIs, libraries, features, capabilities and tools as part of our work. And it often feels that making great code depends heavily on use of language . . .