During the development lifecycle you have a number of ways to move code to another instance for testing.
Update sets are the tried and true method that has been around since day one. This is a great option if you just want to test code in another environment. This can also be useful when developing and testing patches on an instance that already has the application and data. For Fuji scoped applications you should always publish the application to an update set for the first time you move an application to a new internal instance. This will ensure the scope data is included. Once the application has been deployed to the other instance you should be able to get away with migrating the application specific update set that contains just the updates.
Team development is another great option for synchronizing code between multiple development and test instances during your development phases. As with update sets you need to be careful on pulling only specific application files, especially if your application is in a Fuji app scope. For example, your development (authoring) instance has a business rule that is part of a scoped application. If you pull this rule into another instance that doesn't yet have that application's scope, the rule will be imported without a scope so it will now be in the global scope.
The last option, and new to Fuji, is the ability to publish an application to another internal instance through the app store mechanism. This replicates the functionality that your customers would experience when downloading and installing your app from the store. Both update sets and team development pulls will bring your app into another instance just as it exists in the development instance. If you are using file protection, the records will not be protected using these methods. Since publishing to another instance goes through the store deployment it will honor and enable file protection. This allows you to completely replicate testing new and upgrade deployments to external instances without actually publishing to the store.
Be sure to understand and experiment with these different methods so you'll know when it's best to use each.