Le test logiciel est une spécialité à part entière qui permet aux grandes entreprises d’avoir un contrôle presque parfait de la qualité de leurs produits. Si vous avez votre propre site internet, votre application mobile ou  un autre type d’application, vous devriez certainement utiliser les techniques de test logiciel.

 

Comment définir le bon niveau de qualité

Je rencontre fréquemment des entrepreneurs qui veulent créer un produit de haute qualité comme Apple J et je réponds souvent par la question suivante : que se passerait-il si vous n’aviez pas un produit d’une telle qualité ?

La plupart de mes clients développent ou fond développer leur propre logiciel et veulent souvent atteindre un niveau de sur-qualité ce qui leur coûte relativement cher que ce soit en test logiciel et surtout en délai.

 

Définir le bon niveau de qualité d’un logiciel ou d’un produit est directement lié à l’impact financier qu’un dysfonctionnement pourrait engendrer. En cas de problème, devrez-vous rembourser 100 000 équipements ou alors devrez-vous simplement consacrer 2 heures de temps à corriger un bug et envoyer une mise à jour logiciel dans la même journée ?

 

Je pense que vous aurez compris où je veux en venir :la meilleure manière d’évaluer le bon niveau de qualité est d’évaluer les pertes financières directes ou indirectes que pourrait coûter un dysfonctionnement. Comme n’importe quel autre type d’assurance, prenez cette estimation et déterminez combien vous seriez prêt à payer chaque année pour éviter ce type de problème. Vous obtiendrez grossièrement le budget que vous devrez allouer à la qualité de votre produit.

 

Quels tests réaliser ?

Il y a des experts très pointus en test logiciel comme James Bach. Pour la plupart des entreprises, le bon compromis est de prendre les bons outils pour répondre aux besoins. Seulement peu d’entreprises peuvent se permettre d’avoir tous les outils de test logiciel tels qu’ils peuvent être décrits parles experts. Faisons donc une petite introduction des bonnes pratiques en la matière en présentant les uns après les autres les méthodes ou outils qui, de mon point de vue, devraient progressivement être mis en place par une startup ou une entreprise en phase de croissance.

 

1 – Les tests fonctionnels

Les tests fonctionnels décrivent quels résultats sont attendus après quelles actions. En suivant un plan de test celapermet à un testeur de suivre le parcours type d’un client et de vérifier que les fonctions de bases fonctionnent. Il est généralement bon de sous-traiter ces tests logiciels afin d’avoir des résultats plus objectifs. Il est également possible d’automatiser ce type de test avec des outils comme Selenium.

2 – Les tests exploratoires

Afin de compléter les tests fonctionnels qui suivent généralement un script bien précis, il est bon de demander au testeur d’utiliser le logiciel librement afin de potentiellement déclencher un comportement inattendu et non anticipé par les développeurs.

 

3 – les tests unitaires

Le test unitaire est une bonne pratique recommandé dès lors qu’on développe un logiciel. Elle consiste à développer un deuxième morceau de logiciel afin de tester chaque fonction du logiciel principal. Le gros avantage de cette pratique est que le résultat est immédiat et que généralement les bugs les plus élémentaires sont éliminés directement par le développeur.

 

4 – Les tests de charge

A partir du moment où une activité est croissante, il devient important de considérer la capacité d’un système à grossir. Pour cela, rien de tel que le test de charge qui consiste simplement à évaluer jusqu’où peut aller votre architecture actuelle. Le principe est très simple, il consiste à simuler des milliers d’utilisateurs sur un environnement de test.

 

5 – Les tests de compatibilités

Ce type de test est un des moyens les plus évidents pour améliorer la qualité d’un produit. Que ce soit un site internet ou une application mobile, ils sont généralement développés et testés sur un type de navigateur, de smartphone ou de tablette. Le test de compatibilité consiste simplement à tester un logiciel sur les différents environnements sur lesquels il peutêtre utilisé.

 

6 – Les tests d’intrusion

Ce type de test est un peu différent des précédents mais reste un point important à considérer pour protéger votre entreprise et la vie privée de vos clients. La priorité de ce type de test est dépendante du domaine d’activité de votre entreprise afin de soigner votre réputation et jusqu’aux données confidentielles de vos clients.

 

7 – Les tests d’utilisabilité

Ce type de test est très intéressant pour comprendre les comportements potentiellement très différents des utilisateurs. Si votre produit est utilisé par un adolescent ou une personne agée leur comportement sera généralement radicalement différent. Ce type de test consiste justement à laisser des utilisateurs de tout âge et de toute catégorie socio-professionnelle utiliser votre application et à analyser leur comportement et leur vitesse de compréhension de votre produit.

 

8 – TDD (Test Driven Development)/ BDD(Behavior Driven Development)

Relativement proches du principe du test Unitaire, le TDD et le BDD sont deux méthodologies légèrement différentes qui consistent à développer une fonction de test avant même de commencer à écrire le logiciel lui-même. Le principe étant d’abord de faire échouer cette fonction de test jusqu’à la faire fonctionner après le développement de la fonction attendue.

Faites des les plus automatiques possibles

Si vous voulez économiser du temps et de l’argent, vos tests devraient être répétables très facilement. Un des principes bien connus depuis quelques années est « l’intégration continue ». Grâce à des pratiques tel que le TDD, il est devenu de plus en plus rapide et facile de tester un logiciel, permettant ainsi de déployer une nouvelle version en production parfois plusieurs fois par jour. C’est une pratique assez difficile à mettre en place pour encore beaucoup d’entreprises mais c’est tout à fait réalisable.

Dans tous les cas, même si vous ne pratiquez pas l’intégration continue, vous devriez envisager d’automatiser au maximum vos tests et d’avoir la possibilité de lancer facilement de nouveaux environnements à la demande (ce qui veux dire autant d’environnements que nécessaire afin de vous permettre de faire vos tests facilement)

 

Et vous comment faites-vous ?

Le test logiciel est un domaine très vaste avec une multitude de manières de faire. Ce qui compte véritablement pour vous c’est que vous atteigniez vos objectifs le plus rapidement possible.

Sélectionnez les outils qui vous paraissent pertinents pour vous, automatisez et documentez tous vos tests.

N’hésitez pas à partager comment vous réalisez vos tests, à ajouter vos commentaires ou des infos intéressantes et si cet article vous a apporté quelque chose merci d’avance de le partager, il pourrait servir à d’autres.

Et comme toujours, si vous avez des questions, n’hésitez pas : l’espace ci-dessous est fait pour ça…