Top Tips for IoT Testing
1. Don’t do your own user testing.
If you’re the one building a product, you shouldn’t be the one testing it. As a software engineer myself, I never test my own software because I know that I’ll bring the same assumptions into functionality testing that I brought into writing the software.
2. Get the product in the client’s hands as soon as possible.
You can’t start testing your product until you actually have something ready to test. While having a plan and a strategy is crucial, you’re not going to learn anything new until your product is in the hands of the users.
Don’t be scared of a breadboard. Try the hardware configuration out and say, “All right, I'm going to try this.” Get the prototype to your client and say: “Here, is this even close to correct?” Because before you have something in front of you, it's really hard to talk concretely about the system, the qualities of the system, and the value it provides.
3. Think about all the ways you might fail.
When I’m building something, I challenge myself to consider at least three ways that the approach I’ve chosen might fail. If I haven’t done so, then I haven’t thought about it enough.
- What happens when this sensor is jammed?
- What happens if I try to send solid matter through a beer tap that’s supposed to only hold liquids?
- Will a firmware update brick my smart shoe?
4. Use the right IoT testing tools.
Some of the tools that help us build and test products at Very include:
Elixir and Nerves: We like to use Elixir and Nerves to build applications. One of the many reasons is because it’s fault-tolerant. If an Elixir process fails, the failure is contained to that process and that process only. The entire system won’t go down if one user experiences a problem.
Docker, Jumper, and Circle CI: If it’s possible, I recommend automating checks around things like safety. We've made great use of Docker, Jumper, and CircleCI to run a test suite against a particular piece of firmware.
Amazon Mechanical Turk: We’ve used this service to conduct surveys vetting different physical designs and even colors for user interfaces and hardware.
You’re Not Done Developing Until You’ve Finished User Testing
To sum up, you’re not finished developing your software and/or IoT device until you’ve challenged all your initial assumptions through robust user testing.
If you’re looking for a development partner who understands why user testing is critical to your IoT project’s success, that’s us. Connect with one of our experts today and we’ll talk about bringing your idea to life.