An even better idea for developers is to reduce limits (memory, PIDs, file handles) and start triggering those rarely-used (or non-existent) error handling code paths.
Also, I think I would prefer process sbrk failure to OOM killer activation. So setting vm/overcommit_memory=2, overcommit ratio to 80%, a decent swap size, and code actually handling errors. IE consistency versus randomness.
Not that randomness is bad for testing, cf Chaos Monkey: https://github.com/Netflix/SimianArmy/wiki/Chaos-Monkey