A role may be made up of one of more cookbooks whereas cookbook is a single entity made up of recipes.
So roles can be used to simplify run lists.
Instead of providing a run list with all the cookbooks a role can be provided.
{
run_list : [
"role[test]"
]
}
can be used instead of
{
run_list : [
"recipe[test1]",
"recipe[test2]",
"recipe[test3]"
]
}