Les caractéristiques de la qualité du logiciel (facteurs externes et internes) peuvent être regroupées en quatre grandes catégories : l’utilité, l’utilisabilité, la maintenabilité et la portabilité.
L’utilité fait référence à l’adéquation fonctionnelle et regroupe les caractéristiques suivantes : fiabilité, efficacité et aspect humain. La fiabilité ou robustesse du logiciel peut être définie comme étant la probabilité que le logiciel se comporte tel qu'espéré durant un instant donné, c’est aussi l’aptitude du logiciel à fonctionner dans des conditions anormales. Il s’agit plus explicitement de la précision des traitements, de l’intégrité du logiciel c'est-à-dire l’aptitude du logiciel à protéger son code et ses données contre des accès non autorisés.
L’efficacité fait référence à l’utilisation optimale des ressources matérielles : économie de mémoire, rapidité d’exécution. Les aspects humains regroupent la facilité d’apprentissage, la facilité d’utilisation, de préparation des données, la documentation fournie à l’utilisateur, l’accessibilité, la facilité d’interprétation et de correction des erreurs.