Software Testing
Josh Poley
Josh Poley is currently employed at Bungie (a game studio which has produced a couple of recognizable Xbox Games) as an engineer developing internal tools. Prior to that he came from a 13 year tour at Microsoft where he worked on the very first version of the Passport authentication service (currently called Windows Live ID), Xbox, Xbox 360, Zune, Project Courier, and the C++ compiler.


Software Sleuthing
Software Sleuthing is a technology blog which focuses primarily on testing and development. As with most blogs, items covered are typically subjects which are at the front of my mind at the time. Aside from tech related posts, there may be an occasional random entry on items of interest or job related topics. Older blogs can be found here.


Color Grab
A free Windows tool which will identify the color sitting under the cursor. Pressing Alt-C will copy the RGB value to the clipboard.

Online HP 48G Calculator

Online (simplified) version of the HP 48G RPN calculator.


Test Plan Template
A generalized version of the Test Plan Template used on the Xbox software team, which was derived from IEEE 829. [Word Template (dotx)]

Best Practices - Code Reviews (MSDN)

This document is designed to point out some of the common areas in C and C++ code that frequently have defects which are easy to spot or need special attention during reviews. When you see these patterns in the source, you should give them special consideration and verify that the intention is correctly coded. [local pdf]

Best Practices - API Tests (MSDN)

If you ask several testers how to write good API tests you will get several different answers. Not only are peoples' styles and approaches different, but often API sets will lend themselves to various methodologies. That being said, my goal here is to describe some of the practices that have worked well for me while testing the Xbox Operating System. [local pdf]

Josh Poley's Black Book [2.38 MB]

I took a collection of knowledge that I frequently needed to reference and placed it all into one document. When printed out as a booklet, and placed within arm's reach, it made it very easy to get at what I needed. This document has everything from error codes to calling conventions to IIS server variables to Hungarian notation.


7162407 - Testing a host's support for peripheral devices (7418377)
In order to test a host's support for peripherals that use a given type of peripheral interface, an interface device communicates with peripheral interface ports of the host. The interface device also communicates with an emulation computer over a local area network. The emulation computer is programmed to emulate one or more peripheral devices by receiving and responding to messages. The interface device passes messages between the host and the emulation computer, using a peripheral interface communications protocol for communications with the host and using a network communications protocol for communications with the emulation computer.

7421731 - Transparent authentication using an authentication server

A user, by way of a computing device, requests and receives content from a first server at the computing device. An authentication response is also received from the first server at the computing device of the user. The authentication response includes an address of the second server and an executable script. The computing device of the user executes the executable script by issuing a request to the second server for state information corresponding to the user, receiving the state information from the second server; and determining, based on the state information, whether the user is authenticated to the second server. If the user is not authenticated to the second server, the computer device of the user displays a login module that is visually associated with the first server. Such login module collects login information for authenticating the user to the second server. If the user is authenticated in the second server, the computing device of the user issues a request to the second server for vouching information for authenticating the user to the first server.


These are the recent additions to my bookshelf.
The Practical Guide to Defect Prevention
I was able to score a free (signed!) copy of this book at a presentation done by one of the authors (Ross Smith). If you see this book in the store, be sure to check out the first page of chapter one.
Professional Rootkits
I saw this book while at Star West and the title caught my eye: just what uses are there for a rootkit which are not nefarious? And maybe there is something useful here from a testing point of view. Plus knowing about how these things work definitely won’t hurt while trying to keep them off of my machines.
Windows PowerShell Cookbook
Considering how much time I spend in the command shell and using scripting languages, I wanted to check out and see what power shell had to offer.
Effective C++: 55 Specific Ways to Improve Your Programs and Designs (3rd Edition)
Scott Meyers has a wonderful grasp of the C++ language and always finds some key aspects of the language which you really need to know. Even if you've read the previous revisions, it is worth taking a look at the latest version as he highlights different aspects of C++.
Lua 5.1 Reference Manual
More and more products are starting to take advantage of LUA as a scripting language, so this was a good time to pick it up and learn something new.

Web Resources

MSDN Tester Center
The Tester Center website is an effort to help grow the global community of testers and communicate Microsoft's thought leadership and expertise in the testing market. The site offers tips on testing practices, short whiteboard videos on targeted testing techniques and strategies, stories from testers, tester spotlights, technical articles, etc.
StickyMinds is an online resource for helping developers and testers produce better software. It offers original articles from industry experts, technical papers, industry news, a searchable tools and books guide, discussion forums, and more.
Microsoft & MSDN Development Search
Custom Google search which gives precedence to Microsoft and MSDN results. This is very useful for looking up APIs, debugging information, and general technical knowledge.