Boucle de test

Résolu
Signaler
Messages postés
13
Date d'inscription
mardi 2 décembre 2003
Statut
Membre
Dernière intervention
24 mai 2007
-
Messages postés
13
Date d'inscription
mardi 2 décembre 2003
Statut
Membre
Dernière intervention
24 mai 2007
-
Bonjour a tous,
j'ai réalisé un programme qui crypte ou décrypte une chaine de caractère avec un code alphanumérique.
Je voudrais avant cette mise en place du logiciel effectué une boucle de controle avec 100 000 itération en cryptage et décryptage.
mais je ne vois pas bien comment m'y prendre ?
créer une fonction de test supplémentaire dans le module?
Ou ???
Quen pensez vous

Merci
A bientot ++

12 réponses

Messages postés
939
Date d'inscription
vendredi 25 octobre 2002
Statut
Membre
Dernière intervention
27 janvier 2009
2
Une opération de test de ton systeme de cryptage? Enfin tu veux dire 100000 fois crypter et decrypter?
Je ne comprend pas ta question...
J'aurais fait ça pour ton test (en algo) :

procédure testcryptage
str, tmpstr,cle : chaine
test : booleen
test<-true
cle<-"tacle"
pour i allant de 1 à 100000
tmpstr<-str
str<-rypt(str,cle)
str<-decrypt(str,cle)
si tmpstr <> str alors
message erreur + " " + tmpstr
test<-false
fin si
fin boucle 
Si test=true alors
message "test ok"
sinon
message "test
fin si
fin procédure

Hvb a.k.a Batto
http://batto.info/ ^^x
bato.ltd .at. gmail.com
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
27
Hé bé ! Ce n'est plus la même chose du tout !


Et le conseil donné va dépendre de ta propre réponse ...


Comment se manifeste ton bug, exactement ?


1) il y a plantage ?


     et si oui : utilise le debugger !

2) il n'y a pas plantage, mais la fonction est abandonnée, avec affichage de mon message
   et là, il va falloir que tu nous guides avec détails


3) les fonctions vont jusqu'au bout mais ce qui est décrypté ne correspond pas ju tout au texte originel
  et là, c'est ton algo qu'il te faut reconsidérer !
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
27
Bonjour,

Ben... une boucle étant une boucle, je dirrais :

For i = 1 to 100000 (100000 ?... bon...)
  ---- fonction de cryptement (tes instructions pour crypter)
  doevents
  ----- fonction de décryptement (tes instructions pour décrypter)
  doevents
next

A moins que tu ne te sois mal exprimé quant à ce que tu cherches à faire !
Messages postés
13
Date d'inscription
mardi 2 décembre 2003
Statut
Membre
Dernière intervention
24 mai 2007

Re bonjour,
je me suis peut etre mal exprimé.
Je veux envoyer une chaine et un code.
la crypter et la décrypter. prende la chaine décrypter pour en faire une nouvelle chaine a crypter. la comparer a la chaine de base. Si RAS on continue la procédure.
si NON RAS on arrete et on imprime la chaine décrypter différente et son numéro d'itération

Mon formulaire :

Private Sub Command1_Click()
Text1 = crypter(Text1, Text2)
End Sub

Private Sub Command2_Click()
Text1 = decrypter(Text1, Text2)
End Sub

Mon module cryptage & decryptage

Function crypter(acrypt As String, code As String) As String
alpha = "azertyuiop^$qsdfghjklmùµwxcvbn,;:= -_AZERTYUIOP¨*QSDFGHJKLM%£WXCVBN?./+[]´`~\<>²³&é'()§è!çà0123456789" & Chr(34)
crypt = acrypt
'boucle de controle
For Y = 1 To Len(code)
   v = Mid$(code, Y, 1)
   c = InStr(1, alpha, v)
   If c = 0 Then
       crypter = "erreur code sur caractère : " + v
       Exit Function
   End If
Next Y
For Y = 1 To Len(acrypt)
   v = Mid$(acrypt, Y, 1)
   c = InStr(1, alpha, v)
   If c = 0 Then
       crypter = "erreur chaine de cryptage sur caractère  : " + v
       Exit Function
   End If
Next Y
' fin de boucle de controle
   
   
For i = 1 To Len(acrypt)
    For a = 1 To Len(alpha)        If Mid$(alpha, a, 1) Mid$(acrypt, i, 1) Then lenbrt a
        dfg = i - ((i \ Len(code)) * Len(code))        If dfg 0 Then dfg Len(code)        If Mid$(alpha, a, 1) Mid$(code, dfg, 1) Then lenbrc a
    Next a
    lenbr = (((lenbrt + lenbrc) - 1) - (((lenbrt + lenbrc) - 1) \ Len(alpha)) * Len(alpha))    If lenbr 0 Then lenbr Len(alpha)
    Mid$(crypt, i, 1) = Mid$(alpha, lenbr, 1)
Next i
crypter = crypt
End Function

Function decrypter(adcrypt As String, code As String) As String
alpha = "azertyuiop^$qsdfghjklmùµwxcvbn,;:= -_AZERTYUIOP¨*QSDFGHJKLM%£WXCVBN?./+[]´`~\<>²³&é'()§è!çà0123456789" & Chr(34)
crypt = adcrypt

'boucle de controle
For Y = 1 To Len(code)
   v = Mid$(code, Y, 1)
   c = InStr(1, alpha, v)
   If c = 0 Then
       decrypter = "erreur code sur caractère : " + v + " MERCI D'INFORMER LE POSTEUR DU TOPIC"
       Exit Function
   End If
Next Y
For Y = 1 To Len(adcrypt)
   v = Mid$(adcrypt, Y, 1)
   c = InStr(1, alpha, v)
   If c = 0 Then
       decrypter = "erreur chaine crypter sur caractère  : " + v + " MERCI D'INFORMER LE POSTEUR DU TOPIC"
       Exit Function
   End If
Next Y
' fin de boucle de controle
   
For i = 1 To Len(adcrypt)
    For a = 1 To Len(alpha)
        dfg = i - ((i \ Len(code)) * Len(code))        If dfg 0 Then dfg Len(code)        If Mid$(alpha, a, 1) Mid$(code, dfg, 1) Then lenbrc a
    Next a
    beta = Mid$(alpha, lenbrc, Len(alpha) - lenbrc + 1) & Mid$(alpha, 1, lenbrc - 1)
    For z = 1 To Len(beta)        If Mid$(beta, z, 1) Mid$(adcrypt, i, 1) Then lenbrt z
    Next z
    Mid$(crypt, i, 1) = Mid$(alpha, lenbrt, 1)
Next i
decrypter = crypt
End Function

Faut il mettre une 3 eme fonction test ou une procédure a votre avis?
Comment introduire cette boucle ou procédure ??

Car en dehors du formulaire et de la fonction , je pédale

Merci avous

Gérard
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
27
Je crois que tu plaisantes un peu, là, non ?
Ton test se résume à la vérification de ce que la valeur retournée par ta fonction decrypter est égale au contenu de la textbox Text1... !


C'est tout et c'est vraiment peu !
Messages postés
13
Date d'inscription
mardi 2 décembre 2003
Statut
Membre
Dernière intervention
24 mai 2007

Je crois que tu plaisantes un peu, là, non ?
Ton test se résume à
la vérification de ce que la valeur retournée par ta fonction decrypter
est égale au contenu de la textbox Text1... !



C'est tout et c'est vraiment peu !

Hé bien non car , il arrive a bugger et je ne comprends pas pourquoi
Je voudrais récupérer la chaine bugger pour une analyse plus en détails.
Sur un beta test il y a déja eu 5 erreurs mais pas de données suffisante pour analyser ( je n'ai pas effcetuer les beta test personnellement)
je voudrais en profiter pour eneregistre la progression du cryptag et du décrytage a chaque itération.

Les béta testeur faisait un copier coller de la chaien a crypter a partir de documment RTF qui leur étaient remis.

Donc pas si peu que tu peux le penser jmfmarques, mais je comprends ton étonnement

A bientot 
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
27
Tu veux tester quoi ? que tes fonctions de cryptement et de décryptement fonctionnent bien ?


Si oui : je ne change pas un mot à ma réponse précédente : vérification de l'identité de la valeur retournée par ta fonction de décryptement et du contenu de ta textbox ...


Si ta méthode de cryptement ou celle de décryptement "boguent", c'est tout-à-fait autre chose et n'a plus rien à voir avec un test de fonctionnement
Messages postés
13
Date d'inscription
mardi 2 décembre 2003
Statut
Membre
Dernière intervention
24 mai 2007

Re
tout a fait vrai, je me suis mal exprimé je veux analyser dans quelles circonstances se produit un bug
et enregistrer tous les pas de l'algorithme au moment du bug.

dans ce but je veux lancer une itération qui me sollicite les fonctions crypter et decrypter et s'arrete quand une chaine est corrompu, en donnat les info du déroulement des derniers algo ritmes (CRypte & DECRYpte)
Messages postés
13
Date d'inscription
mardi 2 décembre 2003
Statut
Membre
Dernière intervention
24 mai 2007

Bonsoir,

Il n'y a pas plantage mais la chaine crypter reviens erronné (défaut :1/500 a 1/1000)et comme elle sert de clef pour un autre applicatif, gros problème.
Le nombre de défauts est faible 1/500 ou 1/1000  environ.(Cela ne semble pas a proiori lié a l'algorithme : 499 réussites , 1 echec)
c'est pour cela que je voudrais lancer un test sur 100 000 itérations et aussi pour voir si la méthodolie d'erreur est toujours la meme
Avec 100  a 200 résultats une analyse plus pointue doit etre possible.

Problème difficile, peut etre pas lié au programme, peut etre au transmission d'info entre les différents element du programme

Merci a vous

Bonne soirée

PS : le procédure de hvb pourrait m'etre utile mais je ne vois pas bien comment la mettre en place dans un projet
Messages postés
13
Date d'inscription
mardi 2 décembre 2003
Statut
Membre
Dernière intervention
24 mai 2007

Bonsoir,

Vous séchez comme moi
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
27
Sécher ?
Sûrement pas !
Tu as ta réponse, dans ce cas, depuis hier à 16 h 00 ! (complétée par le message de 17 h 56) ...
La mise en oeuvre est élémentaire.
Messages postés
13
Date d'inscription
mardi 2 décembre 2003
Statut
Membre
Dernière intervention
24 mai 2007

Désolé jmfmarques,

mais je suis vraiment nul en programmation VB.NET.
Je viens de m'apercevoir que je fouvez ajouter du code dans un formulaire sans problème.
Tu as raison, le problème n'en était pas un pour les gens de votre niveau d'expertise.
J'espère que vous ne m'en voudrais pas trop

A bientot