我应该在 AMD 和 Intel 芯片上运行回归测试程序吗?

发布于 2024-09-10 16:56:43 字数 253 浏览 10 评论 0原文

现在我计划在 32 位、64 位、Windows XP Home、Windows XP Pro、Windows Vista Home Basic、Windows Vista Ultimate、Windows 7 Home Basic 和 Windows 7 Ultimate 上进行测试...全部使用最新的服务包。

然而,现在我想知道是否值得在 AMD 和 Intel 上针对上面列出的所有场景进行测试,还是会浪费时间?

注意:这是面向普通用户的安全应用程序。

Right now I plan to test on 32-bit, 64-bit, Windows XP Home, Windows XP Pro, Windows Vista Home Basic, Windows Vista Ultimate, Windows 7 Home Basic, and Windows 7 Ultimate ... all with the latest service pack.

However, now I'm wondering if it's worthwhile to test on both AMD and Intel for all the listed scenarios above or would it be a waste of time?

Note: this is a security application for everyday average users.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(9

枕梦 2024-09-17 16:56:43

我的感觉是,只有当您拥有大量先进的手工编码汇编语言或某种令人难以置信的紧迫时间(无论如何您都不会遇到这种选择的操作系统)时,这才是值得的。

如果您使用现成的商业编译器,那么您可以合理地确定它们将生成在所有普通处理器上运行的代码。

当然,没有人能够证明他们不需要在特定平台上进行测试,但我认为平台差异的原因比 CPU 品牌更值得担心(所有各种多核/超线程排列,例如,这可能会以不同的方式暴露所有多线程代码错误)

My feeling is that this would only be worthwhile if you had lots of on-the-edge hand-coded assembly language or some kind of incredibly tight timings (which you're not going to meet with that selection of OS anyway).

If you're using off-the-shelf commercial compilers, then you can be reasonably sure they're going to generate code which runs on all the normal processors.

Of course, nobody could ever prove they didn't need to test on a particular platform, but I would think there are bigger causes of platform difference to worry about than CPU brand (all the various multi-core/hyperthreading permutations, for example, which might expose all your multithreaded code bugs in different ways)

予囚 2024-09-17 16:56:43

仅当您使用汇编语言进行编程并使用扩展的、供应商特定的指令集时。但由于 AMD 和英特尔签订了交叉许可协议,因此这更像是一个历史问题,而不是当前问题。

在所有其他情况下(例如使用高级语言),编译器编写者的工作就是确保代码兼容 x86 并在每个 CPU 上运行。

哦,除了 FDIV Bug 处理器供应商通常不会犯错误。

Only if you're programming in assembly and use extended, vender specific instruction sets. But since AMD and Intel have cross-licensing agreements in place, this is more of an historic issue than a current one.

In every other case (e.g. using a high level language) it's the job of the compiler writers to ensure the code is x86 compliant and runs on every CPU.

Oh, and except the FDIV Bug Processor vendors usually don't do mistakes.

没有心的人 2024-09-17 16:56:43

我认为您正在寻找测试场景的错误方向。

是的,您的代码可能可以在 Intel 上运行,但不能在 AMD 上运行,或者在 Windows Vista Home 中运行,但不能在 Windows Vista Professional 中运行。但是,除非您在第一种情况下所做的事情与低级编程密切相关,或者在第二种情况下与操作系统实现的细节密切相关,否则这种可能性很小。你可以说,测试每一个可以想象的场景总是没有坏处的。但在现实生活中,可供您进行测试的资源必定存在一些限制。在大多数情况下,在不同处理器或不同操作系统上进行测试并不是测试您的程序,而是测试编译器、操作系统或处理器。你有多少时间来测试别人的工作?我认为您最好花时间在自己的代码中测试更多场景。您没有详细说明您的应用程序的功能,但仅举我自己的一个例子,花一天时间测试销售我们自己公司生产的产品与我们从其他制造商转售的产品相比,效率会更高,或者测试不同州或其他州的销售税规则。

在实践中,我什至很少测试在 Windows 上的部署与在 Linux 上的部署,更不用说不同版本的 Windows,而且我很少为此感到烦恼。

如果我正在编写低级设备驱动程序或类似的东西,那将是一个不同的故事。但是普通的应用程序呢?不要浪费你的时间。

I think you're looking in the wrong direction for testing scenarios.

Yes, it's possible that your code will work on Intel but not on AMD, or in Windows Vista Home but not in Windows Vista Professional. But unless you're doing something very closely tied to low-level programming in the first case, or to details of OS implementation in the second, the odds are small. You could say that it never hurts to test every conceivable scenario. But in real life there must be some limit on the resources available to you for testing. Testing on different processors or different OS's is, in most cases, not testing YOUR program, it's testing the compiler, the OS, or the processor. How much time do you have to spare to test other people's work? I think your time would be better spent testing more scenarios within your own code. You don't give much detail on just what your app does, but just to take one of my own examples, it would be much more productive to spend a day testing selling products our own company makes versus products we resell from other manufacturers, or testing sales tax rules for different states, or whatever.

In practice, I rarely even test deploying on Windows versus deploying on Linux, never mind different versions of Windows, and I rarely get burned on that.

If I was writing low-level device drivers or some such, that would be a different story. But normal apps? Don't waste your time.

玩世 2024-09-17 16:56:43

当然,听起来这对我来说是浪费时间——你们的程序是用哪种语言编写的?

Certainly sounds like it would be a waste of time to me - which language(s) are your programs written in?

謸气贵蔟 2024-09-17 16:56:43

我会说不。除非您使用汇编程序编写应用程序,否则您应该远离处理器,无需担心差异。处理器将支持 Windows 操作系统,其 API 就是您所连接的(取决于语言)。如果您使用 .NET,唯一可预见的问题是您使用的框架版本是这些平台不支持的。考虑到它们都是 XP 或更高版本,你应该没问题。如果您想担心某些事情,请确保您的应用程序能够与 Vista 和更高版本的安全模型良好地配合。

I'd say no. Unless you are writing your application in assembler, you should be far enough removed from the processor to not need to worry about differences. The processors will support the Windows OS whose API's are what you are interefacing with(depending on the language). If you are using .NET the ONLY forseeable issue you will have is if you are using a version of the framework that those platforms don't support. Given that they are all XP or later you should be fine. If you want to worry about something make sure your application will play nicely with the Vista and later security model.

赢得她心 2024-09-17 16:56:43

问题可能是“你在测试什么”。任何测试都不可能测试 AMD 和英特尔硬件平台之间可能存在差异的内容。驱动程序级别可能会存在差异,但您似乎并没有针对周围可用的每个现有 PC 硬件来测试您的软件。不同级别的 Windows Service Pack 之间的差异很可能比 AMD 和 Intel 处理器之间的差异大得多。

The question is probably "what are you testing". It is unlikely that any of the test is testing something that would be potentially different between AMD and Intel hardware platforms. Differences could be expected at driver level, but you do not seems to plane testing your software for every existing bit of PC hardware available around. Most probably there would be much more differences between different levels of windows service pack than between AMD and Intel processors.

零崎曲识 2024-09-17 16:56:43

我认为您的代码中可能存在某些功能(无论您是否知道)利用其中一个或另一个中的某些处理/优化,这可能会对结果产生严重影响。可以使用关键字。

我想说一般来说你不太可能担心这个问题。如果您无论如何都要在多台机器上执行此操作,请在它们上混合使用。但我不会为此感到压力。

I suppose it's possible there is some functionality in your code that (whether you know it or not) takes advantage of some processing/optimization in one or the other that could have a serious effect on the outcome. Keyword possible.

I would say in general you're unlikely to have to worry about it. If you're going to do it on multiple machines anyway, mix it up on them. But I wouldn't stress out about it.

旧梦荧光笔 2024-09-17 16:56:43

我永远不会在 AMD 和 Intel 上运行所有回归测试,除非我专门修复了其中任何一个所特有的问题。这就是回归测试。

另一方面,单元测试......我预计不会有任何差异。再说一遍,在我真正看到 AMD 或 Intel 特有的问题之前,我不会对两者运行单元测试。

I would never run all of my regression tests on both AMD and Intel unless I had specifically fixed an issue unique to one either one. That is what regression testing is.

Unit testing on the other hand... I wouldn't anticipate any difference. So again, I wouldn't bother running unit tests on both until I had actually seen an issue specific to either AMD or Intel.

新一帅帅 2024-09-17 16:56:43

如果您依赖准确/一致的浮点结果,那么是的,绝对可以。

If you rely on accurate / consistent floating point results, then yes, definitely.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文