windows - 验证文件以进行测试

标签 windows testing

昨天我与质量部门一起进行了一些正式测试。在他们的过程中,他们正在验证测试机器上的所有文件是否从发布中提取。他们验证这些文件是否相同的方法是在 Windows 资源管理器中检查文件的大小和日期/时间戳窗口。这些碰巧是由于另一个原因而关闭的,我能够找出原因。

这是验证文件是否相同的有效方法吗?我不这么认为并开始争论,但我在这里更年轻所以我认为我不应该把它推得太远。我想争辩说他们应该对文件进行二进制比较以验证其内容是否准确。根据我的经验,时间/日期戳和大小属性并不总是按预期运行。有什么想法吗???

最佳答案

唯一 100% 确定两个文件是否相等的方法是对两者进行二进制比较。

如果您可以忍受误报的风险(即两个文件并非 100% 相同,但您的代码表明它们是相同的),那么可以使用摘要和校验和算法来减少工作量,特别是如果文件位于带宽低于最佳带宽的两台不同机器上,因此无法进行二进制比较。

摘要和校验和算法都有误报的几率,但具体几率因算法而异。一般规则是,加密越多,输出的位数越多,误报的可能性就越小。

即使是 CRC-32 算法也相当好用,在互联网上应该很容易找到实现它的代码示例。

如果您只进行大小/时间戳比较,那么我很遗憾地说这很容易规避,并且实际上不会给您很大的确定文件是相同的还是不同的。

不过这取决于,如果您知道在您的世界中,时间戳是保留的,并且仅在文件被修改时更改,那么您可以使用它,否则它无法保证。

关于windows - 验证文件以进行测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4665/

相关文章:

c++ - 移植 windows 代码,用什么代替 __int64 _tmain 和 _TCHAR*?

windows - 检查给定路径是否是特殊文件夹路径?

testing - 用 jasmine stub 一个调用真实方法的方法

android - 我无法使用小米红米 4x 启动 Appium

linux - Windows 电脑上的 Git Bash 和 Linux 有什么关系?

linux - 从本地 Windows PC 和 Linux 传输数据

r - 手动检查 R 中的面板单位根测试

debugging - 测试 Dropwizard 托管接口(interface)——如何手动停止扩展接口(interface)的类?

c++ - GLE 997 :Overlapped I/O operation is in progress

java - 模拟存储库 JUnit 时出现 NullPointerException