I was asked to improve the workflow templates for promotion request and change management processes but i have a problem that is I don't have any test environment to test it before released. If I make any mistake that causes a lot of problems.
What should i do ? I really need your opinions.
First option would be to create a test/development secondary environment.
Second option is to create a copy of the ones you want to change and test them in off-hours by enabling/disabling between the live and test versions.
Third option is to create a copy at a lower level, original in org, copy in product, and then enable/disable for your testing. By default the system will use the product one first, if enabled, and the org one if the product one is disabled.
Ben's first option is the clear winner. It isn't difficult to create a clone of production and run it as a VM. While they get you through the immediate need, the other options can (usually will) result in legacy test artifacts in production that affect future updates and upgrades. This prompts further cleanup efforts and unnecessary headaches.
Windchill business administration recommended practice is to do all configuration development and testing in a separate system. Abandoned concepts in test don't affect production. Any 'try it in production' techniques remind me of the most interesting man in the world t-shirt quote:
"I don't always test my code. But when I do, I do it in production."