I've written a small operating system for embedded project running on small to medium target.
I added some automated unit test with a high test code coverage (>95%), but the scope is only the static part.
I got some code metrics as complexity and readability.
I'm testing my code with a rule checker with MiSRA support, and of course fixed all warnings.
I'm testing the code with a static analyzer and again fixed all warnings.
What can I do now to test - and improve - the reliability of my OS ? How about the dynamic part ?
Things missing in your list:
If you are not already doing it then also run the unit tests on the target hardware, to check for compiler and hardware issues.
Code reviews, check especially for race conditions
You could also review the generated assembly code, if it is not too big.
Check out the software-testing entry on wikipedia. It's a rather comprehensive description of the different branches of testing. You might find a new idea or two there.
Try Atomic Object's site. Try this also..
Also James Greening.
Try writing some unit tests for the dynamic part. Then run the tests on the target hardware. Run the tests on hardware with more cores Run the tests on hardware with only one core
Vary target system clock speed and run the dynamic tests.
should shake out most timing issues.
Seems like you have done a lot to test your system. I think the next step would get other projects or people to use it. Other users would quickly show you were robustness problems are.