December 31, 2008

Perhaps They Should Have Tested More - Microsoft Zune

A Zune Swoon?

Hey, anyone know how to get this thing working again?

Apparently, starting around midnight last night, all first-generation 30GB Model Zunes - every one - restarted themselves and locked up at the boot screen.

Just take a look at some of the Headlines:
  • 30GB Zunes Failing En Masse
  • 30GB Zune apocalypse arrives as devices enter digital coma
  • Zune 30s all freezing up at once. Ack! Aliens!
  • Zune plagued by massive freeze
  • Did the Y2K failure come to Zune 30 devices 9 years later?
  • Microsoft Zunes spontaneously dying all over the place
  • Microsoft Zunes Hit By Rash of Lock-Up Bugs
  • Microsoft Zune 30GB users reporting freezing problems
  • Zunesday
  • 30GB Zunes Everywhere Are Frozen. Z2K9?
  • Worldwide Zune suicide?
  • 30GB Zunes Fail Simultaneously Everywhere
  • 30GB Zunes Killing Themselves In Droves
  • Microsoft's Latest Global Problem
  • 30GB Zunes hibernating for 2009?
  • Z-Day Hits Zune 30s
  • Some Zunes Expire Along with 2008
  • Z2K for Zune music players?
Think some Boundary Value Analysis might be in order?

At this time, Microsoft's Zune Support page says only:
zune service status


Customers with 30gb Zune devices may experience issues when booting their Zune hardware.  We’re aware of the problem and are working to correct it.  Sorry for the inconvenience, and thanks for your patience!
When I checked at 2:00 PM Eastern time, Microsoft's Zune Support page now says:
zune service status


Customers with 30gb Zune devices may experience issues when booting their Zune hardware.  We’re aware of the problem and are working to correct it.  The Zune Social might be slow or inaccessible.  Sorry for the inconvenience, and thanks for your patience!
So apparently it was a leap year problem.
Today 5:43 PM
Official response for Zune 30 Freezing Issue (Zune 30gb stuck at reboot screen)

Early this morning we were alerted by our customers that there was a widespread issue affecting our 2006 model Zune 30GB devices (a large number of which are still actively being used).  The technical team jumped on the problem immediately and isolated the issue: a bug in the internal clock driver related to the way the device handles a leap year.  The issue should be resolved over the next 24 hours as the time change moves to January 1, 2009.   We expect the internal clock on the Zune 30GB devices will automatically reset tomorrow (noon, GMT). By tomorrow you should allow the battery to fully run out of power before the unit can restart successfully then simply ensure that your device is recharged, then turn it back on.  If you’re a Zune Pass subscriber, you may need to sync your device with your PC to refresh the rights to the subscription content you have downloaded to your device. 

Customers can continue to stay informed via the support page on (

We know this has been a big inconvenience to our customers and we are sorry for that, and want to thank them for their patience. 

Q:  Why is this issue isolated to the Zune 30 device?
It is a bug in a driver for a part that is only used in the Zune 30 device.

Q:  What fixes or patches are you putting in place to resolve this situation? 
This situation should remedy itself over the next 24 hours as the time flips to January 1st.

Q:  What’s the timeline on a fix?
The issue Zune 30GB customers are experiencing today will self resolve as time changes to January 1.

Q:  Why did this occur at precisely 12:01 a.m. on December 31, 2008? 
There is a bug in the internal clock driver causing the 30GB device to improperly handle the last day of a leap year.

Q:  What is Zune doing to fix this issue? 
The issue should resolve itself.

Q:  Are you sure that this won’t happen to all 80, 120 or other flash devices? 
This issue is related to a part that is only used in Zune 30 devices.

Q:  How many 30GB Zune devices are affected?
All 30GB devices are potentially affected.

Q: Will you update the firmware before the next leap year (2012)?

Matt Akers
Zune Product Team
Now who could possibly have thought to test for leap year issues?  After all, that "leap year" thing is a fairly new invention, right?

Perhaps they should have tested more.

An update.
Supposedly, this is the code which failed:
year = ORIGINYEAR; /* = 1980 */
while (days > 365)
    if (IsLeapYear(year))
        if (days > 366)
            days -= 366;
            year += 1;
        days -= 365;
        year += 1;

December 29, 2008

Book: How We Test Software at Microsoft

A really nice addition to my QA Bookshelf.

How We Test Software at Microsoft
by Alan Page, Ken Johnston, Bj Rollison

In How We Test Software at Microsoft, Alan Page, Ken Johnston, and Bj Rollison provide a terrific mix of insight into Microsoft, along with in-depth explanations of practical test processes.

From the introduction:
"This book is for anyone who is interested in the role of test at Microsoft or for those who want to know more about how Microsoft approaches testing.  This book isn't a replacement for any of the numerous other great texts on software testing.  Instead, it describes how Microsoft applies a number of testing techniques and methods of evaluation to improve our software."
I would also add that this book is for anyone who wants to learn some extremely useful, real-world approaches to both typical and complex testing situations.

  1. Software Engineering at Microsoft
  2. Software Test Engineers at Microsoft
  3. Engineering Life Cycles
  4. A Practical Approach to Test Case Design
  5. Functional Testing Techniques
  6. Structural Testing Techniques
  7. Analyzing Risk with Code Complexity
  8. Model-Based Testing
  9. Managing Bugs and Test Cases
  10. Test Automation
  11. Non-functional Testing
  12. Other Tools
  13. Customer Feedback Systems
  14. Testing Software Plus Services
  15. Solving Tomorrow's Problems Today
  16. Building the Future
While not all of the solutions will apply to everyone (unless you happen to work at a company with over 9,000 testers), everyone will learn something.  The excellent explanations of Equivalence Class Partitioning and Boundary Value Analysis are among the best I have ever read.

This is a very good book - one I highly recommend to all current and would-be testers.