Sont BDD tests tests d'acceptation?
Ou, si vous avez BDD tests, avez-vous besoin de quelque chose comme Fitnesse?
Vous devez vous connecter pour publier un commentaire.
Ou, si vous avez BDD tests, avez-vous besoin de quelque chose comme Fitnesse?
Vous devez vous connecter pour publier un commentaire.
BDD "tests" existent à différents niveaux de granularité, tout le chemin jusqu'à la première vision du projet. La plupart des gens savent à propos des scénarios. Un peu de gens se souviennent que BDD a débuté avec le mot "devraient" comme un remplacement pour JUnit du "test" - comme un remplacement pour le TDD. La raison, j'ai mis "tests" entre guillemets est parce que la BDD n'est pas vraiment à propos de l'essai; il est axé sur la recherche d'endroits où il y a un manque ou l'inadéquation de la compréhension.
En raison de cette attention, les conversations sont beaucoup plus importants que la BDD outils.
Je vais le dire encore une fois. Les conversations sont beaucoup plus importants que la BDD outils.
De tests d'acceptation n'a pas de mandat de de la les conversations, et travaille généralement à partir de l'hypothèse que les tests que vous écrivez sont le droit des tests. Dans la BDD, nous supposons que nous ne savons pas ce que nous faisons (et ne savent probablement pas que nous ne savons pas). C'est pourquoi nous utilisons des choses comme "Donnée, Quand, Alors" - de sorte que nous pouvons avoir des conversations autour de scénarios et /ou au niveau de l'unité d'exemples. (Ce sont les deux niveaux de la plupart des gens sont familiers avec l'équivalent de tests d'acceptation et les tests unitaires - mais il va jusqu'à l'échelle).
Nous ne les appelons pas des "tests d'acceptation" parce que vous ne pouvez pas demander à une personne d'affaires "s'il vous Plaît m'aider avec mon test d'acceptation". Ils vont vous regarder avec un vraiment bizarre, squinty regard et puis vous licencier comme que geek girl. 93% d'entre vous ne voulez pas que.
Essayer "je voudrais vous parler du scénario où..." à la place. Ou, "Pouvez-vous me donner un exemple?" L'une de ces sont bonnes. En les appelant "les tests d'Acceptation" commence à faire les gens pensent que vous êtes en train de faire des tests, ce qui impliquerait que vous savez ce que vous faites et vous voulez juste pour faire sûr que vous avez fait il. À ce stade, les conversations ont tendance à se concentrer sur la façon dont rapidement vous pouvez obtenir la mauvaise chose, au lieu de sur le fait que vous sortez quelque chose de mal.
Et vous obtenez la mauvaise chose. Vraiment, honnêtement, vous êtes. Même si vous pensez que vous ne l'êtes pas, c'est seulement parce que vous ne comprenez pas de deuxième ordre de l'ignorance. Vous ne savez pas que vous ne savez pas, et c'est OK, tant que vous avez trouvé les endroits où vous pourrait sais que vous ne connaissez pas. (Vous ne trouverez pas tous d'entre eux. Ne laissez pas la catégorisation paradoxe de vous tenir jusqu'à la nuit.)
La seule façon de vraiment obtenir ce droit est d'obtenir tous les exigences à l'avant, et vous savez ce qui arrive quand vous essayez de faire cela. C'est le droit. C'est Cascade. Rappelez-vous les heures supplémentaires? Le week-end de travail? Les sept années où pas une chose que vous avez créé, il fait de la production? Si vous voulez éviter cela, vous n'avez qu'une seule chance: supposons que vous avez tort, avoir des conversations à ce sujet pour être moins mal, alors acceptez que vous êtes encore mal et y aller de toute façon. L'écriture de tests trop tôt signifie que vous devez même plus chance d'être mauvais, et maintenant, c'est plus difficile à changer et tout le monde pense que vous avez raison et le PM est de mesurer votre vitesse et maintenant vous avez à cœur d'être faux pour un autre 2 semaines. Et - pire - que vous êtes sur le point de test que vous avez tort, trop.
Une fois de plus. Les conversations sont beaucoup plus importants que la BDD outils.
S'il vous plaît, s'il vous plaît, ne pas se concentrer sur les outils. Les outils ne sont qu'un mécanisme de saisie des conversations et de s'assurer qu'ils sont lus dans le code. Les scénarios ne sont pas un remplacement pour les conversations, pas plus que de 3 x 5 index est une carte de remplacement pour les exigences.
Cela dit, si vous doit commencer avec un outil, mis Slim derrière Fitnesse sorte qu'il peut fonctionner belle Donné /Quand /Arrêtera sans avoir à jouer avec l'Ajustement des tableaux et des accessoires. GivWenZen est basé sur Slim et l'un ou l'autre des roches. FitSharp est l'équivalent pour ceux d'entre vous dans le .NET espace. Ou tout simplement utiliser le Concombre, ou SpecFlow, ou frapper un peu personnalisé DSL* qui fera le travail d'amende pour des années.
La transparence: *j'ai écrit qu'un seul. Et des morceaux de JBehave. Je souhaite que nous avions appelé "Ne pas-se concentrer-sur-BDD-outils-de se Comporter". J'ai peut-être fortement impliqués dans d'autres bits de la BDD. Plus Dan le Nord va m'acheter une pinte si je peux obtenir ce message, il n'est donc pas exactement un avis impartial.
Peu importe -, les conversations déjà. C'est juste des gens. Allez parler.
Je ne sais pas si il y a une telle chose, à proprement parler, comme un "BDD de test". BDD est une philosophie qui suggère que la meilleure façon d'interagir et de collaborer avec les intervenants afin de compléter un projet complexe. Il n'est pas directement faire de toutes les prescriptions pour la meilleure façon d'écrire des tests. En d'autres termes, vous aurez probablement encore ont tous les types de tests (y compris les tests d'acceptation) en vertu d'un BDD-philosophie du projet.
Quand vous entendez parler de "BDD cadres", le haut-parleur signifie généralement un cadre pour la rédaction de tous vos habituels types de tests, mais avec une BDD de torsion. Par exemple, dans RSpec, vous avez encore écrire des tests unitaires; il suffit d'ajouter la BDD de la saveur à eux.
Tandis que la BDD est plus grand que le champ d'application de juste des tests, il y a en effet BDD tests. Ces tests sont des Tests Unitaires qui suivent la BDD langue.
Donné un peu de contexte initial (les données),
Lorsqu'un événement se produit,
puis de s'assurer de certains résultats.
Il y a quelques bonnes BDD cadres disponibles en fonction de votre langue de préférence.
JBehave pour Java
RSpec pour Ruby
NBehave pour .NET
Je tiens à faire une distinction entre les "specs" et "tests".
Si je suis couvrant une méthode appelée
GetAverage(IEnumerable<int> numbers)
, je vais écrire plus ou moins standard de test de l'unité.Si je suis couvrant une méthode appelée
CalculateSalesTax(decimal amount, State state, Municipality municipality)
, je suis toujours en cours d'écriture de l'unité de test, mais je vais l'appeler un cahier des charges, parce que je vais le changer (1) pour vérifier le comportement de la routine, et (2) parce que le test lui-même permettra de documenter à la fois la routine et de ses critères d'acceptation.Considérer:
JBehave (et NBehave récemment ajouté la même support) travailler avec des tests réguliers des fichiers afin de bien que de nombreux autres cadres d'ajouter "BDD goût tounit tests", le texte du comportement fondé sur les spécifications/exemples créés avec JBehave sont adaptés pour les tests d'acceptation. Et non, vous n'avez pas besoin de fitnesse pour que.
Pour avoir une idée de comment cela fonctionne, je suggère JBehaves 2min tutoriel.
Pour la BDD de test de Flex, vous pouvez essayer GivWenZen-flex vérifier http://bitbucket.org/loomis/givwenzen-flex.
Cheers,
Kris
xBehavior BDD tests de les mettre en œuvre sont robo-utilisateur basée sur des critères d'acceptation.
xSpecification BDD tests sont normalement les tests unitaires et sont peu susceptibles d'être acceptable critères d'acceptation.