It All Starts With User Features: The Logical Functional Model
Even a small application such as Microsoft Notepad has a plethora of features that must be tested. While the occasional feature is simple enough that a single test case is sufficient to test it thoroughly, it is more likely that multiple test cases are required to verify a feature works as expected. Furthermore, the individual actions that together form a test case are likely to be used in other test cases as well. While this common code is sometimes duplicated across test cases, more often it is factored out to helper methods. Organizing these methods into a logical, unified, scalable, easily navigated, and maintainable model is of paramount concern.
We have solved this problem by using the application’s features as the organizing principle of our libraries. We wrap test case execution helper methods into a Logical Functional Model, or LFM, that is a user-centric view of our application. We ask, “What can the user do?” and ”What features does the user see?” As you might expect, answers to these questions tend to line up with the features our specifications define.
Organizing our LFM around product features eliminates navigation problems because methods for interacting with a feature are in an area named for that feature. It is also clear how new features fit into the system, so scaling problems are avoided as well. The test cases themselves become nothing more than a list of the actions the user will take to do something. Our test cases are easy to read and easy to understand.
Comments
- Anonymous
May 23, 2005
The comment has been removed - Anonymous
May 24, 2005
Sounds interesting, can you provide an example?
I'm working for a new organization with an established product. We have no formal testing and I'm trying to start up the new group.
I'm overwhelmed (we have several applications) and no testing, no documentation, little to no requirements). Yet, we have a very successful product. Go figure. - Anonymous
May 25, 2005
Michael: That "0 comments" bit is evidently a bug in the blogging software. Quite annoying I agree! Unfortunately I have no control over it and don't know when it will be fixed. - Anonymous
May 25, 2005
Steve: My post "So What Should A Test Case Look Like?" (http://blogs.msdn.com/micahel/archive/2005/05/20/SoWhatShouldATestCaseLookLike.aspx) is an example of code using an LFM. I can't post anything from my application's LFM as we haven't announced yet, nor unfortunately do I have an LFM for Notepad or any other app I can post. - Anonymous
August 03, 2005
I think my team - much of Microsoft, in fact - is going about testing all wrong.
My team has a mandate... - Anonymous
August 03, 2005
In many of my posts I have alluded to the automation stack my team is building, but I have not provided... - Anonymous
March 02, 2006
The comment has been removed - Anonymous
March 02, 2006
Something I've been experimenting with recently is Test-Driven Design (TDD) for user interfaces (UI).... - Anonymous
March 13, 2006
First up today was Linda Hayes talking about Cost Effective Test Automation Strategies. She grabbed...