One of my main areas of interest is practical software test automation. Much test automation is impractical in the sense that the automation requires too much time and effort to create relative to the automation’s value in helping to produce a better software system. I’ve been looking at Windows PowerShell (Microsoft’s new command shell and scripting language) a lot lately and have found that PowerShell is very well suited to what I call ultra lightweight software test automation (ULSTA). ULSTA is characterized by being quick to create (under two hours), script-based (PowerShell), short (under two pages), and disposable by design (roughly a two to four week lifespan). One interesting ULSTA with PowerShell use is UI automation for .NET based form applications. See the screenshot image below. I’ve tackled the problem ultra lightweight UI testing with Windows PowerShell and have written up the details for an MSDN Magazine article which will be published later this year. Windows PowerShell ships with approximately 130 useful meta functions called cmdlets. The heart of my technique involves writing a tiny library of custom PowerShell cmdlets and then using that library to write very easy UI automation.