Une version d'un logiciel correspond à un état donné de son évolution. Elle est souvent associée à une numérotation qui permet de l'identifier, voire dans certains cas à un nom symbolique.
Pour les logiciels de nature commerciale, on peut être amené à trouver deux numérotations: une numérotation interne à l'entreprise, et une numérotation présentant un caractère commercial. Ceci permet de séparer l'aspect marketing et/ou contractuel de l'aspect technique (nombreuse versions). Par exemple, le traitement de texte Word existe en version Word 2000 (version commerciale), ce qui correspond à la version 9.0.2812 (version technique). Toutefois cette différence n'existe pas en tant que tel dans les logiciels libres, vu leur mode de diffusion, ainsi OpenOffice existe en version 2.2.0, mais est connu sous le nom de OpenOffice 2.2.
Un numéro de version est généralement composé d'une suite de nombres séparés par des points. Les nombres sont ordonnés du plus significatif au moins significatif.
Une évolution du premier nombre correspond à une refonte (relative) du logiciel, tandis que le dernier correspond à une évolution mineure.
À titre d'exemple, la version 2.6.10 du noyau Linux indique la 10e version de la 6e version de la 2e version de Linux.
On parle aussi d'édition pour désigner des évolutions mineures d'une version. Dans l'exemple de la version 2.6.10, la version sera 2 et l'édition la 6.10 ou bien la version la 2.6 et l'édition 10 (tout dépend des habitudes de l'éditeur ou de la communauté de développement)
Traditionnellement, la première version fonctionnelle d'un logiciel est notée 1.0. Certaines versions de logiciels sont notées 0.x ou 0.x.x, indiquant par là même que le logiciel n'est pas abouti.
Outre la numérotation qui permet d'identifier une version précise, il est courant de qualifier certaines versions afin de dénoter leur fonction dans le cycle de développement du logiciel (phases de développement).
En conception de programme la terminologie phases de développement indique l'état d'avancement à travers les étapes dans le respect des spécifications élaborées aux étapes précédentes et ce qu'il reste à accomplir.
Une phase de développement est associé à une des étapes d'un cycle de développement.
Un prototype est un premier jet de l'application, ne disposant que de peu - voire pas - de réelles fonctionnalités, et permettant d'avoir un aperçu visuel de l'objectif recherché. On parle également de maquette.
Une version alpha n'est pas censée être accessible à un large public : c'est une version interne. C'est la première phase de développement concret du logiciel après le codage de l'application. Généralement, un produit en test alpha — on utilise couramment le terme anglais alpha-test — n'a pas toutes les fonctionnalités prévues dans le produit final, contrairement à un produit en test bêta qui devrait être complet. L'alpha est donc dépourvue de certaines fonctionnalités, et contient un nombre de bogues encore important.
Le test bêta — on utilise fréquemment le terme anglais beta-test — est la deuxième période d'essai d'un produit informatique avant sa publication. Il est précédé par le test alpha. Un produit en période de test bêta est généralement soumis à un nombre important ou représentatif de personnes, souvent bénévoles, pour qu'elles l'utilisent et rapportent les problèmes rencontrés ainsi que leurs suggestions ; on utilise fréquemment le terme franglais " beta-testeur " pour désigner ces testeurs bêta. C'est la phase de test la plus importante avant la publication du produit, car le test bêta n'est lancé que quelques mois avant la date de sortie du produit afin de régler les derniers problèmes.
Les fonctionnalités de la version bêta sont figées. Le test bêta sert essentiellement à trouver des bogues résiduels, ou bien à modifier l'interface utilisateur.
Il existe deux formes de test bêta :
Une telle version du logiciel correspond usuellement, à quelques erreurs près, à la version " finale " ou " stable " dudit logiciel ; elle est mise à disposition à des fins de " tests de dernière minute " visant à déceler les toutes dernières erreurs subsistant au sein du programme.
Cette terminologie correspond à une pratique connue et utilisée, mais pas par tout le monde. Une absence de consensus sur la définition précise et spécifique de ces termes empêche de considérer qu'il s'agit plus d'une convention associée au projet.
Ainsi, une version nommée " 2.5.21 " pourrait avoir le sens suivant :
Le numéro de version peut être stocké dans le fichier de configuration du logiciel. Le fichier Prefs.js de Mozilla Thunderbird contient ce numéro de version. Généralement, on trouve les informations de version d'un logiciel dans l'onglet "?" de la barre de menu, en sélectionnant "à propos".