These days, it’s standard practice to run your unit and system tests with some degree of parallelism. When doing so, it’s important to ensure that the code being tested doesn’t interfere with other running tests. Usually, this comes down to the database layer. There are a few options for accomplishing isolation at the database layer. […]
Unit testing, integration testing, acceptance testing, exploratory testing—all are important methods that contribute to delivering quality software. But there’s another important kind of testing that is often overlooked, and that’s testing the production environment. For example, has the production environment been configured correctly so the system can successfully send email? Can the system access a […]
Most software projects have an established visual design: colors, layout, typography, etc. It’s typically one of the first things to be set up. But the product is going to change and evolve. Maybe a new button needs to be added. Or a link, or a metric, or some other widget. While a designer often leads […]
PHP makes it very easy to include everything from interpreting form submissions to calls to the database to rendering HTML in one file. As a project grows, this can make code difficult to test and update. In this post, I’ll discuss an approach to separating application logic from template files using output buffering, and how […]
I admit it. I’m one of the worst offenders of the “never leave TODOs” rule. With the intention of quickly finishing a story, I’ll write a TODO comment and then promptly forget about it. Often, a teammate will bring it up again during a code review, and I can address it then. However, there are […]
Out of all the tests I write on a day-to-day basis, acceptance tests are the hardest. In my experience, writing them for web applications is complex. There are many asynchronous actions going on: web requests firing off, responses being processed, UI elements popping on and off the screen, etc. To manage this complexity, I’ve been […]
As we decide where to focus, figure out the best way to implement things, or evaluate costs on any project, we hear the same questions: “How much will this cost?” Or “When will it be done?” Or even technical questions like, “How many records can this process per second?” We need to make decisions and […]
Did you know that there’s a relational database hiding in your Unix shell? There really is, it turns out. A friend of mine was recently telling me about his discovery of the join command, which allows you to combine data from multiple files that contain tabular data. Let’s take a closer look.
Releasing a new version of a mobile app can be a stressful process. The first few times you do it, your customer base is probably pretty small, so it doesn’t feel like a very big deal. However, after your user base grows into the thousands, the pressure really starts to build. The fear of releasing […]
The Minikube tool is a wonderful resource when you need to run a Kubernetes cluster locally. It was very convenient for our team when we needed to recreate an existing deployment.