July 17, 2007

Seattle Weekly Weakly Tests Testing

Sam Kalman gave a recent article from the Seattle Weekly on testing a once-over and found it lacking.

I'm in the fortunate position to have never been on the contract testing side of things, but I've had contractors working for me both at Microsoft and at Ritual.

While the article may be a partially accurate picture of how contract testing is done off-site (or on-site with Sony), contract testing on-site used to be markedly different. Note, I said "used to be."

Inside Microsoft's Redmond campuses, space is always at a premium. Offices that used to only hold a single person get doubled or tripled up nowadays...and that's for the FTE's. Cramped space doesn't make it any easier to get your work done.

In addition, Microsoft has been shifting their staffing allocations for testing. Back with "Halo 2" for Xbox, there were three test leads, three SDET's, three Bungie FTE testers and five Microsoft FTE testers for a total of fourteen testers. There were also eighteen contract testers on the game...almost but not quite a one-to-one ratio of FTE's to contract testers. Thirty-two credited testers...not bad.

Compare that to "Halo 2" for Vista. Two test leads, seven FTE testers and two credited contractors. They must not have thought it would be very hard to test...after all, it's a port. Of course, then there's the shared Tools & Technology group that is split between every single MGS release, but since they're a shared team, you really can't count them towards test.

So at this point, we have eleven credited testers, or about 33% of the number of testers that "Halo 2" Xbox had. What do you get for that? The poor performance is only the start of the issues with "Halo 2" for Windows Vista. Hell, they didn't even spell "Windows" right in the manual. (See page 31.)

There may have been more testers, but most likely they came on at the end and how I feel about that is well documented.

I don't know how I'm supposed to feel right now...I'm just afraid that things are going to get much much worse before they get better.

(Update: 8/3, fixed typos.)

July 16, 2007

C#/ASP.NET error CS1026: ) expected

If you've used any inline evaluation blocks in your ASP.NET pages, you've probably come across an error similar to this one...
...\PageName.aspx(75): error CS1026: ) expected
When you go to that line on your page, you see that your parenthesis add up.
<%# Eval("TRACKING_INFO").ToString().Replace("|", " "); %>
The culprit is the semicolon at the end of the statement. Delete that and the error will go away.

The Weekend Past, The Week Ahead

I spent this last weekend in the middle of a whirlwind of activity.

Between trying to spend some quality time with my granddaughter, trying to debug a showstopping issue with the USEMP Alpha (some new code is keeping German from working like it was), and panicking because my glucose test strips started giving me readings that were between 40-70 points high (they're coding wrong), I've had very little time to do much of anything.

The batch of e-Commerce functionality that had to be done for conference is done and now just needs to be tested and bugfixed. On functionality for post-conference, I have four admin-facing pages that need to be polished off where the pages are 99% done and I'm just waiting on stored procedures from my DBA. I've also got about 14 bugs that are not finance related that I need to track down and squash by Tuesday end-of-day.

Expect minimal posting through Wednesday, and later this week expect a comparitave review of two XNA Game Studio Express Edition books.

July 13, 2007

Shipping Hack: Track The Big Four

Need to be able to generate a link to track a package from any of the four majors out there (UPS, USPS, FedEx and DHL)?

Use String.Format to insert your tracking number into the following constants...

const string UPSTrackingUrl =
"http://wwwapps.ups.com/WebTracking/processInputRequest?sort_by=status&tracknums_displayed=1&" +
"TypeOfInquiryNumber=T&loc=en_US&InquiryNumber1={0}&track.x=0&track.y=0";
const string FedExTrackingUrl =
"http://fedex.com/Tracking?action=track&tracknumber_list={0}&cntry_code=us";
const string DHLTrackingUrl =
"http://track.dhl-usa.com/TrackByNbr.asp?ShipmentNumber={0}";
const string USPSTrackingUrl =
"http://trkcnfrm1.smi.usps.com/PTSInternetWeb/InterLabelInquiry.do?CAMEFROM=OK&strOrigTrackNum={0}";

These worked as of noon on Friday, July 13, but there is no guarantee that they'll work later.

Sony Turns A Positive Into A Negative

How do you turn a $100 price drop into a negative?

By turning it into a temporary clearance for a SKU that you're phasing out.