Site Archive (Complete)
Testing & Debugging Blog: Wherein thinking about testing adds a feature and highlights problems with terminology
Testing and Debugging
BREAKPOINTS

Test, Debug, Release, Rinse, Repeat ...

by Kevin Carlson
THE BOOK OF TESTING

Thoughts From a Braidy Tester

by Michael Hunter
July 05, 2006

Wherein thinking about testing adds a feature and highlights problems with terminology

Daphne and Jason had been whispering and writing off to the side while Hazim and Lucas were talking. "Here's our test API for R3" Jason said. Daphne activated the new page she and Jason had added on her tablet.

  • Logical.ColoringBooks.OpenColoringBook(string name)
  • Logical.ColoringBooks.ChoosePage(int id)
  • Logical.Drawing.Name(string name)
  • Logical.Drawing.Open(string name)
  • Logical.Drawing.Save()
  • Logical.Drawing.Print()
  • Logical.Color.UseColor(Color color)
  • Logical.Color.FillArea(Point location)
  • Logical.Color.DrawLine(Point start, Point end)
  • Logical.Color.Stamp(Shape shape, Point location)

"Browsing the coloring book library feels like something our customers would do along the way to opening a coloring book, not an action all by itself" Daphne started out. "We assumed that coloring books will have a name; our users may or may not see these names in our UI, but our tests need some way to identify coloring books."

"Thinking about coloring book names we realized that each drawing will need a name as well" Jason continued. "Kids may select drawings by looking at thumbnails, but some children - older ones especially - likely will want to name their drawings. So we added a name method. Opening a drawing uses that name. And then of course drawings can be saved and printed."

"Why doesn't Save take the name to save the drawing as?" asked Bianca. "Or I guess that would be Save As maybe - do we need one of those?"

Daphne took that one. "We think that Save As goes beyond what most young children will understand. Maybe existing drawings should appear in a special coloring book that lets them make a copy of a drawing. That would fit with the blank page strategy Hazim came up with. As for save, if the drawing hasn't been named yet we can give it some default name. As with the coloring book name it might not be something the user sees, but our tests will need one to be there.

Jason finished up. "For coloring in the current page, we figure there will be a hard-coded set of colors for the rug rats to choose from - like the twelve colors you get in the watercolor boxes at the grocery store. The other drawing methods all use whatever the current color is. We thought about adding a DrawArc method, but we thought that might be too complicated for our younger customers."

"Why isn't there a method to select which stamp to use?" Hazim asked. "Oh - that's just an incidental detail, isn't it?"

"Yep!" Oliver jumped in. "Most kids aren't going to get all excited about spending time selecting shapes - they are going just going to say 'Oh, I want to stamp out a rectangle now.'"

"The 'Drawing' and 'Color' area names feel a little weird to me" Oliver said.

"Yeah, to us too" Daphne replied. "But we couldn't think of better names. 'Drawing' is overloaded between the thing you're making and the action of making it. And 'Color' could mean both the color that will be used when something is drawn and the act of coloring the drawing. We decided to go with 'Drawing' as the thing we're making and 'Color" as the action of making it. But we're not attached to those names by any means; other suggestions are very welcome."

"We came up with an initial set of test cases, too" Jason said.

"This is great!" Hazim said. "Needing to name drawings was a good catch. I'll run this feature set past Marketing and see if they agree. Wait a minute - you said you have test cases already?"

Posted by The Braidy Tester at 07:30 AM  Permalink




 

♦ sponsored
INFO-LINK


Related Sites: DotNetJunkies, SD Expo, SqlJunkies