Forum Programmation.c++ information sur un logiciel

Posté par .
Tags : aucun
0
14
juin
2005
Bonjour a tous,

Je cherche le nom d'un type logiciel et savoir s'il en existe des versions libres. Je vais donc vous faire un descriptif de ce logiciel.

J'ai un projet c++ relativement volumineux (320 classes). Il est à vocation scientifique et il est donc critique de valider les différentes parties du code. Pour cela, je sais que certains programmes utilisant ces classes donnent des résultats viables avec certains jeux de paramètres.
Je souhaiterais savoir à partir des ces tests, quels sont les classes et méthodes qui sont valides. Je ne veux pas nécessairement une validation fine (c'est à dire une validation qui donnent les restrictions sur les paramètres d'appel d'une méthode). L'idéal serait que ce soit couplé à un logiciel de contrôle de versions (de préférence Subversion) permettant de savoir si une nouvelle version invalide certains tests. Une interface web pour visualiser les résultats serait aussi un grand plus.

Alors, est-ce que cette perle rare existe ou dois-je sortir toute mon armada de langages de programmation et sacrifier un grand nombre de soirées et de week-ends?
  • # CruiseControl

    Posté par (page perso) . Évalué à 5.

    CruiseControl correspond exactement à tes attentes, pour plus d'info :
    http://cruisecontrol.sourceforge.net/(...)
    et pour intégration C++ :
    http://confluence.public.thoughtworks.org/display/CC/UsingCruiseCon(...)
    • [^] # Re: CruiseControl

      Posté par . Évalué à 1.

      Merci pour les renseignements!

      Si tu as déjà travaillé avec CruiseControl, peut-être es-tu en mesure de m'aider à comprendre son fonctionnement. J'ai lu la doc et fait quelques recherches sur google à partir de quelques mots clés.

      CC est capable de determiner l'impact des changements mais jusqu'à quel niveau (i.e. c'est le fichier, classe ou méthode qui a provoqué le changement de comportement)?

      Peut-on lui dire explicitement qu'un programme donné fonctionne à un instant t? A la première lecture, j'ai l'impression qu'il faut fournir un jeu de paramètres d'entrée et un résultat de référence pour qu'il puisse vérifier par lui même qu'il reproduit, après compilation et exécution, la même chose. Dans mon cas (je sais je suis exigeant ;), certains tests ne peuvent être reproduits dans des temps raisonnables.

      Comment CC se compare avec un produit tel que CAST Knowledge Suite?
      • [^] # Re: CruiseControl

        Posté par (page perso) . Évalué à 2.

        Euh désolé en fait j'ai jamais travaillé avec :)
        Tout ce que j'ai compris c'est que c'est un serveur d'intégration continue qui en gros s'amuse à compiler le code souce selon un script (au pif : un makefile) puis à faire passer au programme une batterie de tests, les tests les plus évidents étant bien entendus les tests unitaires, par exemple à l'aide de CppUnit. CppUnit est capable de lancer une batterie de tests sur une classe particulière, et la granularité dépendra de la rédaction de tes tests. Si tu tests chaque méthode individuellement tu pourras bien évidemment obtenir cette précision dans le rapport d'erreur éventuel.

        J'ai comme dans l'idée que tu peux déjà commencer par te créer une batterie de tests unitaires et apprendre à te servir de CppUnit.

        Si tes tests ne peuvent être reproduits dans des temps raisonnable je vois pas trop ce que tu espères, un miracle pour que CruiseControl devine à l'avance quel sera le résultat sans avoir à l'effectuer vraiment ?
        • [^] # Re: CruiseControl

          Posté par . Évalué à 1.

          Désolé, je ne me suis pas assez clairement exprimé ;)

          En fait, j'ai une série de programmes qui n'utilisent pas forcément les même classes. L'idée est de pouvoir valider à un moment donné (soit manuellement soit automatiquement) et de voir lorsque je fais de nouvelles mise à jour, à quel moment j'ai un impact possible sur un programme précis.

          Finalement, il s'agit plus de regarder les dépendences que de faire des tests automatiques. Je me doute bien que cela est moins précis. Il ne s'agit pas de tracer exactement l'exécution du code et il peut très bien y avoir des dépendences qui n'en sont pas (lors d'une condition jamais réalisée). Mais au moins, je suis prévenu qu'il peut y avoir un impact.

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.