Software Versioning Best Practices

Software Versioning Best Practices

Why need to bother about versioning?

Versioning apps/software helps to keep track of what’s been added/removed at what point. It can get real hectic especially in the early stages when you’re releasing new features and bug fixes.

Where you can keep track of this?

If you are using Github for source controlling then you can use git tag for version your releases. The option is available on repository under releases. From there you can just tag a commit or particular branch that you wish to add versioning. Further you can title it and describe what includes on that version.<git hub repository path>/releases/new

How to define versions?

There are multiple ways of defining versions and it's depend on the organization/person who is using it.

  • [Major].[Minor].[Patch]-[Modifier if available]
  • [Year].[Month].[Day].[Hour]
  • [Year].[Month].[Day].[Increment]
  • [Major].[Minor].[Last two digits of year][Day of year number].[Increment]

[Major].[Minor].[Patch]-[Modifier] is the most commonly used versioning method. In this type of versioning define as follows.

  • [Major] - Increment first digit by 1 if changes that are directly affecting external API’s and Integrations, etc..
  • [Minor] - Increment second digit by 1 on new functionality addition or changes on existing feature
  • [Patch] - Increment the last digit by 1 for bug/patch fixes
  • [Modifier] - Optional tag ('dev', 'alpha', 'rc1', etc...)

All other versioning types are pretty straight forward to understand.

Version control isn’t only for dev teams anymore. Applying version control for QA teams can benefit from same as dev teams.

  • accelerate implementation of test strategy
  • keep up and closely align with development
  • can create record of how tests are changed and evolved with app/software
  • helpful for define QA metrics

But still most of the QA teams are not using this as a practice. Applying version control for QA process is not a hard thing if you are already using some form of versioning on dev teams. Only need is trackable test management tool same as dev team is using source controlling tool.

Happy Testing !!!!