I've been lucky enough to be involved in many of the Fuji development tools since early alpha stages. One tool I've seen a lot of progress in is a conversion tool that allows you to convert pre-Fuji application update sets to scoped application.
During the development lifecycle you have a number of ways to move code to another instance for testing. Here's a quick review of each.
The introduction of app files a few releases ago almost made me forget about update sets completely. For the applications and environments I was working with I solely relied on the "Publish to update set" option to create a full update set from all of the application files for the application that I was working on.
When creating new tables for an application they can generally be classified into two categories, configuration and data. Configuration records are general application settings or process information, and usually needs to exist for the application to work correctly. This means that they should be consistent between dev, test, and production instances so we need a way to migrate these records when they are changed. In pre-Fuji releases configuration data tables were defined by using the update_synch attribute on the table. Inserts and updates of records on update_synch tables are captured in update sets which can be moved between instance environments.