INCLUDE_DATA

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

21Jul/10Off

Unlearning for testers

Today I want to present a non-technical advice: unlearning.

The traditional definition* of unlearning stands for giving up present habits and/or knowledge:

–verb (used with object)
1. to forget or lose knowledge of.
2. to discard or put aside certain knowledge as being false or binding: to unlearn preconceptions.
–verb (used without object)
3. to lose or discard knowledge.

_____________________________________________________
* -Taken from Dictionary.com

As we can see from this definition, there are negative and positive sides of unlearning.

How to benefit from unlearning?

  • Use it as a brainstorming tool
  • Use it as a problem-solving tool
  • Use it for retrospective analysis and learning

As an example, below I put a few core assumptions about software development and testing that have already been unlearnt or currently being unlearnt in the industry.

  • One needs requirements and test cases to do testing
  • Testing can only be conducted after a build is deployed on test environment
  • Verification tests passed -> no bugs
  • A role of written documentation is critically important in software quality assurance
  • Software quality can be unambiguously defined by requirements
  • No bugs found -> no bugs in software
  • No bugs in software -> customer satisfaction
  • Programmers do programming, testers do testing
  • Years of experience with tools, or techniques, or technologies is the most important hiring criteria
Filed under: Heuristics No Comments
14Jul/10Off

Crash test your application

ANCAP, the Australasian New Car Assessment Program, has a print advertising campaign warning motorists about the dangers of vehicles that have not passed their high standards. Crash test dummies try to escape from technicians in the ANCAP testing facility.

Image courtesy: theinspirationroom.com

 

Sometime ago I wrote about a quick way to shutdown a hanged application.
But, in fact, shutting down a working application could help you exposing certain types of resource management defects. This is how ends become means.

Sample tests, suggested below, were tried on different Windows Desktop applications, sometimes helping to reveal serious issues.

Local Tests

  • Start an application. Begin working process then shutdown the application in the middle of it. Start the application. See if it reports than the previous session wasn't properly finished (and does it suggest something about it, like "start in safe mode").
  • Start an application. Begin working process then shutdown the application in the middle of it. Start the application. See if it can access any previously opened files, and how is it handling and reporting the issues.
  • Change settings in an application, apply changes. Shutdown the application. If the application saves settings only at exit point, all changes will be lost.
  • Change settings in an application, apply changes and shutdown the application simultaneously. Start the application. See if it can access configuration files, does it report that they might be corrupted, does it suggest repairing them? (you can also try corrupting the files manually).
  • If an application allows running 2 copies: open 2, then shutdown one of them. Observe behavior of the remaining one.

Server Tests

  • Start a client. Shutdown a client. Try to login as the same user: a) immediately b) after a timeout given.
  • Start a client. Shutdown a client. Repeat this process (you may want to automate that) while monitoring how Server side of an application allocates and releases (does it?) RAM and hard-drive resources.
  • Start a client. Shutdown a client. Repeat this process (you may want to automate that) for a while - you may see errors like "max number of connections exceeded", etc.

Let us know results of your exploration.

16Jun/10Off

Ten 20 Years Old Usability Heuristics

Jakob Nielsen, one of the world's top experts in user interface design and application usability, was once already referred in Quick Testing Tips.

In today's tip I want to bring readers' attention to Usability Heuristics as ready-to-use test oracles. Please read entire list via the link provided, I put here just one as an example (per author's copyright requirements).

User control and freedom
Users often choose system functions by mistake and will need a clearly marked "emergency exit" to leave the unwanted state without having to go through an extended dialogue. Support undo and redo.

9Jun/10Off

SEED NATALI: GUI Step Automation Heuristic

Whenever you implement automation of GUI steps, suggested heuristic might help you to keep track of operations you need to code.

GUI Step

(click on the picture to see mind map in online version with expanded nodes)

SEED NATALI acronym stands for the following.

  • Synchronize till object
  • Exists
  • Enabled
  • Displayed
  • verify Number of Arguments
  • verify Type of Arguments
  • Log test flow
  • Investigate any issues occurred
21Dec/09Off

Ask for help

Here's how I can tell I need help:

  • I'm working at 1:00 AM and it's not because it's required (like some performance testing) or because I really like doing it (too much cool software and not enough daylight time).
  • People are talking about something that needs to be tested and I can't follow the conversation (due to a lack of domain knowledge or technical knowledge).
  • I'm missing deadlines (for the project I'm struggling with or for other projects because I can't get away from the project I'm struggling with).
  • I'm not happy with the quality of my work.

If one or two of those happen for a short period of time, I probably need help. If all of them are happening (like they are right now), I know I need help.

When you need help, ask for it. That's easy to say, but hard for a lot of people to do. I know it's hard for me. I also know it's hard for many people who've worked for me. For me, it's an ego thing. But sometimes I need to recognize that I'm not helping anyone (most of all myself) by trying to hide the fact that I need help. Often, help is there - ready and waiting to be had.

If you're overwhelmed, ask for help. You might be surprised where it comes from.

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.
2Dec/09Off

Quick tests for landing pages

Mary Flaherty wrote an article recently titled Are Your Landing Pages Driving Clients Away? In the article, she provides some great tips, that I think also make great test ideas. Here's a quick summary:

  • Does the landing page have a clear call to action? In her words, "Where's the doorbell?" Test ideas around this might include asking users if they know what they're suppose to do next once they hit the landing page. Or watching where they go and seeing if there's convergence or not.
  • Does the landing page present all the options in a manageable way? That is, can you quickly see what the options are, and find what you might need? In her words, "Which door is which?" Test ideas around this might include asking users to find specific information and seeing how long it takes for them to find it from landing - again looking for convergence. I might also ask users to write down what they think the site contains without navigating past the landing, and time how long it takes them to do it.
  • If you collect visitor information, only ask for what's absolutely necessary.  Test ideas include looking at the business process being served by collecting the information and evaluating how it would change if something wasn't collected. Is that ok? Less might be more at this early stage...
  • How is information laid out and what's the quality of the copy editing. She identifies this as the risk of "TMI." Test ideas include making sure the site has copy guidelines (and they are followed), ensuring the writing is appropriate for the audience (jargon, concepts, structure, etc...), and making sure the layout is visually appealing. Mary also talks about dumping unneeded animations, choosing relevant images, and keeping information up to date and relavent. All of these are possible tests and/or heuristics for possible problems with the site.

Check out the full article for more ideas.

29Nov/09Off

MARTA for managing risk

In a recent blog post, Antony Marcano posted his mnemonic for managing risk: MARTA

Mitigate
Avoid
Reduce
Transfer
Accept

Read the full post for details behind each point.

27Nov/09Off

A heuristic for regression testing

Recently, I've devised a mnemonic for regression testing: RCRCRC

3Nov/09Off

Manual calibration

Many times when performance testing, I'll manually calibrate my performance test script by loading the page manually and comparing those load times with those generated from my test tool. Doing this with a load of one user allows me to get an idea of how much my tool is skewing the numbers. Often, I find the tool is just a tad bit worse in terms of response times. If it's too far off, that normally tells me something is wrong.

Categories

Authors

Pages

Site speeded up by PHP Speedy Site speeded up by PHP Speedy