Question

Quand un logiciel est développé, différents types de tests sont effectués - unité, intégration, fonctionnelle, manual.In mon projet actuel (WinForms avec serveur SQL), qui a le code existant (pas de tests), nous n'avons beaucoup de bugs . Nous essayons de les supprimer en utilisant la combinaison de tests manuels + (la plupart du temps d'intégration)

Mais, encore quelques bugs peuvent échapper.

Par exemple (un scénario hypothétique) -. Si un client a acheté une valeur de marchandises pour 6 derniers mois, il devrait être donné des rabais sur les achats qu'il fait une fois 6 mois ont le statut de lapsed.His devrait être mis à jour à privilégier

Mais, pour une raison quelconque (bogue dans le code), le système ne fait pas so.How devrait nous attaquer à de tels scénarios? Faut-il avoir un script en cours d'exécution sur la base de données qui recherche des scénarios tels que décrits? Une autre extension du scénario pourrait être, le client doit être envoyer un cadeau une fois qu'il est privilégié, mais le système manque de le faire.

Pensées

Était-ce utile?

La solution

« Faut-il avoir un script en cours d'exécution sur la base de données qui recherche des scénarios tels que décrits? »

Voulez-vous dire "mettre un script dans la base de données pour corriger le problème", puis pas .

NO. Jamais. En aucun cas. Travailler autour d'un bug en ajoutant une logique particulière spéciale cas est vraiment une très mauvaise idée.

  1. Quand cette logique particulière spéciale cas a ses propres bogues, vous avez ajouté du code bogué pour essayer de code bogué correct. Une perte nette.

  2. Lorsque vous essayez d'améliorer le système, vous avez cette logique propre cas spécial qui ne fait pas de sens.

    a. Si vous êtes chanceux, vous a corrigé le bogue, il était censé travailler autour, et il sera redondant. Et maintenant? Quelle copie pour supprimer?

    b. Dans le cas contraire, il sera en contradiction avec tout autre code. Et maintenant? Ce qui est vrai?

Si vous voulez dire « mettre un script dans la base de données pour aider à trouver et déboguer le problème », alors oui. Pendant une courte période, utiliser tous les outils à votre disposition pour trouver et corriger les bugs. Une fois trouvé et corrigé, ce script est alors inutile et doit supprimer.

Si vous voulez dire « écrire un script dans la base de données pour tester l'application », alors oui. C'est ce que les scripts de tests unitaires sont pour. Utilise les.

Il est préférable de créer des tests unitaires que de créer des scripts que vous avez dans la base de données. Les tests unitaires sont la meilleure approche.

Autres conseils

Vous devriez avoir un test automatisé de bains en place. Ce test suite mettra en œuvre tous les scénarios que le cahier des charges exige. Comme on ne peut attendre six mois pour vérifier que les travaux d'actualisation, la mise en œuvre réelle est remplacée par une maquette mise en œuvre (l'exemple est en java, mais les mêmes principes dans d'autres langues), que par exemple « simule » que 6 mois se sont écoulés. On peut utiliser les assertions pour automatiser les tests.

Une fois que vous avez toute épreuve suite prêt, si tous les tests passent après (comme avant) un refactoring / modification du code, on peut être sûr qu'aucune caractéristique a rompu en raison du refactoring.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top