IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

test et validation de votre programme!!!


Sujet :

C

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 42
    Par défaut test et validation de votre programme!!!
    comment vous vous y prenez pour tester et valider un gros programme, quels sont les tests que vous mettez en place???

  2. #2
    Expert éminent

    Avatar de Anomaly
    Homme Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 380
    Billets dans le blog
    1
    Par défaut
    Le mieux, ce sont les tests automatiques, réalisés avant (ou pendant l'écriture du programme), à lancer après chaque modification, afin de laisser le programme "dans le bon chemin". Ceci vient de la méthode XP. Gros défaut : presque inapplicable pour un programme en interface graphique

  3. #3
    Membre éprouvé Avatar de Metal Tom
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    119
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 119
    Par défaut
    Ca dépend du programme, du langage dans lequel il est écrit, etc. En CAML par exemple tu peux faire des démnstrations de ton programme.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 30
    Par défaut
    Salut,

    Une bonne solution est de faire de senario de tests et de savoir quelle partie du code n'a pas ete teste. IL y a une soft tres bien mais proprietaire chez Rational tu peux dl une version d'essai, le nom c'est Purify.

    Sinon tu peux aussi tester le comportement de ton programme.
    Il exite est utilitaire gnu pour tester la memoire utilisee par les differents processus et fonction (sur le site du gnu : VALGRIND). Sur un gros projet ca permet de prevenir des segfaults ou des fuites de menoires. Il exite aussi des utilitaires pour tester la charge CPU utilisee par les fonctions de ton programme ca peut te permettre d'optimiser ton programme (Gprof sur le site du gnu).


    A+

  5. #5
    Expert éminent

    Avatar de Anomaly
    Homme Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 380
    Billets dans le blog
    1
    Par défaut
    Bonjour toto_titi,

    Purify est à ma connaissance un outil pour déceler les fuites de mémoires, les utilisations incorrectes d'API etc... Il permet de voir ainsi si le programme n'aura pas de problème de fonctionnement suite à des défaillances du programmeur dans la gestion de sa mémoire et de l'appel des APIs, mais à ma connaissance, ce n'est pas un outil destiné à valider un programme (valider dans le sens : vérifier que le programme fait ce qui a été dit dans le cahier des charges).

  6. #6
    Membre éclairé
    Inscrit en
    Novembre 2002
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 51
    Par défaut
    Pour verifier la liberation memoire, tu peux utiliser des macros :

    Tu mets ce code dans un ficher d'entete que tu inclus dans tous tes fichiers.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    int MDbgAl;
    #define malloc(x) (MDbgAl++,malloc(x))
    #define calloc(x,y) (MDbgAl++,calloc(x,y))
    #define free(x) {\
    			if(x)\
    				{\
    				MDbgAl--;\
    				free(x);\
    				}\
    			}
    Juste avant de quitter ton prog, tu verifis si la valeur de la variable globlale est bien egale a 0.

    ATTENTION de ne jamais include ce hearder avant malloc.h par exemple car là ça ne compile pas (normal )

  7. #7
    fd
    fd est déconnecté
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 131
    Par défaut
    3 phases :

    1 - tu teste les cas droits
    2 - tu teste les cas limites
    3 - tu teste les cas faux

  8. #8
    HRS
    HRS est déconnecté
    Membre chevronné
    Avatar de HRS
    Inscrit en
    Mars 2002
    Messages
    678
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 678
    Par défaut
    si vous avez découpé votre programme en fonctions, vous pouvez tester
    chacune de vos fonctions isolément
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    type_retour Fonction_A_Tester (type1 arg1, type2 arg2, ...) {
    // le code de votre fonction
    }
    void main (void) {
    // alimentation des paramètres d'entrée
    // appel de la fonction
    // vérification des résultats
    }

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 42
    Par défaut
    je vois que c'est un sujet qui scuccite beaucoup de reflexion et pour cause, il s'agit d'un point important de notre domaine.

    sur ce sujet, voilà la reflexion la plus interessante faite par un ami, qui résume unpeu tout ce que vous avez pu dire:

    methode 1- si ton programme est court c'est-a-dire quelques lignes
    (ce n'est pas ton cas!) tu peux utiliser
    des systemes de preuves (du type le systeme COQ),
    c'est tres long sur des petits programmes impossible pour des grands
    mais c'est tres sur

    methode 2-sinon, tout depend de ton application, la solution la plus utilisee
    est de construire toi meme une "test-suite" c'est-a`-dire des jeux
    de donnees pour ton programme qui visitent toutes les branches de ton programme
    (ouais je sais c'est ultra lourd, ca peut etre considerablement plus long a
    faire que le programme lui-meme), une fois la test suite validee
    la validation de ton programme depend de .... ta test-suite
    (donc il vaut mieux beaucoup de rigueur et de temps)

    -methode 3-Dans tout les cas, la meilleure solution (a mon avis) est de
    valider ton algorithme grace a l'utilisation d'antecedents et de consequents
    pendant l'ecriture de ton algorithme
    mais cette methode peut vite devenir tres delicate
    (par exemple, si tu fais des operations arithmetiques IEEE dans ton programme
    il faut verifier que tu ne jamais avoir des underflow ou overflow ce qui
    revient en gros a utiliser la methode 1)

    Merci et A+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Amener plus d'utilisateurs sur votre programme
    Par dourouc05 dans le forum Mon programme
    Réponses: 6
    Dernier message: 08/05/2012, 00h16
  2. Réponses: 10
    Dernier message: 23/02/2011, 00h18
  3. Réponses: 4
    Dernier message: 07/07/2006, 19h17
  4. Test de validation??
    Par questionneuse dans le forum Test
    Réponses: 3
    Dernier message: 20/12/2005, 09h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo