Test Automation and Execution Framework (TAEF)

I know I’d said I was going to do a series of posts explaining how to use TAEF. This is no longer necessary. Documentation for TAEF has been posted on the MSDN. Instead I’ll use this post to explain why TAEF is my favorite testing framework.

TAEF is developed by a team within the Windows org specifically dedicated to improving and standardizing test writing and execution within Windows. While developed by the Windows org, TAEF is also gaining popularity in a lot of different teams across Microsoft.

At this point you may be wondering, why write another testing framework? There are already a number of popular frameworks such as NUnit, MSTest, Boost’s Unit Test Library, etc.

In my opinion, the biggest reason is the flexibility TAEF gives you. TAEF was designed from the ground up to provide consistent programming, execution and features for tests writing in .Net, C++ and scripts. Additionally, it provides a simple interface for building Unit Tests while providing additional capabilities useful in writing end to end tests.

Read More

Site is Back

I just realized my website was down due to a DNS issue. Fortunately, I don’t ever actually use this blog so I doubt anyone was inconvenienced. Most people who came here were looking for MTG Player, and that’s been hosted on CodePlex for over a year.

Anyway, I’m starting to post again for a reason. Recently Microsoft released one of the best testing frameworks there is (TAEF) as part of the Windows 8 DDK Preview. This is the testing framework used by my team and many others at Microsoft. Unfortunately, it doesn’t appear that they’ve released any documentation yet. I’ll be creating a series of blog posts showing the power and uses of this framework for building both native and managed tests.

Comment

No, I really don’t want your software update.

Having every piece of software I install constantly trying to update automatically has long been a pet peeve of mine. I neither need nor care about every minor update to Adobe Reader, WinZip or any of dozens of other apps I use. Did the PDF or Zip formats change drastically? No? Then why do I care about an update?

While I find this annoying, I can see how some people might find it useful. However, I recently encountered a similar issue which was totally baffling. I installed Daemon Tools to mount an ISO. It asked me if I wanted to set the Daemon Tools homepage as my default web browser’s home page.

Who in their right mind would actually want to do this? Do they actually think people love their product so much they want to visit their website every single time they go online?

Comment

Software Testing at Microsoft

I’m happy to say I can breathe a huge sigh of relief about my role. I took a position as a Software Development Engineer in Test (SDET). This is Microsoft’s software testing role.

Software tester’s have something of a bad reputation in most of the industry. In many companies they are seen as the guys who couldn’t cut it as developers. They’re often second class citizens.  They aren’t consulted on design, they are far outnumbered and they are seen as an added expense that constantly delays the release of a product.

The SDET role at Microsoft is nothing like that.

Read More

Microsoft Month 1

It’s been a very busy month. I wanted to ramp up as quickly as possible, so I’ve been putting in a ton of extra hours. It’s been hectic, but worth it. I think I’m finally past the worst of the new employee drag.

Surprisingly, it hasn’t been tiring or stressful. I’ve been working on some interesting code which has required me to do a lot of experimentation and research. This is the kind of stuff I do for fun on my own time. To be able to do this and get paid for it is even better.

The upshot is I’ll be resuming work on MTG Player shortly.

Microsoft Week 1

I just finished my first week at Microsoft and was pleasantly surprised. I’ve always worked for small (< 50 employees) companies. Transitioning to a company with 90,000 is quite the change and I didn’t really know what to expect. My prior assumptions about what it would be like working for a company of this size had been tainted by shows like Office Space.

I’m happy to say that my fears were almost entirely unfounded.  There’s certainly more bureaucratic overhead than I’m used to. However, Microsoft really tries to minimize the impact it has on their employees. All the common things like direct deposit, benefit enrollment, vacation requests, etc are handled through automated web sites.  They even have a utility to help you file your TPS reports on time.

TPS

The best part is the people. They’re all intelligent, motivated people who seem to truly enjoy working with each other.

The only real thing I disliked about the week was the unavoidable ramp-up time. After 3 weeks off I’m getting restive to do some actual work. Unfortunately, I’ve spent the entire week reading documentation, specifications and training. This is all necessary and highly valuable, but I’m itching to start coding.

Unemployed and loving it

As of today I’m officially unemployed until I start my new job just after New Years. It feels kind of strange. Other than a one year period while in college I’ve had a job continuously since I was 16.

Of course, I thoroughly expect to be completely bored by the end of the week.

Comment

MTG Player now Open Source

As promised, I’ve finally gotten MTG Player open sourced. It can be accessed via it’s Code Plex site. I haven’t gotten the documentation on the source written up like originally planned, but didn’t want to wait for it.

As stated previously, I’m actively looking for assistance with the development.

Comment

The Future of MTG Player

It’s been over 2 weeks since the last update to MTG Player. I’ve had multiple people asking when the next update was going to be out.  Unfortunately, I can’t give a hard date. This is a project I’ve been working on by myself in my spare time. This means that anytime something comes up to distract me MTG Player suffers. For the last few weeks I’ve had major distractions in the form of Dragon Age: Origins and now Assassin’s Creed 2.

There are still tons of features I intend to add. Unfortunately, the project has gotten large enough that I can’t handle it alone anymore. To keep progress moving even when I have a new game to play, I’m going to open source everything. My hope is that by doing this I’ll be able to find some talented developers to help out. I expect to have this available within the week. I’ll make a posting here when it’s live.

If there are any talented developers who want to get involved, please contact me at andrew@andrewfaust.com. Currently everything is written in C# using .Net 3.5. The UI is entirely built in WPF and the network communications are WCF.

The features that I want to add and could use  help with are:

  • A Game Lobby – Provide a dedicated server for people to find other players and launch games.
  • Multi-Game Matches – Allow stuff like “Best 2 out of 3” matches. Will need to have some way to uniquely identify decks so there can’t be any illegal swapping between games.
  • Sideboard Support – Needed for the Multi-Game matches and tournaments.
  • Booster draft matches
  • Deck legality validation – Ensure decks comply with rules for the various formats (Vintage, Extended, Standard, etc.)
  • Enhanced searching capabilities in MTG Manager
  • Support for all common deck formats – Apprentice, MWS, etc.
  • UI Enhancements to both Manager and Player
    • Draw lines between cards to show target
    • Visibly marking cards
    • Configuring custom colors
    • Keyboard shortcuts
    • Etc.
Comment

Verizon’s Broken Overage Warning System

I got a text message from Verizon today warning me that I’m on track to go over my allocated minutes this month. There were two problems with this. First, it said “UR on track 2 incur". I can accept this type of spelling shortcut if it’s a human typing the message; not from an automatic system generated message. The second (and larger) issue is the timing. I received this message after I had already gone 10o minutes over. Even worse, I received the message 2 days after I had used up my allocated minutes.

I guess I should be glad they make phone systems instead of fire alarms.

Comment

MTG Manager 0.8.1.0

This version makes a minor tweak to the Player’s notification window. Other than that the majority of the changes are in the Manager. This version adds the ability to open multiple decks at a time. You can now drag and drop cards from the search window to a deck or from one deck to another. Saving is now handled in the deck window instead of the main window.

Finally, this version also adds the ability to import decks using the Apprentice deck format. This should make it a bit easier to use your existing decks in MTG Player. Note: Sideboard is still not supported, so any sideboard cards are not imported. After Sidebar support is added you’ll need to re-import any decks that use it.

Comment

MTG Player 0.8.0.0

I just posted 0.8.0.0. This includes some highly requested features. The biggest changes are the enhanced drag-drop capabilities. You can now pretty much drag a card from anywhere to anywhere without needing to use a right-click menu. You no longer click the deck to draw a card anymore. Instead just drag the top card of the deck to the hand or workspace. You can still right click and choose to draw 7, though.

Another new enhancement is the Right-Click drag. If you use the right mouse button to drag a card in to play, it will come in to play face down. No more need to use the menu to play a card face down.

In addition to the drag-drop enhancements there is now built in player chat, the ability to reveal or discard cards at random, the ability to allow others to search your deck (disabled by default), a better shuffling algorithm and others.

Full release notes on the next page.

Read More
Comment

Meet the new site (same as the old site)

You may have noticed the site name has changed. When I originally created andrewfaust.com, it was primarily for me to host my personal wiki and a few other items like that. It was never intended for a wider audience.

Now that I’ve starting to post stuff here that is geared towards a wider audience, I thought it was time to make the change. I thought about using mtgmanager.com as MTG Manager accounts for the majority of my web traffic. However, I decided I didn’t want this site to just be about MTG Manager. Besides, I intend to open source MTG Manager and Player at some point. When I do, I’ll want to use the domain name to set up a dedicated site.

Why Lapathy.com? I already owned the domain name. What does it mean?  I’m to lazy and apathetic to bother explaining it.

Comment

Review: FogBugz On Demand

For years I’ve been using the Gemini Issue Tracker from Countersoft at work and as my personal tracker at home. At work we’re using the full version. At home I’ve been using the free version. I’ve been quite happy with it and would recommend it in a heartbeat. 

As I’ve been building my Magic Manager and Player programs, I’ve wanted to provide a way for users to submit bugs and request features. I’m lazy so figured it would be easiest to use my issue tracker as the mechanism for this. This is where I hit a problem. The free edition’s license doesn’t allow you to expose it publicly on the internet. No problem, Gemini has a rich web service API. I figure I can build a bug submission form in to the Player and submit it via the web services. Wrong, the web services are only licensed for testing and evaluation on the free version.

I couldn’t justify the expense to upgrade to the full version so started looking for a new issue tracker.

Read More

MTG Player 0.7.0.0 – Planechase Edition

As my previous post alluded to, 0.7.0.0 brings some major enhancements. There have been tons of little UI tweaks. However, the biggest feature is the addition of the Planechase mechanic. When the host starts a new game there is a “Use Planes” option.  The server will automatically shuffle and load and use all Planes.

When a player is attempting to Planeswalk they will click arrow in the top left of the Plane card. If they succeed it will automatically switch to the new Plane. If they fail or roll Chaos you will be notified in the Notifications window.

AttemptPLanewalk

Full list of updates on next page.

Read More

MTG Player – A Note on Release Frequency

For those of you who are getting sick of reinstalling new versions all the time, rest easy. I won’t be pushing out new editions every night anymore. I’ve been pushing hard to get a base level of playability. During this process a lot has changed in the UI and Server which made newer and older versions incompatible. I had to push out updates often so my version would work with everyone else’s.

I believe that I’ve finally reached a relatively stable base with version 0.7.0.0. Development will continue and you’ll still be able to get the latest version using the “Latest Build” link. However, I won’t be pushing out “official” releases as frequently.

MTG Player 0.6.5.0

Another new update tonight. This version includes some of the most highly requested features.

  • Untap All Button
  • Mulligan Button
  • Ability to drag a card to different player’s play space (as opposed to a right-click menu item)
  • Ability to drag a card to the graveyard
  • Ability to drag a card to the deck (it puts it on top)
  • Ability to move (but not tap or otherwise control) cards that are in your playspace, but controlled by another player.

MTG Player Version 0.6.4.0

The latest version of the Player and Manager are available for download. This version has some pretty major changes. This version updates the database. The change should be transparent, but it wouldn’t be a bad idea to back up the database file (Documents\MTGManager\MTGManager.db").

http://www.andrewfaust.com/storage/mtgfiles/MTGManager.zip

Full list of changes on next page.

Read More

MTG Player Update

The newest version of the player is now posted. This version adds adds makes some much needed changes to the database. It also adds a way for the players to indicate their turn is over. Unfortunately, the DB and Server changes make this version incompatible with previous versions.

When you launch the manager, it  should tell you to update your database. The process is fairly straightforward.

1) Select File->Backup Database
2) Close all instances of the application and player.
3) Rename or delete your existing database in your Documents\MTGManager directory (MTGManager.db).
4) Restart the manager
5) Import your cards and decks from the backups created in step 1

The backup process will write out the unique MultiverseID for the cards. This means you won’t have any issues like multiple editions or misspellings to deal with. It should be pretty quick and painless.

One of the features I added to the database is a version id. This will allow any future DB updated to happen automatically and transparently.

Comment