Quelles mesures prenez-vous pour  » casser  » le logiciel ?


Je dirais que nous l'utilisons de manière intentionnelle, ainsi que de manière non intentionnelle. Souvent, il't difficile de vraiment comprendre ce qu'est une utilisation intentionnelle, mais garder un esprit ouvert peut parfois aider à trouver des bugs très intéressants. Le mot " briser " est un peu trompeur aussi, parce que souvent nous trouvons des bogues qui ne détruisent pas vraiment le système, mais qui sont néanmoins des problèmes.

Pour moi, j'aime établir un plan sur la façon de tester une fonctionnalité ou un produit avant de commencer, et selon la fonctionnalité, il contient généralement une partie ou la totalité des catégories de test suivantes :

  1. Scénario clé's : La fonctionnalité fonctionne-t-elle comme elle a été spéci'ée. Si un client de messagerie instantanée ne peut pas envoyer de messages instantanés à des personnes, alors vous avez un problème.
  2. Scénario négatif's : Comment la fonction fonctionne-t-elle si quelque chose de mauvais se produit. Si le récepteur perd la connectivité réseau juste au moment où il'est sur le point de recevoir un message, le client indique-t-il à l'expéditeur que le message n'a pas été remis, ou fait-il comme si tout était cool ?
  3. Capacité/Limites : Quelle quantité de données la fonctionnalité peut-elle gérer et comment la gère-t-elle ? Si quelqu'un tape un roman dans la fenêtre de chat et y joint des films, des images, etc... le client va-t-il se planter ?
  4. Performance : Quelle est la rapidité de réponse de votre fonctionnalité ? Si j'envoie un message à quelqu'un à l'autre bout du monde, est-ce que cela prend beaucoup de temps pour l'atteindre ?
  5. Scalabilité : comment votre fonctionnalité évolue-t-elle pour répondre à une demande accrue ? Si mon client de chat devient vraiment populaire et que la base d'utilisateurs monte en flèche, puis-je ajouter plus de ressources à mes serveurs afin de continuer à servir les utilisateurs comme ils l'attendent ? S'agit-il d'une relation linéaire et rentable ?
  6. Localisation/mondialisation : Ma fonctionnalité peut-elle gérer différentes langues, le formatage du texte, l'encodage, les formats de devises, les formats de date et d'heure ?
  7. Sécurité : Dans quelle mesure votre logiciel est-il sécurisé ? Si je peux mettre un renifleur de paquets sur le réseau et voir une conversation entre deux clients, est-ce correct ?

Pour ce qui est d'effectuer les étapes ci-dessus, cela varie vraiment sur la technologie et les exigences du système. Les testeurs débutants se contentent généralement de faire des tests en boîte noire, où ils'ne savent rien du fonctionnement de la fonctionnalité. Les testeurs avancés incluent généralement aussi des tests en boîte blanche, où ils comprennent le fonctionnement interne de leur fonctionnalité afin d'effectuer des tests plus délicats.

Au fur et à mesure que les bugs sont découverts et corrigés, c'est souvent une bonne idée de passer en revue la liste des bugs du produit et de rechercher des modèles et des zones de faiblesse évidentes. Cela donne au testeur une idée de l'endroit où il/elle peut trouver d'autres problèmes.

.