• [^] # Re: Dépassement de tampon

    Posté par (site web personnel) . En réponse à la dépêche Naissance d'un géant : Java. Évalué à 1.

    C est pour ca que je code des tests unitaires qui inclus les tests qui valident que tout fonctionne quand tout est normal, mais aussi les cas extremes (fuzzing).

    C'est vrai, et quelque soit le langage d'ailleur. Mais qui t'assure que tes tests sont correctement écrits ? Rien. Qui t'assures que tes tests sont complets ? Rien. Qui t'assures que les cas extrêmes sont tous couvert par le fuzzing ? rien. Qui te garantie que le contexte (archi, compilo, etc.) dans lequel tu exécutes ton fuzzing va rester valable dans un autre contexte ? Rien.
    Ce type de tests, qui par nature ne garantisse rien, ne permettent que de se rapprocher, avec un coût exponentiel, vers l'absence totale de bug.
    Il faut les utiliser, mais à bon escient, et accepter qu'ils ne sont pas suffisant. Un language de haut niveau, offre beaucoup plus de garantie, by design, qui ne fera que compléter ces bonnes pratiques pour offre une meilleure sécurité, à moindre coût.

    En fait non, il existe des methodes assez claires,

    Je ne parle pas de clareté mais de sécurité. La méthode peut être clair, la doc aussi, mais tout repose sur le programmeur qui ne doit pas se "planter" lorsqu'il code, sinon boum. D'où l'idée d'avoir un outil (langage + compilo + runtime) qui permet d'assurer l'absence des problèmes les plus courants, by design.