Verificando arquivos para testes

votos
5

Eu estava trabalhando com qualidade ontem fazendo alguns testes formal. Em seu procedimento estavam verificando todos os arquivos na máquina de teste foram retirados do lançamento. A maneira como eles foram verificar esses arquivos eram a mesma era, verificando o tamanho e as janelas data / hora colocar sobre eles no Windows Explorer. Estes passou a ser off por outra razão que eu era capaz de descobrir o porquê.

Será esta uma forma válida para verificar um arquivo é o mesmo? Eu não penso assim e começou a discutir, mas eu sou mais jovem aqui, então pensei que não deve empurrá-lo muito longe. Eu queria discutir eles devem fazer uma comparação binária no arquivo para verificar seu conteúdo é exato. No meu tempo de experiência / carimbos de data e atributos de tamanho nem sempre funcionam como esperado. Alguma ideia???

Publicado 07/08/2008 em 13:54
fonte usuário
Em outras línguas...                            


5 respostas

votos
3

Hashing é muito bom. Mas a outra, alternativa ligeiramente mais baixa tecnologia é executar uma ferramenta de comparação como WinMerge ou TextWrangler e comparar as duas versões de cada arquivo. Chato e não há espaço para erro humano.

O melhor de tudo, use controle de versão para garantir que os arquivos que você está testando se os arquivos que você editados e os que você está indo para o lançamento. Temos pastas de check-out do nosso repo como os sites de preparo e ao vivo, por isso, uma vez que você cometeu os alterações de sua cópia de trabalho, você pode ter 100% de certeza que os arquivos que você testar, empurrar para estadiamento e, em seguida, ao vivo são as mesmas, porque basta executar "svn update" em cada caixa e verifique o número de revisão.

Ah, e se você precisa para reverter em uma pressa (isso acontece com todos em algum momento ou outro nós) que você acabou de executar svn update novamente com a opção -r e voltar para uma revisão anterior praticamente instantaneamente.

Respondeu 07/08/2008 em 14:17
fonte usuário

votos
3

A única maneira 100% para descobrir se dois arquivos são iguais é fazer uma comparação binária dos dois.

Se você pode viver com o risco de falsos positivos (ie. Dois arquivos que não são 100% idênticas, mas seu código diz que eles são), então os algoritmos de resumo e de soma de verificação pode ser usado para diminuir o trabalho, especialmente se os arquivos vive duas máquinas diferentes, com menos do que a largura de banda óptimo de modo que uma comparação binária é inviável.

A digestão e algoritmos de checksum todos têm chances de falsos positivos, mas a chance exata varia de acordo com o algoritmo. regra geral é que quanto mais cripto-feito que é, e os mais bits ele produz, menor a chance de um falso positivo.

Mesmo o algoritmo CRC-32 é bastante bom de usar e deve ser fácil de encontrar exemplos de código na internet que implementa-lo.

Se você só fazer uma comparação de tamanho / timestamp então eu lamento dizer que isso é fácil de contornar e não vai realmente dar-lhe muita certeza de que os arquivos são iguais ou diferentes.

Depende, porém, se você sabe que em seu mundo, timestamps são mantidos, e só mudou quando o arquivo for modificado, então você pode usá-lo, caso contrário ele não detém nenhuma garantia.

Respondeu 07/08/2008 em 14:07
fonte usuário

votos
1

O caminho normal é calcular um hash de um dos dois arquivos e comparar isso. MD5 e SHA1 são típicos algoritmos de hash. md5sum deve ser instalado por padrão na maioria das máquinas do tipo Unix, e do Wikipedia md5sum artigo tem links para algumas implementações do Windows.

Respondeu 07/08/2008 em 14:00
fonte usuário

votos
1

Eu faria algo como um hash md5sum nos arquivos e que ao comparar os hashes conhecidos a partir do lançamento. Eles serão mais precisos do que apenas comparações de data / hora e deve ser capaz de ser automatizado mais.

Respondeu 07/08/2008 em 13:59
fonte usuário

votos
0

Você deve fazer uma verificação CRC em cada arquivo ... no wiki:

Verificação de redundância cíclica , um tipo de função hash utilizada para produzir uma soma de verificação, a fim de detectar erros na transmissão ou armazenamento.

Ela produz um valor de quase único com base no conteúdo do arquivo.

Respondeu 07/08/2008 em 13:57
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more