Génération automatique de tests unitaires pour Java? [fermé]


Un outil pour générer automatiquement des tests unitaires pourJava code?

MISE À JOUR: L'utilisation principale est de générer rapidement des tests unitaires pour le code hérité qui va être refactorisé. Pas besoin de synchroniser automatiquement les tests avec le code après la génération automatique.


Presque la même question a été posée ici, mais la réponse était pour. NET au lieu de Java (Pex était la réponse acceptée):

Génération automatique de test unitaire cas pour. NET et Java

Author: Community, 2010-01-25

6 answers

  • CodePro Analytix a un module de génération de test JUnit qui semble faire ce que vous voulez. Voir le Guide de l'utilisateur .
  • [CoView] était un produit à un prix raisonnable, à seulement 9,99 per par utilisateur et par an, malheureusement, il n'existe plus.
  • AgitarOne Automated JUnit Generation mérite d'être étudié.

Les trois produits ont une option d'essai avant d'acheter, vous pouvez donc les utiliser pour comparer le code généré à un petit sous-ensemble de votre application.

 16
Author: Paul Wagland, 2018-07-02 06:45:55

Outils Commerciaux:

  • AgitarOne semble être le plus grand acteur dans le domaine. Il existe également essai de 30 jourset une interface Web gratuite appelée JUnit Factory. Il y a un examen indépendant de l'utilisation de l'outil en ici, par exemple. La génération de tests d'AgitarOne se concentre fortement sur les tests de régression.
  • Jtest est un autre grand joueur, qui existe depuis 1998. Un essai gratuit existe. AgitarOne et Jtest ont été attribué plusieurs fois, et ils sont tous deux basés sur Eclipse ID: s.
  • SilverMark Test Mentor, Java Edition est un produit commercial qui peut apparemment également créer des tests basés sur du code java. Ce produit je n'ai aucune expérience avec.

Outils Gratuits:

  • CodePlex AnalytiX était un outil commercial (c'était le premier plugin commercial pour Eclipse en 2001), mais depuis que Google a acheté la société qui le développait, le produit a été publié en gratuit. C'est unE complet basé sur Eclipse et finaliste du Jolt Award dans la génération de test à 2007. Les fonctionnalités sont intéressantes, mais l'outil n'a pas été mis à jour depuis longtemps, il ne fonctionne donc malheureusement pas avec les versions actuelles d'eclipse et semble avoir des problèmes avec le code nécessitant java >= 1.5.
  • EvoSuite est un vainqueur de SBST (Basé sur la Recherche Logiciel de Test) " 13 unité de génération de test de la concurrence ainsi que SBST '17 unité de génération de test concours . Il existe un plugin Eclipse, une interface Web et une version en ligne de commande de l'outil. Il existe un critère de régression documenté, mais apparemment cela ne fonctionne pas encore - les tests ont généré une cible pour la couverture de branche, la couverture de mutation faible ou la couverture de mutation forte.
  • Randoop utilise une approche de génération de tests aléatoires dirigée par rétroaction. L'outil existe depuis 2007 et est en développement continu. Randoop peut produire à la fois des tests de régression et tests de recherche d'erreurs. C'est un outil de ligne de commande robuste et fiable, et le plugin Eclipse existe également.
  • Palus prétend utiliser à la fois l'analyse dynamique et statique, et s'appuie sur Randoop. Ses auteurs affirment qu'il a été utilisé en interne chez Google. Mon expérience avec ce logiciel est qu'au moins la version actuelle (0.2) semble avoir des problèmes internes et qu'elle ne semble pas bien évoluer.
  • Daikon, Eclat, Javalanche, Java PathFinder, JCrasher, jWalk, Korat, RecGen et ReCrash sont les outils gratuits qui sont disponibles aussi bien.

Notez que les tests générés par Jtest et AgitarOne dépendent tous deux de coureurs sous licence et qu'ils ne peuvent pas être exécutés si leurs plugins ne sont pas intégrés. Ce n'est pas le cas pour les outils gratuits que j'ai testés, qui génèrent des tests indépendants.

Avertissement: Je ne suis affilié à aucun de ces outils mais je l'ai fait recherche universitaire sur le sujet.

 43
Author: eis, 2017-06-22 05:33:25

Je pense qu'Agitar avait un outil comme celui-ci appeléAgitarOne . Je pense que vous pouvez toujours l'obtenir, mais assurez-vous que l'entreprise est toujours là.

 3
Author: Dror Helper, 2010-01-25 11:47:09

NetBeans le fait automatiquement à partir des fichiers source Java (je suppose que les autres ID aussi).

Peut-être que vous pourriez jeter un oeil dans le plugin junit (le lien est actuellement vers le bas: - ()?

 3
Author: Karussell, 2010-01-25 12:18:31

Netbeans 8 a une capacité intégrée pour construire des tests unitaires qui sont plus que des stubs. Pour utiliser cette fonctionnalité:

  1. Ouvrez la classe que vous souhaitez tester.
  2. Sélectionnez Create/Update Tests dans le menu Tools.
  3. Sélectionnez les fonctionnalités que vous souhaitez.
  4. Ouvrez le test unitaire créé et terminez les parties restantes du test.
 2
Author: james.garriss, 2016-02-18 18:05:22

Que diriez-vous d'utiliser Randoop https://randoop.github.io/randoop / . Cela fonctionne à la fois pour Java et. NET

 2
Author: user2579911, 2017-04-18 22:57:49