Add tests for edit action, also redefine the factory to produce program's code.
Complete the edit action.
Rewrite the code to generate a random 6-letter code again.
Add a test for the create action in programs controller.
Complete create action.
Add a test for redirection after program creation.
Add tests for creating a program with invalid attributes.