INCLUDE_DATA

Quick Testing Tips Your daily feed of short software testing tips…

7Mar/11Off

Test Strategy and Things You Hadn’t Considered

Test strategy typically deals with what you plan to do. If you think of test problem space as a physical space, as surface area, then a test strategy helps define the map of what you plan to cover.

If you think about it as positive space/negative space, or figure/ground if you prefer, then I had always considered the things you plan to do representing positive space, and the things you plan not to do representing negative space.  But a recent post on Catherine Powell's always-good ABAKAS blog added a new dimension for me: things you hadn't considered. These are the things that don't make it to your map because you didn't think of them.

The takeaway for me was that by documenting what you plan to cover and what you don't, the things you didn't think of are really the negative space. As Powell says, this makes our assumptions (end by extensions, the things we missed) visible for validation. This adds value at all phases of a project, either helping avoid problems early on through helping understand strategy decisions during a post mortem.

Filed under: Test Planning No Comments
3Nov/10Off

Test Design with Mind Maps

Today's tip is two-fold.

As a first part, it's a great example of a rapid test design practice with XMind mind mapping tool, provided as experience report by Darren McMillan.

  • Mind mapping
    • Increases creativity
    • Reduces test case creation time
    • Increases visibility of the bigger picture
    • Very flexible to changing requirements
    • Can highlight areas of concern (or be marked for a follow up to any questions).
  • Grouping conditions into types of testing
    • Generate much better test conditions
    • Provides more coverage
    • Using templates of testing types makes you at least consider that type of testing, when writing conditions.
    • When re-run these often result in new conditions being added & defects found due to the increased awareness
  • Lean test cases
    • Easy to dump from the map into a test management tool
    • If available the folder hierarchy can become your steps
    • Blend in easily with exploratory testing.  Prevents a script monkey mentality.
  • Much lower cost to generate and maintain, whilst yielding better results.

As a second part, I link you back to 2006, to the article "X Marks the Test Case: Using Mind Maps for Software Design" by Rob Sabourin.

  • Mind Maps to Help Define Equivalence Classes
    • Identify the variables
    • Identify classes based on application logic, input, and memory (AIM)
    • Identify invalid classes
  • Mind Maps to Identify Usage Scenarios
  • Mind Maps to Identify Quality Factors
3Jan/10Off

Tie performance to business goals

Following up on the performance pitch post, here are some tips for helping get your technology team talking in the language of your business team:

  • Take the time to define both top-line and bottom-line application business metrics
  • Work to prioritize that list of metrics to better understand what’s most important (creating tiers can help)
  • Identify what processes and transactions will affect those key metrics

When the team finds a possible performance issue later on, they can then translate what might otherwise be a generic metric (we're X seconds slower on transaction Y) into something that has meaning to the business (given that we're X seconds slower on transaction Y, we expect abandonment to go up Z%).

Defining those metrics, prioritizing them, and tying those to transactions doesn't necessarily need to be complicated. For some applications it will be. But for most applications I've tested, I suspect we could have done this over a couple one-hour workshops using Excel. Don't make it harder than it needs to be.

20Dec/09Off

Look for overlap in the schedules

Whenever I'm managing a large testing project, I try my best to break the testing into different often overlapping iterations. I do this by looking at different types of testing (functional, performance, user acceptance, etc...) as well as different variations on testing scope (functionality by delivery date, by project priority, by component/module grouping, etc...). These iterations are often keyed primarily by code or environment delivery date, but they can also be keyed from resource availability. The idea isn't unique at all: take a big bloated project, and try to break it up into smaller more manageable units of work. A tale as old as waterfall time...

However I set it up, I always go back and double check to make sure I can manage all the overlapping iterations. I've gotten sideways before where by trying to collapse the testing schedule, I've overbooked either testers or environments. Or I've inadvertently over-committed another group (like development or the business) because they need to support the testing effort in some way.

For each activity/iteration, ask yourself:

  • Who will be doing this testing and where will they be doing it?
  • What will they really need to get started (code, data, etc...)?
  • What support will they likely need and how much of it will they need?
  • What holidays or other project/company events fall inside those iterations that you're not thinking of because they are months away?
Filed under: Test Planning No Comments
19Dec/09Off

Don’t get trapped by reuse

I'm a big fan of reusing previous testing artifacts. If you have a test bed ready and available, I'm interested in taking a look at it if it can help me shave time off my project. However, don't let past testing artifacts trap you or bias you. Not only can they have the wrong focus, but they run the potential of slowing you down instead of speeding you up. If you have a lot of rework to do, or if you need to spend a lot of time disambiguating coverage, you might spend more time reviewing than you would have spent just starting from scratch.

Here are some things I look at when trying to determine if an existing test bed is a time sink:

  • There's no clear summary of what's included in the test bed.
  • No one on the team was around when the test bed was originally used. It's coverage is hearsay.
  • A preliminary review of the test bed shows that several different types of updates are required to make them useful (data elements, screen shots, endpoints, etc...).
  • 100% of the original test bed development and execution was done by an external provider and the artifacts were "turned over" at the end of the project.
15Dec/09Off

Draw it five times before writing it down

Any time I'm planning a testing approach for a project, I try to come up with a way to model it visually (flow charts, system diagrams, sequence diagrams, venn diagrams, other...) so I can quickly explain what I think we're testing and how we're testing. I usually end up drawing my picture of our testing on whiteboards, flip charts, and the back of napkins and scrap paper hundreds of times in a project. Over time, my diagram changes as I add more detail and my story of our testing gets richer.

The more I draw the picture of our testing, the more feedback I get. Its for this reason I make sure I draw it a minimum of five times, for at least five different audiences, before I commit my picture to any formal medium (like Visio or Word). History tells me I don't know anything until I'm at least at version 0.5 of my picture. And even then, things are still changing regularly. But after five, I normally have the outline.

As I draw, I'm telling the story of what our testing will look like. I always tell the entire story, even if I think the person I'm telling it to may already know what we're going to do. Early on, I hear "you can't do that" or "that's not how it works" at least once every five minutes. If I don't hear someone saw I can't do what I'm thinking, or express some other concern, I start to wonder if they're really listening to me. Because for any project of even medium complexity, testing is messy (environments, domain knowledge, resources, orders of magnitude estimates, etc...).

On a side note, my iPhone makes a great repository of photos of draft versions of the picture so I can see how it evolves over time. After the first week of a project, I almost have a flip-book for how our test approach unfolded. Kinda neat.

Filed under: Test Planning 1 Comment
14Dec/09Off

Order of magnitude estimates

I'm not a big fan of throwing around numbers when talking about testing. I understand that saying things like "We have 100 test cases" doesn't really communicate anything other than a number. However, I have found that using order of magnitude numbers can help communicate size and scope to other project/test managers when planning the project.

I find that as we're developing resource plans and course-grain timelines, orders of magnitude can help imply level of effort. If we're talking about scripted or automated tests, I'll talk about tens or hundreds of tests. If we're talking about sessions or charters, I'll talk in powers of two (2, 4, 8, 16, or 32).

Sometimes, when we think everyone's on the same page, we can quickly gauge each others understanding of how much testing might be involved. If we're talking about testing something and I'm not sure we have the same understanding of the amount of work involved, I might ask "How many tests do you think that is?" If you say tens of tests, and I'm thinking hundreds, that's a good indicator you and I need to get on the same page. We've identified an opportunity for talking about what our "tests" entail and what level of coverage we really want.

Filed under: Test Planning No Comments
12Dec/09Off

Matrices to understand large projects

When working large test projects, I have a couple of matrices that I try to develop early on to better understand who's doing what, where are they doing it, and when they are doing it. These include matrices that show:

  • type or phase of testing by owner (including specific scope of coverage by team)
  • type or phase of testing by environment (including data needs/integration dependencies)
  • type or phase of testing by iteration (including dates, resources, and summaries of coverage for each iteration)

For me, these three views of the project can often paint a summary picture of everything that's happening. This allows me to quickly communicate to other project managers involved in the project or program. It also allows me to communicate updates in a format that those same PMs will take the time to look at. (I find very few people even bother to look at a 30+ page document that's been updated.)

Filed under: Test Planning 2 Comments
11Dec/09Off

Capture the testing workflows

When I start test planning for a large testing project (large to me is defined a couple of ways: length, number of people, or budget), often I'll start like everyone does by creating a test strategy. For me, early on ideas are fuzzy. I'm learning about the project goals. I'm often learning about the company and their business. Or I'm learning their processes, tools, regulations, and people. There's a lot of ambiguity about what we're going to do and how we're going to do it.

One thing I've found that really helps at this stage of the project is to create testing workflows for each type/phase/stage of testing that we'll be doing on the project. When I say workflow, I mean a simple one page flowchart diagram of the activities involved in testing some "thing." From where the requirements are coming from, to how we're capturing tests or test ideas, to how we're executing them and storing results. I'll often put the key decision points in there and show how those affect process flow.

I'll then circulate these workflows among the project team to solicit feedback. You'd be amazed how helpful this is for everyone - not just me. Often, other people in the project don't know exactly what the testing team is doing. They are work from assumptions that have on what you need, when you need it, and what you'll do with it. Detailed workflows like this dispel those assumptions.

Another quick tip: For all those testing project managers out there, workflows like this serve another purpose. Once you have them done, you basically have a work breakdown structure for each type of testing you'll be doing on the project. And it's in a much more accessible format than a mpp file.

Filed under: Test Planning No Comments
22Nov/09Off

Prioritizing your exploratory tests for a given session

Today's tip comes from Christina Zaza. Tina gave an experience report recently at IWST, and in that talk she outlined some of the different ways she prioritizes her tests when she sits down to do exploratory testing:

  1. run the faster tests (or quick tests) first to get them out of the way
  2. run the higher risks tests (or tests more important to the business) first, since they will likely yield the most actionable results
  3. group features together to reduce context switching while testing

Categories

Authors

Pages

 Quick Testing Tips proudly uses PHP Speedy