views:

27

answers:

2

When switching from MSVS 6 to MSVS 2008, what major differences should I look for when testing the software? I'm coming from more of a QA perspective. We have two programs that work closely together that were originally compiled in Visual C++ 6. Now one of the programs has been compiled in Visual C++ 2008 in order to use a specific CD writing routine. The other program is still compiled under MSVS 6. My manager is very concerned with this change and wants me to run tests specific to this change. Since I deal more with QA and less with development, I really have no idea where to start. I've looked for differences between the two, but nothing has given me a clear direction as far as testing is concerned. Any suggestions would be helpful.

+1  A: 

One thing that comes to mind was a possible difference in allocations of small blocks of memory. I have a vague recollection that VC6 used the small-block heap by default for values under 1016 bytes. This MSDN article seems to indicate that it was OS-dependent. But I think that it was not OS-dependent with VC6. In any case, if your application is malloc/free/new/delete heavy, you might test to make sure it does not result in fragmentation over time.

Aside from that, I am not aware of specific issues. In a MSVC6 to VS2008 conversion I did in the last year, the bulk of the work was getting the thing to build (lots of ATL changes). Once it built, the test suites ran cleanly. So you might want to make sure that in the conversion they are using a good warning level (at least /W3). Ignoring warnings would be a good way to invite problems.

Mark Wilkins
A: 

In making VS much more standard compliant new can no longer return NULL when memory runs out, rather it throws an exception. You can try testing in low memory situations, if the original code checked for NULL being returned from new it will not crash with an exception.

Motti