Tu veux dire que tu testes le programme sur quelques entrées seulement ??? Donc tu ne passes jamais sur les entrées particulières qui justement activent la branche dont le cas négatif n'est pas testé et qui sert à la faille ?
Analyse statique : tu construit une representation abstraite du code, et c'est ca que tu compares. Vu que les differences sont minimes, rarement cross-procedure(si il y en a tu poses une alerte et un humain ira voir car ca devrait etre rare), t'as pas besoin de garder des etats de bouts en bouts et d'avoir une explosion exponentielle des etats. Tu te retrouves frequemment a des points ou tu peux dire "ok tout est identique", et tu peux repartir de la en faisant abstraction de ce qui precede.
Si tu prends 2 implementations totalement differentes d'un probleme (disons le moteur HTML de IE et de Firefox), alors il est evident que c'est intraitable, mais ici on parle du meme code source compile par le meme compilateur, t'as au final 2 binaires tres tres proches, et tu utilises cet etat de fait pour mettre des contraintes fortes : un changement "consequent" est automatiquement une erreur, la ou dans le cas IE vs. Firefox ca pourrait etre le meme comportement avec 2 implementations totalement differentes et il faudrait une analyse globale des contraintes, ce qui est trop gros pour etre fait.
[^] # Re: Bof
Posté par pasBill pasGates . En réponse au journal Espionnage sous Linux ou délire paranoïaque ?. Évalué à 3.
Tu veux dire que tu testes le programme sur quelques entrées seulement ??? Donc tu ne passes jamais sur les entrées particulières qui justement activent la branche dont le cas négatif n'est pas testé et qui sert à la faille ?
Analyse statique : tu construit une representation abstraite du code, et c'est ca que tu compares. Vu que les differences sont minimes, rarement cross-procedure(si il y en a tu poses une alerte et un humain ira voir car ca devrait etre rare), t'as pas besoin de garder des etats de bouts en bouts et d'avoir une explosion exponentielle des etats. Tu te retrouves frequemment a des points ou tu peux dire "ok tout est identique", et tu peux repartir de la en faisant abstraction de ce qui precede.
Si tu prends 2 implementations totalement differentes d'un probleme (disons le moteur HTML de IE et de Firefox), alors il est evident que c'est intraitable, mais ici on parle du meme code source compile par le meme compilateur, t'as au final 2 binaires tres tres proches, et tu utilises cet etat de fait pour mettre des contraintes fortes : un changement "consequent" est automatiquement une erreur, la ou dans le cas IE vs. Firefox ca pourrait etre le meme comportement avec 2 implementations totalement differentes et il faudrait une analyse globale des contraintes, ce qui est trop gros pour etre fait.