Software Test & Performance Collaborative

Community, Resources & Knowledge Sharing for Test & QA Professionals

Matt Heusser’s Blog

Testing at the Edge of Chaos

How would you test this? – Take II

By Matthew Heusser on October 1, 2009 | 9 comments.

We’ve had a few responses to the earlier test challenge – lots of good strategy tips, but besides Justin Rohrman’s blog post, I haven’t seen any test plans.

So yes, am going to reveal my test strategy – but first – I’d like to up the ante. I’ll be giving away a $50 gift card – Prepaid MasterCard, PayPal, or Visa – take your pick – to the best test plan developed. And yes, besides my own judgement, I do have a little bit of objectivity; I’ll be reviewing the test plans against the actual bugs filed to see which would be most effective.

No, I’m not a huge fan of exhaustively detailed “test plans”, with one “test case” per page. At Socialtext, a “test case” is more like a row in a spreadsheet. We use the “plan” like a checklist; I’ll test the actual feature intelligently, as a human being, then come back later to review the plan to see if I missed anything important.

So for this exercise, Justin’s format would work – if that’s the way you’d prefer to document.

Now, about how to develop those test cases. I was a little surprised that the standard answer for strategy was “ask the customer what to test, then test it.” It’s a rational strategy, and, if you aren’t a subject matter expert, perhaps it’s necessary – yet it doesn’t put the tester in a role to add a lot of value, does it?

At Socialtext, the whole technical staff are heavy users; we are our own best customer. Product owners do provide examples, which are reviewed by developers, which help with communication and help test the happy path. Here are a few of the actual tests for the Activities Widget:

So what follows below is what the product management team came up with. My question is what you, as the tester, would come up with – the plan, the strategy, and your defense of the plan. (I’ll give extra credit for plans that can be expressed concisely).

And I’ll give $50 US to the best answer, $25 to the second best. I’ll put up my answer next Tuesday, but before that – do you have any insight?

HOW TO ENTER: I would prefer discussion in the comments, but I realize some answers could get very long. So – you can put you answer in a comment, you can create a blog post and link to it in a comment, or email me at matt.heusser@gmail.com.

DELIVERABLES: There are two deliverables; the strategy is how you would manage risk – how much time you would put into testing this iteration, and then every one after that – what you might have run automatically, how you would set appropriate expectations, and so on. The test plan is a series of things you would explore, and the order you’d explore them, to determine if the product is fit for use.

Here’s what the product owners came up with:

activities widget shows grammatical representation of filter
… follows the form: “Showing all of the from within
… defaults to: events: “events” (all), feed: “all activity”, network: “all my networks”
… user can choose different components for the filter; feed is updated on each change of choice
… if no events match the configured set of selectors, a “no events match this filter” message is shown
… RSS chicklet is shown; URL for feed is based upon configured selectors
user mouses over selector; list of options is shown
… user clicks one of the options; the option is selected
activities widget contains an expandable/collapsible Signals row (as mocked up)
footer contains pagination links: “newer”, “newest” and “older”
… user clicks on “newer”; more recent page of events is shown
… if there are no more “newer” events, “newer” link is disabled
… user clicks on “newest”; most recent page of events is shown
… if there are no more “newer” events, “newest” link is disabled
… user clicks on “older”; older page of events is shown
… if there are not more “older” events, “older” link is disabled
activity list follows the format already defined in the signals & conversation widgets
… signals are displayed like in the “signals” widget, not like in any of the other event widgets
… all event items the “X ago” line in a single line (like SD Activity tab, unlike Recent Conversations)

… events selector …
events selector contains: “events” (all), “signals”, “contributions”, “edits”, “comments”, “tags”, “people events”
… each choice shows only those events within the parameters of the two other selectors (feed, network)
user chooses “events”; feed is updated to show all recorded events (except views)
user chooses “signals”; feed is updated to show only signals
user chooses “contributions”; feed is updated to show only non-signal contributions
user chooses “edits”; feed is updated to show only edits
user chooses “comments”; feed is updated to show only comments
user chooses “tags”; feed is updated to show only tags on pages
user chooses “people events”; feed is updated to show only person tags and person follow/unfollows
invalid selector combinations are grayed out and unselectable
…people tag/follow events with the “my conversations” feed selector is invalid

… feed selector …
feed selector contains: “everyone”, “people I follow”, “my conversations”
… each choice shows only those events within the parameters of the two other selectors (events, network)
user chooses “all activity”; feed is updated to show all activity
user chooses “people I follow”; feed is updated to show activity from the people the user follows
user chooses “my conversations”; feed is updated to show activity from (pages the user watches) + (pages the user has edited, tagged or commented on)
… cannot be combined with any events selector that excludes page events (e.g. the “signals” selector)
incompatible selections are greyed out

… network selector …
network selector is hidden when the user belongs to only one network
network selector contains: “all my networks”, … each choice shows only those events within the parameters of the two other selectors (events, feed)
user chooses “all my networks”; feed is updated to show activity within all of the networks the user belongs to
user chooses a specific network; feed is updated to show activity only within the chosen network

… signals interaction …
when signals component is closed, expand icon is shown
when signals component is open, collapse icon is shown
user clicks expand icon; signals component is opened
…the height of the widget increases to accommodate
user clicks collapse icon; signals component is closed
…the height of the widget decreases to accommodate
if signals component is closed and user clicks on individual signals event action (reply, reply privately), then signals component is opened and displays @user in body
signals network selector is updated based on the feed selector choice
feed selector choice is not updated based on signals network selector
haha, good one. Don’t forget the Signals page tests as well.

… widget gallery …
new users have activity widget instead of the Recent Conversations & Signals widgets
…it’s placed in the middle column by default
widget gallery and manage widget gallery contains this widget
widget gallery and manage widget gallery does not contain Signals nor Recent Conversations widgets

… automatic updating …
items in list refresh every 30 seconds
… # of items remains constant with new items coming in (pushing extra items to the “next page”)

Comments (9)

Michele Smith
at October 2, 2009, 9:25 am:

The Five Minute Challenge for the first iteration:

What kind of activities would you do?

I would set up a network with either other testers or on my own machines – I have multiples. Each of these would be equipped with a different browser. High level testing would include using the application in order to learn about it. Is it intuitive enough that a person who has never seen it before can use it? Is the layout consistent with what is expected by the user? If I get “stuck” or have questions, are there help files available? Are these helpful?

This would include, if there were multiple testers involved, splitting the features up (Ex: signals, contributions, etc.) between them to be sure each is covered. If just myself, it would take longer, but that would still be my first approach – to at least touch every item.

Then there is negative testing. Attempting to abuse the system to see what it has in place for error handling and/or what it’s limits are. Can a user be logged in on several machines at once? How much text can be entered in? What if I try to drop a graphic in and attempt to post it? Any illegal characters rejected? What happens if each of those in the network post at the same time? Or schedule the same event at the same time? Or schedule events for years later, or years prior? What about the click happy testing? What about multiple users editing or attempting to edit the same event? What about font selections?

How long would those take you?

If I were allowed to select the amount of time, I would like one business day to spend with the application. Why? Because I consider business days to be about 6.5 hours long, there are always interruptions and writing down the information that I gather takes time away from the testing and the application is new to me. This would be for a first pass through the application.

What would your goals be?

To learn as much as I could about the product/application. To provide the information that I gather to the stakeholders.

How long do you think it would take you?

To fulfill the goal? It would fit within the same time frame I listed above.

Time required for subsequent iterations would be dependent upon what was changed in the product/application and how many testers are available. New feature? Significant changes? Major bug fixes?

As for what I might have run automatically – ideally a regression suite of tests. What is expected to work everytime for every iteration? What is expected not to change? Those tests that would take time out of testing the new changes in the product/application and prevent further exploration with new tests.

[Good stuff, Michelle - but what would you write the automation in, how long do you think it's take you to write, how much time do you expect to spend maintaining it? (I realize, that's over five minutes ... :-)
]
This is a short version of what my test plan would be.

Philk
at October 2, 2009, 2:43 pm:

Posted my waterfail answer here – http://expectedresults.blogspot.com/2009/10/taking-up-challenge-from-matt.html

Michele Smith
at October 2, 2009, 7:57 pm:

Hi Matt,

“what would you write the automation in, how long do you think it’s take you to write, how much time do you expect to spend maintaining it?”

I admit to having never, ever, ever automated or been involved in automation beyond the point of working with (like pair testing) automation engineers. I went down the hall to ask Justin and Matt what they thought. According to my colleagues… they would use a tool that they currently use for automation – Silk Test. They also almost agreed to the maintenance only consisting of added features to be dependant upon how much actually changed. An added feature would not be much maintenance at all. Revamping the whole system is a re-write.

Over all I believe the cost of having the basic regression tests automated outweighs having a manual tester run these. Why? First of all if I have to run manual regression tests the time constraints concern me. Secondly, I would rather have my manual testing time freed up to actually focus on exploratory testing on newly added features and how they may affect the overall system. Thirdly, this would enable me to get information back quickly to the stakeholders and developers… giving them more time to determine what, if anything, needs to be changed before release.

Justin Rohrman
at October 2, 2009, 11:27 pm:

I wrote up a blog entry with my solution:
http://i-am-justin.com/?p=83

Marlena Compton
at October 5, 2009, 5:24 pm:

After reading through the list of tests from the product owners, here are my preliminary questions:

I’m curious about the rss functionality. It appears that the product owners included this in the test plan. Is there more information about this?

[There's a little RSS icon in the bottom-right. When you press the product owner, she wants it to "just work" in RSS readers. Finally, you get an exemplar reader: Google Reader. Also, you make a RSS reader widget that supports RSS 1.0, 2.0 and ATOM standards, and it needs to work on that. Does that help?]

Is there a specific reader that this connects with or is it there a list of supported readers?

[The big concern is Google Reader.]

Is the feed supposed to reflect changes in the filters or do you create a feed permanently fixed on current filter settings?

[Yes, the RSS feed link changes depending on what filters you have selected.]

The list from the product owners was fairly specific, but they still left off several items. For example, there are several items regarding being able to re-size the widget but no information about what I assume to be the settings for the widget (wrench in the upper right hand corner.) Is this test round supposed to address EVERYTHING like that or just the specifically mentioned items like re-sizing the widget height.

[Good catch! Yes, monkey-wrench is 'settings' and allows you to show 5, 10, 15, 20, or 25 'activities' at a time.]

I also didn’t see anything mentioned about posting signals. Is posting a signal excluded from the testing?

[Yes, you can post signals from the widget. If you want to limit that out of scope to let your test plan be a reasonable size, I'd accept that. You can also REPLY to signals or Reply with a private message; and you'll need to test that.]

Marlena Compton
at October 5, 2009, 6:08 pm:

“You can also REPLY to signals or Reply with a private message; and you’ll need to test that.”

In the boxes that show signals, it looks like the arrow on the right is used to reply and the envelope is used to send a message. Is that correct?

[Yes, correct]

I see names in the signals boxes are underlined. What is that and what’s the difference between that and just having a person’s name in blue. Is this another way to initiate a reply?

[A name in blue is a link to that person's profile. (Think: Facebook 'info' page). A page in blue is a link to a page in the wiki; it will open in a new browser tab. Reply and Private reply are initiated at right of an activity in the activities widget. There are other ways to do it, but not on the widget, and so they are out of scope for this exercise.]

In the boxes “showing edits” I see the name of docs are in blue and are bolded. Is something special supposed to happen if I click that?

Thanks for answering my questions :o )

Marlena Compton
at October 6, 2009, 2:15 pm:

Ok, I have one more question. Is there any particular functionality the customer is looking forward to using or functionality that was given particular focus in development?

[Sure. Arguably, the main use of the app will be to see signals and changes in wiki pages. Secondarily, users will want to see things they care about ('conversations') and people they care about.]

Marlena Compton
at October 7, 2009, 2:49 am:

I posted my plan in 2 parts.

Part 1 is just a reiteration of the questions I asked: http://marlenacompton.com/?p=473

Part 2 has my test plan and strategy: http://marlenacompton.com/?p=482

This was a lot of fun. Can’t wait to see what you and others would do.

Leave Comment

Name – required
Email – required
Website