We have been developing wifi/2g boards that communicate to a server and store data.
This project has been running for several years already, and we are constantly updating both boards' firmware and server software.
Every now and then something fails, and most often detected by a client, when it's too late and that failure caused something worse.
I've conducted many tests in a controlled environment, and every time I think of a new test I do it as soon as possible, but lately I'm running out of ideas on what to test.
The boards are quite complex, and uses several chips for different purposes, so the testing involves hardware tests as well as software. I'm looking for a better approach to finding better testing methods, because obviously I'm always missing something.
I'm not suggesting that I'll be able to predict every possible case (impossible), I'm just looking for some guidelines on how to improve my tests.