Testing strategies for testing a Scheduler
We have developed an in-house Scheduler which is based on Rate-monotonic scheduling. We have 6 tasks (5 actual tasks and 1 idle task). Our scheduler works on 1msec timer interrupt. Before sending it out in real world, We want to test it thoroughly.
What are the best and/or commonly used strategies for testing a Scheduler?
One thing we performed was added functions which require very high processing time in each tasks and checked whether scheduler still switches on given deadline or not. But I feel this is not enough to gain the confidence.
Here's some ideas from similar tests:
Randomize, you are not smarter then the designer so don't try to find the hole in the design- randomize your tests
Vary load conditions from light to 100%+ on each task and on all of them together
Look for producer-consumer situations that can hang tasks
Look for accesses to peripherals and IO
The bottom line is that you can't test your scheduler directly (at least no cost-effectively) so you have to exercise it from the outside.