Pages

Showing posts with label Testing. Show all posts
Showing posts with label Testing. Show all posts

Sunday, June 27, 2010

How important to write test cases?

What i meant by test case?
First of all i should clear-up what mean to me as test cases. For me, test cases are list of test ideas by which test ideas can be listed as bullet order, row wise or any other format convenient to me for particular project or client. It also required to add tips or guideline for those test ideas which i think other can face difficulties to understand my test idea such as (but all are optional):
  • Required test data to execute the test if my test have required any specific data.
  • Environment related information if my test required to make any specific changes on the test environment.
  • Steps to execute the test if there have any complicated step to execute the test.
  • Also need to add tips for any special thing to follow while executing.
Be sure, here i'm not talking to add any straight-forward tips/guideline on test case for the testers, just want to add those thing which i feel un-usual to understand my test ideas.


Why required such test cases?

I know, many of the intelligent testers, test experts, consultants, will argue with me - why you required such test cases? Are you want to feed your testers? You should teach your testers - how to test, how to explore, how to use heuristics, how to use oracle, blah...blah...blah. Here i completely agree that i should teach my testers. And also i use those test cases to teach my testers, here might have another question....How?
Here i like to share my experience and context but others might have different context (i don't know). I have some well experienced intelligent testers, some are minimum experienced (less than 1~2 years) but promising, some are cub newbies and some are even fresher in my team. I never can expect i will get all the well experienced testers in my team (that will exceed my company budget!). So, what will happen when i assign to test a particular feature to an experienced/expert tester, suppose (s)he will generate 20 test ideas to test that feature. What if, i assign same feature to test to a cub newbies or even to a minimum experienced tester, will (s)he able to generate all the 20 test ideas which can generate by an expert tester? even-though, they are intelligent enough and i teach them how to test, how to explore.........often not possible because an experience tester learn/know more test ideas by his/her experience and those ideas may not be able to generate by an inexperienced testers, even though (s)he is promising and intelligent enough. So, finally what will happen if i assign to test a feature to cub newbies? (s)he can miss some important test to execute, by which some significant issues can be uncovered on that feature. Here test cases which contained listed test ideas will guide them for proper testing, help them to know several test ideas....and so on.

What more to do with test case?
Motivate testers to think beyond the test cases and to generate more test ideas while executing and list-out those test ideas by which it can be possible to know particular tester's thoughts, intelligence, exploring capabilities...and so on. Here another thing is related to my organization but may not in other organization, there are many clients want to see the test cases to ensure test coverages, which is valid and better than blindly trust to the test team and i think it somehow reduces some risk in some degree according to my context.

Readers, i like to know your point of view and experiences in this regard to clear-up my understanding and to remove misconceptions if i have any!

Enjoy testing! enjoy learning!
-----

(!) NOTE: There are few small updates made on the original post (mostly changed the choice of words for proper interpretation).

Wednesday, June 9, 2010

Comments are worthy for any blog post

Any blog post got a proper shape with the comments on it. Without comments a blog post can turn to dead-metaphor. To be sure, all the great blogger valued their blog reader who occasionally and/or regularly put comments (i.e. reader's view on the subject matter) on the blog posts.

Recently I had commented on Michael Bolton's blog post "Testers: Get Out of the Quality Assurance Business" but was not published and sent a mail to me "Hi Selim...It's not that I haven't published your comments because they're bad. I haven't published them because they're so good, and they're worthy of a thoughtful reply. I haven't done that yet, but I will. Cheers,---Michael B".
---I was surprised how a great blogger gave importance to his ordinary blog reader and also gave importance to any comment on his post.

After couple of days Michael Bolton posted a separate post to answer my question in response to my comment starting with the kind words like “Here’s a case where a comment and question were worthy of a post of their own”. Here is the link of that post http://www.developsense.com/blog/2010/06/doing-development-work-vs-doing-quality-assurance/
What a great effort done by a great mentor in the field of testing for an unknown tester!!

Also i should appreciate blogger like Pradeep Soundararajan, always i got quick response from him whenever i put any comment to his blog post or send any mail to him or for any instant messages.

What I conceived, commenting/questioning is the most beneficial way to eliminate misunderstanding/misconception and also it is a easy manner for stating my thoughts to get expert opinion against my thoughts. I believe, if my comment/question is not that much worst then it will be responded by author or even from other readers which will assist me to assess my thoughts. In one response Michael Bolton said “responding to comments is a reward in itself”, which is true indeed.

What i'm trying by this post, is to inspire Bangladeshi testers (who are silent) to read famous testing blogs and start commenting/questioning based on your own thinking and understanding, even start own blog. By this way Bangladeshi testers can be known to the world of testing community.


Enjoy Blogging! Commenting! Questioning!

Monday, April 12, 2010

Sum-up the learnings of Scenario Testing

Scenario Testing is one of the most important testing activity of a software testers, both functional and non-functional testers. I have tried to summarize the learnings of Scenario Testing based on BBST course http://www.testingeducation.org/BBST/ScenarioTesting.html and some other read.

About Scenario Testing


Scenario test involves a story about how the program is used, including information about the motivations of the people involved.

Scenario tests are realistic, credible and motivating to stakeholders, challenging for the program and easy to evaluate for the tester. Scenario test provide meaningful combinations of functions and variables rather than the more artificial combinations you get with domain testing or combination test design.

To perform Scenario Testing we have to imagine a real world situation, which involves a complex use of the Application. In scenario testing, we create a hypothetical situation the program could be run through, and then we run through it ourselves based on that situation. This helps us to evaluate the program's real-world adaptability, as well as help us to test many functions that are not frequently used or tested (or simply aren't tested thoroughly enough).

A well-designed scenario has five additional characteristics:
  • The test is based on a story about how the program is used, including information about the motivations of the people involved.
  • The story is motivating. A stakeholder with influence would push to fix a program that failed this test.
  • The story is credible. It not only could happen in the real world; stakeholders would believe that something like it probably will happen.
  • The story involves a complex use of the program or a complex environment or a complex set of data.
  • The test results are easy to evaluate. This is valuable for all tests, but is especially important for scenarios because they are complex.

Designing Scenario Tests

Designing scenario tests is much like doing a requirements analysis, but is not requirements analysis. They rely on similar information but use it differently:
  • In designing scenario tests, a tester doesn't have to reach conclusions or make recommendations about how the product should work. The task of a tester is simply to expose credible concerns to the stakeholders. In addition, the scenario tester's work need not be exhaustive, just useful.
  • The tester doesn’t have to respect prior agreements. (Caution: testers who belabor the wrong issues lose credibility.)
  • In designing scenarios, think of the states that the application can be in, via various actions by a given user. For example, on shopping website, you can design a scenario based on a series of actions that leads to selecting a particular grocery, putting it in a shopping basket, giving credit card information, and authorizing the purchase. You could try a valid credit card number and then various types of invalid credit card numbers. Those are the actions that you want to simulate in your testing.
  • Scenarios should be real life examples of system use.
The actions and the state are the conditions that you are seeking to validate with the test case. Conditions can be considered things like valid actions, invalid actions, pass actions, and fail actions.

Useful benefit of Scenario Testing

  • Scenario testing is used to create large test cases that model real use of the application by covering multiple requirements. These tests are used to find bugs in the system, learn the product, and find requirements problems.
  • Scenario testing helped us to focus on a user situation that was motivating and realistic.
  • Scenario testing is an excellent way to perform in-depth tests with many of a program's features all at once and evaluate how well they work together.
  • Scenario testing helps a tester place themselves into the position of the user, a task that is often very difficult. By working through a scenario test, a tester has certain conditions that help keep them more aware of certain ways a program acts.
  • Scenario testing allowed us to view the program through a different mindset, one through which many of the customers might also be viewing the program. By scenario testing, we have a much better chance of understanding how customers will feel using the program and how we can help make it easier to use the program.

Summary
  • A scenario test is a story that describes a hypothetical situation by simulating a real-life use of the application under test.
  • A scenario test should be designed to expose credible concerns to the stakeholder about the application under test.
  • In designing good scenario tests, you should consider the actions and states of the application that you are seeking to validate.
  • Scenario Testing are not designed for early testing. Other approaches are better for testing unstable code in early.

Hope this post will helpful to you. Enjoy Testing!