几乎 那里的每个应用程序都执行 i/o 操作,无论是使用磁盘还是通过网络。
由于我的应用程序在开发时环境下运行良好,我想确保它们在 Internet 连接缓慢或不稳定时,或者当用户尝试从写入错误的 CD 中读取数据时仍能正常运行。
你会推荐什么工具来模拟:
- 慢速输入/输出(打开文件、关闭文件、读写、目录项枚举)
- 偶尔的输入输出错误
- 偶尔的“访问被拒绝”响应
- tcp/ip丢包
- 等...
编辑:
window :
完成所描述工作的最接近解决方案似乎是全息甲板商业软件(>900 美元)。
Linux:
目前没有找到开放的解决方案,但效果相同
可以按照 smcameron 和 krosenvold 的规定实现。
装饰器模式是个好主意。 它需要包装我的 I/O 类,但会产生一个测试框架。 唯一剩下的未经测试的代码将在第 3 方库中。
但我决定不走这条路,而是让我的代码保持原样并从外部模拟 i/o 错误。
我现在知道我需要的是所谓的“故障注入(inject)”。 我认为这是一个常见的生产线部分,有很多我不知道的解决方案。 (顺便说一句,另一个类似的好主意是“模糊测试”,感谢 Lennart)
在我看来,这个问题仍然不值 900 美元。 我将基于钩子(Hook)(针对 win32)实现我自己的开源工具。 完成后我会更新这篇文章。大约 3 或 4 周后回来...
最佳答案
您需要的是故障注入(inject)测试系统。詹姆斯惠特克的 'How to break software'是一本关于这个主题的好读物,包括一张包含许多所需工具的 CD。
关于testing - 如何在 I/O 行为不佳的情况下测试应用程序的可靠性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/560975/