C'est tout sauf dépassé, le fuzzing est une des méthodes les plus utilisées et les plus puissantes pour découvrir des failles dans une application, la sienne ou celle de quelqu'un d'autre (recherche en sécurité)
TheRom_S a écrit :
En effet, une des techniques actuelles pour corriger les failles est de réaliser des tests unitaires lors du développement et c'est certainement plus efficace car plus poussé
|
Des tests unitaires ne testent que ce qu'on pense à tester, et ça ne teste pas une stack complète. Des tests unitaires prouvent qu'une unité de calcul semble avoir un résultat correct pour un set d'entrées données, c'est incapable de prouver qu'une unité de calcul est correcte dans l'absolu.
Accessoirement, certaines communautés de programmeurs (c'est à ma connaissance originaire de la communauté Haskell) ont hybridé les notions de fuzzing et de unit testing en créant des générateurs de testcases aléatoires:
QuickCheck (le générateur originel, à ma connaissance) et SmallCheck en Haskell, ScalaCheck en Scala, ErlangQC en Erlang, RushCheck en Ruby, ClickCheck et PeckCheck pour Common Lisp et Python.
Aucune des implémentations inspirées n'est complète par rapport au QuickCheck Haskell (probablement parce que QC utilise fortement le type system haskell), ceux qui en viennent le plus près sont probablement Scalacheck (parce que le typesys scala est également très fort et statique) et Quviq QuickCheck pour Erlang parce que c'est un produit commercial
---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?