You may have heard of Windows 7 Software Client Logo. Did you know that it has an automated test? Did you know the toolkit was designed to be scripted so you can add it to your testing process? In this post, I’ll walk though how you might want to leverage the logo toolkit in your development or testing process to find potential compatibility issues.
Windows Logo has been around since Windows 2000. There is a hardware and a software logo and it changes with each release of the OS. Basically, it is a set of requirements that all “well behaved” applications should meet. There is a set of tests that your application needs to pass to prove that it meets the requirements. If you pass the tests, you get the logo to put on your product. The good news is that the Windows 7 client logo is a self test. If you pass, it’s free to submit and get the logo.
That’s Great but I Just Want to Leverage the Tests…
There may be several reasons why you are interested in the logo — marketing, partner points, your boss told you to do it, etc. Or maybe, you are just looking for ways to test your application for a base level of Windows 7 compatibility. What ever the reason, the goal of logo is to increase the quality of applications. I think one of the best improvements to logo is to have a tool to do the testing for you.
Using the Toolkit
Everything you need for logo including the toolkit is on Connect. After you install the toolkit, you can run it interactively from the Start menu (Windows 7 Client Software Logo Toolkit shortcut). This will launch a wizard that walks you through adding and removing your application while the toolkit monitors the system for changes. At the end of the wizard, you can generate a report that looks like this:
The report outlines what tests you passed or failed with details on any issues found with respect to the requirements.
Automating the Toolkit Tests
The toolkit process can be accomplished via the command line. Therefore, you can script the process for your application. By scripting the logo test, you could put it in your development or testing process to find issues. Since the generated report is XML, you can parse it to generate reports or populate tracking databases, etc. We use the toolkit in our readiness lab process to look for issues before a customer visits the lab (see this post about our Win 7 compatibility checklist).
You can get the command line usage information by running “C:\Program Files\Microsoft Windows Software Logo Kit”\wslk.exe /?. The Users Guide document in the toolkit download also outlines using the toolkit via the command line.
For example, here’s a sample batch file I created to test a 32-bit based MSI installer and application:
rem — Runs Windows 7 Software Logo for a 32-bit msi and application.
rem — Reset the toolkit
rem — Pre-install for 32-bit
rem — Install application quietly and run post install
rem — Run pre-uninstall and uninstall quietly
rem — Run post uninstall
rem — clean up old logo report file and create a new Logo.xml report file
rem — Execute the Powershell script to output failures and warnings
The batch file accepts the MSI file name as the first argument on the command line. It will reset the toolkit, execute the toolkit process, install/uninstall the application, generate the report, and execute a PowerShell script to report only “non-passing” tests.
Here’s the PowerShell script (LogoResult.ps1) to parse the XML report to output failures and warnings:
[xml]$LogoRpt = get-content .\Logo.xml
foreach( $result in $LogoRpt.REPORT.REQUIREMENTS.REQUIREMENT)
Here’s the sample output:
Since the report is XML based, we could do just about anything with the information. You could generate reports, assign bugs to developers, send e-mails, etc. If you do plan on getting the logo, the earlier you find issues in your development or testing process, the more time you will have to fix them.
I hope this gives you some ideas on how you might leverage these test to help find issues in your application. Who knows?… You might be eligible for logo and can submit to get the logo “sticker” for your application.