There are quite a few projects out there that stuff a Raspberry Pi inside a Nintendo Entertainment System case to be able to play emulated NES games. My friend Shane and I decided to do one of these projects. But we didn't want just another RPi emulation system. We wanted…
Continue reading

In part 5 we discussed how integration testing is used to improve the quality of software at a higher level than unit testing and when it should - and shouldn't - be used. As I mentioned in that post, integration tests aren't suited for testing functionality that relies on slow…
Continue reading

As you will recall from part 4, we left off with a problem. All the unit tests for the relative time formatter v2 passed, but I explained that there was, in fact, a bug in how the day formatter was being called. The bug wasn't caught by the unit tests…
Continue reading

In part 3 I discussed some of the good habits surrounding unit testing, such as determining how much to cover in your tests and avoiding the temptation to test internal implementation details. In this part we'll continue to explore unit testing with a focus on verifying external interactions in a…
Continue reading

The first and second parts of this blog post series are an overview of automated software testing, with part 1 focusing on the why and part 2 a pretty high-level how. Now, with the third part, let's delve deeper into the how of unit tests specifically.
Continue reading

In part 1, I explained some of the reasoning behind automated software testing. Now let's explore a few of the more common types of automated tests that we often deal with.
Continue reading

Let's talk about automated software testing. I realize that a lot has already been said on this subject, but it seems that there's still a significant amount of misunderstanding in this important area of software development. I'm going to attempt to shine some light on a few of the core…
Continue reading

I'm lucky enough to follow a good number of people on Twitter who, unwittingly, generate great writing prompts for me. Recently, I've seen a few discussions that focus on questioning modern criteria used by software companies in their hiring policies/processes. Passion is one such criterion. Why is it that passion…
Continue reading

As software developers, we often have to deal with encrypting sensitive data. These days, for most of us, that simply means integrating with and enabling existing security frameworks. For web developers, it's often as easy as configuring the web server to use HTTPS. (Please note that due to the relatively…
Continue reading

Virtual private networks, or VPNs, are used by lots of companies, big and small, to connect offices to other offices around the world and to allow people to connect from remote locations into their corporate networks for a variety of reasons - usually having something to do with productivity. But…
Continue reading