如何测试从MSVS 6到MSVS 2008的交换编译器?

时间:2010-05-20 21:27:39

标签: visual-studio visual-studio-2008 visual-c++

从MSVS 6切换到MSVS 2008时,我在测试软件时应该注意哪些主要差异?我来自更多QA视角。我们有两个紧密协作的程序,这些程序最初是在Visual C ++ 6中编译的。现在,其中一个程序已经在Visual C ++ 2008中编译,以便使用特定的CD写入例程。另一个程序仍在MSVS 6下编译。我的经理非常关注这个变化,并希望我运行特定于此更改的测试。由于我更多地处理QA而不是开发,我真的不知道从哪里开始。我已经找到了两者之间的差异,但就测试而言,没有什么能给我一个明确的方向。任何建议都会有所帮助。

2 个答案:

答案 0 :(得分:1)

我想到的一件事是小块内存的分配可能存在差异。我有一个模糊的回忆,VC6默认使用小块堆来处理1016字节以下的值。 This MSDN article似乎表明它依赖于操作系统。但我认为它与VC6不依赖于操作系统。在任何情况下,如果您的应用程序是malloc / free / new / delete heavy,您可以进行测试以确保它不会随着时间的推移而导致碎片化。

除此之外,我不知道具体问题。在去年我做过的MSVC6到VS2008转换中,大部分工作都是为了构建(大量的ATL更改)。一旦构建完毕,测试套件就会干净利落地运行。因此,您可能希望确保在转换过程中使用良好的警告级别(至少/ W3)。忽略警告是引发问题的好方法。

答案 1 :(得分:0)

在使VS更符合标准时,new在内存耗尽时不能再返回NULL,而是抛出异常。您可以尝试在内存不足的情况下进行测试,如果检查NULL的原始代码是从new返回的,则它不会因异常而崩溃。