我是一个软件开发团队的软件开发人员。我在同一个项目上工作了三年了。该软件是一个基于32位桌面的C#应用程序,在.NET 4中,我们的目标平台是Windows 7(我们一直支持Windows,直到去年)。该软件与编写自定义驱动程序的各种自定义硬件通信。硬件制造和驱动软件是由我们的客户编写的。当然,32位和64位Windows有不同的驱动程序。
在我们的系统测试阶段,我们在32位和64位的Windows 7中执行所有/大多数测试用例。有了这种经历,我开始怀疑,我们真的需要在64位Windows上测试32位软件吗?
行业标准是什么?
发布于 2014-10-03 07:32:50
我们在64位窗口上运行32位软件时遇到的大多数错误都与软件的位置(Program Files (x86)
而不是Program Files
)、注册表项的位置有关(有些是在Wow6432Node中找到的)。我们有这些问题,主要是因为我们需要与其他软件(也是32位)通信,所以我们需要测试32位和64位的软件.
当您没有这些问题时,我相信当您在32位模式下显式编译时,在这两个平台上进行测试是非常安全的。当编译为32位时,.NET运行时将以32位模式运行一切,并且它应该与32位平台上的32位模式一样工作。
根据64位应用程序 (MSDN),32位应用程序是在Wow64模式下运行的,而运行32位应用程序则更详细地解释了这种模式。
发布于 2014-10-03 08:05:49
硬件制造和驱动软件是由我们的客户编写的。当然,32位和64位Windows有不同的驱动程序。
那么,在32位Windows上,您的软件与一个驱动程序对话,在64位Windows上,它与另一个驱动程序对话?让我们假设有新版本的这些驱动程序的时间.因此,当您只在32位Windows上测试您的软件时,您无法确定64位驱动程序中不会出现一些差异,这将导致您的软件+ 64位驱动程序组合失败。从用户的角度来看,不管是谁(你还是司机的作者),他们看到的都是一个不工作的系统。因此,即使您的代码没有bug,测试也可能会在64位驱动程序中发现一个错误,找到这样的bug可能会帮助您采取正确的措施(比如向驱动程序的作者发送错误报告)。
当然,当您使用这两种驱动程序多年,并且您非常确信行为完全相同时,您可以跳过一个平台的测试,遵循@DavidPerfors的答案中的参数。作为折衷,您只能在64位Windows上运行测试,只要有新的驱动程序版本。事实上,这取决于司机的复杂性,你对他们的经验和信心。
还有一些需要考虑的问题:
发布于 2014-10-03 05:35:10
在开明的QA圈子中,默认的假设是“如果您没有测试它,那么它就不能工作”。
作为一件实际的事情,这通常是一个无法实现的目标,与应用程序工程师可能希望为每件事情进行单元测试的方式一样,但他们不相信他们会达到这个目标并按计划发布。
然而,你的问题只能通过销售和市场营销来回答,也不能与销售和营销一起回答。你为他们提供了一个测试成本,他们提供了一个市场效益的分析。如果双方的估计都足够准确,答案就会很简单。
if B > C:
test_32bit_version()
根据我的经验,每个人的成本估计都是不准确的。至于方程的另一面,迪尔伯特曾经用“我刚问过我的猫,米滕斯”来模仿那里的决策。为了做得更好,他们需要人类学领域方法的培训。
https://softwareengineering.stackexchange.com/questions/257935
复制相似问题