In this scenario, there is one development team where each developer works on a Main Development Version connected to GXserver. In addition, there is one test team.
At one point during development, it is decided that the Main Development Version should be frozen and sent to Test. The idea is to wait as long as possible before freezing the Main Development Version to be sent to Test, so as to ease changes between versions.
After freezing the Main Development Version, the development team continues to work on the KB, while the test team starts to test it. The development team continues to work on the Main Development Version and it may also create more versions of the KB, but the version that was frozen for Test is used only to fix bugs reported by the Test team.
Once the development team makes the corresponding fixes to this version, the Test team makes an update of this version to obtain these fixes.
The cycle between Development and Test is as follows:
- When the application is sent to Test, the Test team performs a Create KB from Server of the Test version
- The Test team starts to make tests and finds errors
- The Development team fixes those issues in the Main Development Version, and if necessary, it sends the fixes to the Test version
- Next, the Development team commits the change to update the Test version on the server
- The Test team updates the Test version in their local KB and obtains the changes
The cycle ends when the Test team doesn't find any more bugs and the application is ready to be deployed. In order to do this, the Test version is frozen and the version that will be deployed is created.
When the Development team has to change more than one version, it makes the changes in all versions. Every time a version is changed, it has to commit that change in the server, and thus the version saved in the server is updated.
The Development team has one KB for each version saved in the server, and when it performs a commit from a KB it uses the version associated to that KB. Or it may also have a KB with all versions, make a change to one version in particular, commit and update that version on the server.
All versions are defined and maintained on the server.
The Test team works with only one KB that is associated with only one version on the server.