Microsoft's labors to ensure that apps working in Vista will also work in Win 7

Mar 3, 2009 18:49 GMT  ·  By

With the next iteration of the Windows client, Microsoft is hard at work from day one to ensure that the development of every element of Windows 7 has Application Compatibility at its core, even though this was synonymous with changed features and designs that needed retouching. Grant George, the corporate vice president for testing in the Windows Experience team, has revealed that as far as Application Compatibility goes, Microsoft has just one purpose with Windows 7, namely ensuring that all the programs that currently work with Windows Vista will also work with its successor.

“Our engineering process includes automated quality checks to assure public APIs don’t change, and our test engineers have the right tools, engineering time and information that is used to find application issues as early as possible in our development cycle. Telemetry information is collected to assess and prioritize the breadth of applications our users depend on, paired with market data and install base information, across a wide variety of software categories to make sure they work as expected in our new OS version,” Grant said.

At the same time, Microsoft is carefully handling the fabric of Windows 7 in order to make sure that the evolution of the platform will not impact compatibility. One illustrative example in this regard is Legacy Code Removal. Stripping down legacy code in Windows 7 is a process involving extensive documentation, as well as Microsoft working directly with application developers that are impacted in order to resolve the issue. The Windows engineers also build automated tests designed to evaluate applications that are flagged as problematic from telemetry data.

“Throughout the development process we are running tests in the background creating an ongoing validation of new code relative to application compatibility,” Grant explained. “As code is getting ready to be checked into the main build, if a compatibility failure is detected in an automated regression test the checkin is halted. At that point the code is scanned for known compatibility issues and if an issue is detected the developer is asked to fix the problem. Of course we also develop new tests throughout the course of developing Windows 7 in order to broaden our coverage of third party software.”

But Microsoft is by no means limiting the app compatibility testing of Windows 7 to third party programs alone. The Redmond company also analyzes middle tier technologies including Java, the .Net Framework, and so on and so forth in order to ensure that they will all play nice with Windows 7. What the software giant is doing is actually isolating approximately 4 to 6% of applications belonging to the same family, namely with similar technology, data processing, etc. By ensuring compatibility with the set of 4-6% of applications in a certain family, the company provides assurance of compatibility for all similar apps.

“In addition to 3rd party stand alone applications we test a subset of OEM pre-installed software and their inbox applications for compatibility. The software tested come from the engagements we have with our OEM partners and their submitted installation images. These images are tested on clean installations of Windows 7 and upgrades from Windows Vista on OPEM standard hardware. This level of coverage allows us to best replicate the initial experience with Windows 7 for many of our customers. Because many of these applications are closely aligned with the OS, hardware and drivers, it is not unusual for an OEM to provide updates to this software with a new OS release,” Grant stated.

But in the end, Microsoft has also equipped Windows 7 in order to help end users deal with the compatibility issues that will get away. The next version of Windows will be able to detect failed application installations due to incompatibility problems. Following such a failure, the operating system will provide the user with a wizard designed to help identify a compatibility mode for a problematic app.