Vérification des fichiers pour les tests

Je travaillais avec la qualité hier en faisant des tests formels. Dans leur procédure, ils vérifiaient que tous les fichiers de la machine de test avaient été extraits de la version. La façon dont ils vérifiaient ces fichiers était la même en vérifiant la taille et les fenêtres d'horodatage placées dessus dans l'Explorateur Windows. Ceux-ci se sont avérés éteints pour une autre raison dont j'ai pu découvrir pourquoi.

Est-ce un moyen valide de vérifier qu'un fichier est le même ? Je ne le pensais pas et j'ai commencé à me disputer, mais je suis plus jeune ici, alors j'ai pensé que je ne devrais pas pousser trop loin. Je voulais faire valoir qu'ils devraient faire une comparaison binaire sur le fichier pour vérifier que son contenu est exact. D'après mon expérience, les horodatages et les attributs de taille n'agissent pas toujours comme prévu. Des idées ???

请先 登录 后评论

2 réponses

Ryan Ahearn

Je ferais quelque chose comme un hachage md5sum sur les fichiers et le comparerais aux hachages connus de la version. Ils seront plus précis que de simples comparaisons de date/heure et devraient pouvoir être davantage automatisés.

请先 登录 后评论
Lasse Vågsæther Karlsen

Le seul moyen de déterminer à 100 % si deux fichiers sont égaux est de faire une comparaison binaire des deux.

Si vous pouvez vivre avec le risque de faux positifs (c'est-à-dire deux fichiers qui ne sont pas identiques à 100 % mais que votre code indique qu'ils le sont), alors les algorithmes de résumé et de somme de contrôle peuvent être utilisés pour réduire le travail, en particulier si le les fichiers résident sur deux machines différentes avec une bande passante moins qu'optimale, de sorte qu'une comparaison binaire est impossible.

Les algorithmes de résumé et de somme de contrôle ont tous des chances de faux positifs, mais la chance exacte varie selon l'algorithme. La règle générale est que plus il est crypté et plus il produit de bits, moins il y a de risque de faux positif.

Même l'algorithme CRC-32 est assez bon à utiliser et il devrait être facile de trouver des exemples de code sur Internet qui l'implémentent.

Si vous ne faites qu'une comparaison de taille/horodatage, je suis désolé de dire que cela est facile à contourner et ne vous donnera pas vraiment la certitude que les fichiers sont identiques ou différents.

Cela dépend cependant, si vous savez que dans votre monde, les horodatages sont conservés et ne changent que lorsque le fichier est modifié, alors vous pouvez l'utiliser, sinon il n'y a aucune garantie.

请先 登录 后评论