By: Carol Vercellino, CEO & Co-Founder
Today we’re going to talk about software testing. Sometimes software testing can sound a little boring, but today we’re going to cover some really simple terms. Hopefully this can help you collaborate with software developers or even hire a software developer for your project.
Read on or watch our video here.
Why test apps?
Software testing is critically important. Bugs can range from minor things like a misspelling in an app to major things like one single action deleting all of the data in your database. It’s something developers need to place a priority on, and you should too. It will be a part of your risk management plan and can save you money in the future.
The Pyramid (Not a Scheme, We Promise!)
So to really break things down, we like to think of software testing as a triangle. At the bottom of the triangle is unit testing.
Unit tests are just that. They’re testing really small bits of code to the lowest level possible. They’re fairly inexpensive too, and you can have tons of them. You can run them through automatic testing when code is entered. That’s your first level of defense against a software bug.
And then in the middle of the pyramid we have what we call integration tests. These test third party bits or something your app is going to integrate with. This could be an API for Google Maps or it could be your internal database – really anything that’s a third party.
And then at the top we have UI testing, sometimes called end-to-end testing or functional testing. The terminology doesn’t really matter. At the end of the day, you want that first line of defense, second line, and the third line of defense.
All of these things should be as automated as possible. Something to think about in software development is that the bottom of the pyramid is your least expensive test. It’s the developer’s time but it’s going to save you because it’s your first line of defense. The top of the pyramid tends to be the most costly because somebody has to write those functional end-to-end tests and automate them, or you have to have somebody manually test those things.
Questions to Ask
So we’ve got unit tests at the bottom, integration tests, and then UI tests or end-to-end tests at the very top. When you’re talking to developers, those are important concepts to understand. Ask them, “Where do you put the most importance? What tests are important to you, and what kind of test coverage do you have in each of those categories?’ It’s okay to ask developers those questions, and don’t worry if you’ve never written those tests before. You should be able to talk to a developer, and they should be able to help with those things.
Email us with your ideas for tech topics we should break down in less than three minutes!