December 22, 2008

Cyclomatic complexity (McCabe’s Metric)

Software Testing Techniques Second Edition:Metrics and Complexity

McCabe's cyclornatic complexity metric (MCCA76) is defined as:

M = LN + 2P


L = the number of links in the graph

N = the number of nodes in the graph

P = the number of disconnected parts of the graph (e.g., a calling program and a subroutine)

Cyclomatic complexity provides some useful rules of thumb:

1. Bugs per line of code increase discontinuously for M greater than 10.
2. Arbitrary modularity rules based on length, when applied to straight-line code that has few calls or only one call, increase rather than reduce complexity.
3. The amount of design, code, test design, and test effort is better judged by cyclomatic complexity than by lines of code.
4. Routines with high complexity, say 40 or more, should be given close scrutiny, especially if that complexity is not due to the use of case statements or other regular control structures. If the complexity is due to loops and raw logic, consideration should be given to subdividing the routine into smaller, less complex segments in order to avoid the nonlinear increase in effort associated with high complexity.

December 19, 2008

The Program Environment

Software Testing Techniques Second Edition:Introduction

Program's environment is the hardware and software required to make it run. The environment also includes all programs that interact with—and are used to create—the program under test, such as operating system, loader, linkage editor, compiler, utility routines.

Because hardware and firmware are stable, we don't have to consider all of the environment's complexity. Instead, we work with a simplification of it, in which only the features most important to the program at hand are considered. Our model of the environment includes our beliefs regarding such things as the workings of the computer's instruction set, operating system macros and commands, and what a higher-order language statement will do. If testing reveals an unexpected result, we may have to change our beliefs (our model of the environment) to find out what went wrong. But sometimes the environment could be wrong: the bug could be in the hardware or firmware after all. Today's operating systems and firmware are also as buggy as new application software.

December 18, 2008

Testing process

The process starts with a program embedded in an environment, such as a computer, an operating system, or a calling program. We understand human nature and its susceptibility to error. This understanding leads us to create three models:
1) A model of the environment,
2) A model of the program, and
3) A model of the expected bugs.
From these models we create a set of tests, which are then executed. The result of each test is either expected or unexpected. If unexpected, it may lead us to revise the test, our model or concept of how the program behaves, our concept of what bugs are possible, or the program itself. Only rarely would we attempt to modify the environment.

December 17, 2008

Pesticide Paradox

Software Testing Techniques Second Edition:Introduction

You're a poor farmer growing cotton in Alabama and the boll weevils are destroying your crop. You mortgage the farm to buy DDT, which you spray on your field, killing 98% of the pest, saving the crop. The next year, you spray the DDT early in the season, but the boll weevils still eat your crop because the 2% you didn't kill last year were resistant to DDT. You now have to mortgage the farm to buy DDT and Malathion; then next year's boll weevils will resist both pesticides and you'll have to mortgage the farm yet again. That's the pesticide paradox* for boll weevils and also for software testing.

The Pesticide ParadoxEvery method you use to prevent or find bugs leaves a residue of subtler bugs against which those methods are ineffectual.

Test Design

Too often, test cases are attempted without prior analysis of the program's requirements or structure. Such test design, if you can call it that, is just a haphazard series of ad-lib cases that are not documented either before or after the tests are executed. Because they were not formally designed, they cannot be precisely repeated, and no one is sure whether there was a bug or not. After the bug has been ostensibly corrected, no one is sure that the retest was identical to the test that found the bug. Ad-lib tests are useful during debugging, where their primary purpose is to help locate the bug, but adlib tests done in support of debugging, no matter how exhausting, are not substitutes for designed tests.

The test-design phase of programming should be explicitly identified. Instead of "design, code, desk check, test, and debug," the programming process should be described as: "design, test design, code, test code, program inspection, test inspection, test debugging, test execution, program debugging, testing." Giving test design an explicit place in the scheme of things provides more visibility to that amorphous half of the labor that often goes under the name "test and debug."

December 16, 2008

Bug prevention

Testing and test design, as parts of quality assurance, should also focus on bug prevention. To the extent that testing and test design do not prevent bugs, they should be able to discover symptoms caused by bugs. Finally, tests should provide clear diagnoses so that bugs can be easily corrected. Bug prevention is testing's first goal. A prevented bug is better than a detected and corrected bug because if the bug is prevented, there's no code to correct. Moreover, no retesting is needed to confirm that the correction was valid, no one is embarrassed, no memory is consumed, and prevented bugs can't wreck a schedule. More than the act of testing, the act of designing tests is one of the best bug preventers known. The thinking that must be done to create a useful test can discover and eliminate bugs before they are coded—indeed, test-design thinking can discover and eliminate bugs at every stage in the creation of software, from conception to specification, to design, coding, and the rest. The ideal test activity would be so successful at bug prevention that actual testing would be unnecessary because all bugs would have been found and fixed during test design.

December 15, 2008

What is web server?

The term web server can mean one of two things:

1. A computer program that is responsible for accepting HTTP requests from clients, which are known as web browsers, and serving them HTTP responses along with optional data contents, which usually are web pages such as HTML documents and linked objects (images, etc.).

2. A computer that runs a computer program which provides the functionality described in the first sense of the term.

October 29, 2008

Manual Performance Testing Limitations

We can test an entire system for performance; manually by constructing an environment where many users work simultaneously on the system. But it has a lot of limitations.

Manual Performance Testing Limitations:-
➤ it is expensive, requiring large amounts of both personnel and machinery
➤ it is complicated, especially coordinating and synchronizing multiple testers
➤ it involves a high degree of organization, especially to record and analyze
results meaningfully
➤ the repeatability of the manual tests is limited

October 15, 2008

When deciding time lines for testing?


When deciding time lines for testing. Please consider a few guidelines when deciding time lines for testing and please mention the scope of testing.

1) Time for feature to test.
2) Time for all browser compatibility testing (If needed).
3) Time for testing the side effects of new implementation (Side effects properly discussed and mentioned by development team in a mail/document).
4) Time for testing on dev1,staging and live server (Time line should mentioned for testing on each server).

September 23, 2008

Difference between Level & Types of Software testing

One user asked this question, "In one interview interviewer ask me the level of Software Testing. I read one web site type of software testing are unit testing, black box testing, white box testing, etc. Also in one web site i read level of software testing is unit testing, integration testing, system testing. so it is level & type of software testing is same. If no, then please tell me the difference."
Answer:- Levels of testing and types of testing are not the same things.
**levels of testing depends on process and software development life cycle model followed for software development.
**Types of testing are what we test in a software.

Need clarifications on smoke testing???

hi friend...

I need some clarifications while performing smoke testing.I have some basic knowledge in smoke testing:

smoke testing:

"In software engineering, a smoke test generally consists of a collection of tests that can be applied to a newly created or repaired computer program. "

In software testing, a smoke test is a collection of written tests that are performed on a system prior to being accepted for further testing. This is also known as a build verification test. This is a "shallow and wide" approach to the application. The tester "touches" all areas of the application without getting too deep

1.Smoke test generally consists of a collection of tests?? What are the collection of test done while performing smoke testing?????

2.A smoke test is a collection of written tests that are performed on a system prior to being accepted for further testing...we need to write scripts to perform smoke testing, if it is so in what language and what is the use????

3.Can the smoke testing can be conducted to web based and windows based application????

4.The tester "touches" all areas of the application without getting too deep??? I am confused touching all the areas but without deeply how?????

I have posted the question in our geek forum under the category testing issues: Title need clarification on smoke testing

Looking forward to hear from you, that's why i have mailed you..

I am sorry if i have disturbed you??? but please help me out????? thousands of questions from my mind regarding this topic
I will be greatful to you...


September 12, 2008

Configuration Management Tool

Configuration Management (CM) is a tool that is used to manage change. Let's say Rohit and Raj are both tech writers and both are working on updates to a technical manual. During a meeting, their manager assigns them each a section of the same document to update.

The technical manual is stored on a computer that both can access. Without any CM tool or process in place, a number of problems could arise. One possible scenario is the computer storing the document might be set up so that Rohit and Raj can not both work on the manual at the same time. This would slow them down considerably.
A more dangerous situation arises when the storage computer does allow the document to be opened by both Rohit and Raj at the same time. Here is what could happen:

  1. Rohit opens the document on his computer and works on his section.

  2. Raj opens the document on his computer and works on his section.

  3. Rohit completes his changes and saves the document on the storage computer.

  4. Raj completes his changes and saves the document on the storage computer.
CM systems are based on a simple idea: the definitive copies of your files are kept in a central repository. People check out copies of files from the repository, work on those copies, and then check them back in when they are finished. SCM systems manage and track revisions by multiple people against a single master set.

VSS, IBM ClearCase are most popular CM Tool use by software companies.

Benefits of Configuration Management Tool

  • Optimize build times, improve reproducibility of builds

  • Manage files, directories and other development assets across the lifecycle

  • Work on the same code or release, more easily resolve conflicts, reduce confusion, and get more done in a short amount of time

  • Manage and control software assets across the lifecycle

  • Work on the same code or release, more easily resolve conflicts, reduce confusion, and get more done in a short amount of time

  • Fast access to virtually any version of any element

  • Continue development efforts while disconnected from the network, easily synchronize changes when reconnected to the network

  • Allow developers to work in their preferred environment

  • Trace the origin and detail of changes made to software assets, help meet compliance requirements

  • Manage and control software assets across the lifecycle

  • Support evolving organizational needs
-Rohit Sharma

September 11, 2008

When You Go For Interview and you are not selected

When You Go For Interview and you are not selected, then never underestimate your knowledge. You may be cut out because of knowledge but this is the case for a fresher only.

If you are an experienced professional, then only knowledge does not matters, there are lot of things, like

1) Your Domain of expertise.
2) Your Leadership qualities.
3) How quick learner you are?
4) What are the company requirements?
5) What is your expectation?
6) How much company can pay for that post?
7) How urgent is the opening?

So, its better to update yourself with new stuff, but it's bad to underestimate yourself.

August 12, 2008

Exploratory testing v/s Chess Game

Sometimes we have to follow the process of finding the most important bugs in a short period of time, this is called exploratory testing.

Exploratory testing is like a chess game with a computer. Tester revise his plans after seeing the move of your opponent. Yet all your plans can be changed after one unpredictable move of your opponent. Can you write a detail plan for a chess game with a computer?

Player uses all his knowledge and experience. He can define only the fist move in the game and it is unreasonable to plan far ahead. You can plan 1 move ahead, or 20 moves if you're a very experienced player, but you can't plan the whole game. To plan 20 moves he had to spend a lot of his valuable time (the clock is ticking).

Of course he is trying to find some information about existing situations between moves. This is exactly what an experienced exploratory tester does.

After running any test case, testers may need to find additional information about application and system from a developer, system architect, business analyst, or may be from literature. A lot of information is necessary for correct exploratory testing. Other teams whose products are used for creating the applications have influence on our testing too.


Following are eight basic principles of testing:

1. Define the expected output or result.
2. Don't test your own programs.
3. Inspect the results of each test completely.
4. Include test cases for invalid or unexpected conditions.
5. Test the program to see if it does what it is not supposed to do as well as what it is supposed to do.
6. Avoid disposable test cases unless the program itself is disposable.
7. Do not plan tests assuming that no errors will be found.
8. The probability of locating more errors in any one module is directly proportional to the number of errors already found in that module.

August 8, 2008

Why Traceability Matrix?

The client who had ordered for the product specifies his requirements to the development Team and the process of Software Development gets started. In addition to the requirements specified by the client, the development team may also propose various value added suggestions that could be added on to the software. But maintaining a track of all the requirements specified in the requirement document and checking whether all the requirements have been met by the end product is a cumbersome and a laborious process. But if high priority is not provided to this aspect of Software development cycle, it may result in a lot of confusion and arguments between the development team and the client once the product is built.

The remedy for this problem is the Traceability Matrix.

August 4, 2008

Benefits of Certification

  1. Increases Company Reputation
  2. Recognition by IT management for professional achievement
  3. Competency resources to IT staff
  4. Helpful for Marketing with the clients
  5. Increased Confidence in Personal Capabilities
  6. Improved Software Testing Methods, Techniques, and Measurement
  7. Certification gives you a competitive edge for promotion and hiring.
  8. Raises profile of testing in an organization
  9. Able to detect defects those others miss and save your employers and clients from costly and embarrassing field failures.
  10. Knows how to apply sound software testing techniques
  11. Reduced development costs
  12. Increased customer trust and confidence
  13. We understood the software life cycle
  14. Quality of the defect has been increase
  15. Understood the testing terminology
  16. Increase the standard for defect post
  17. Started thinking out of the box
  18. Communication
  19. Testing based on the risk factors
  20. We started concentrating on usability
  21. Started conducting meeting and reviews
  22. Soft skills (e.g. handling the development team)

August 1, 2008

Solution for Error-27728

If you get the below mentioned Error in Controller:

Action.c (56): Error -27728: Step download timeout (200 seconds) has expired when downloading non-resource(s)


VUser Generator Settings:

Go to Runtime Settings - Preferences - Options - Step download timeout

Increase the seconds which is displayed in “Step download timeout” field and click ok button.

Now compile and Run the script. After running the script create controller scenario for that script

Controller Settings:

Go to Tools - Options - Timeout

In timeout increase the disconnect time and click ok button

Now run the scenario


P.Rajesh Kumar

July 22, 2008

Ten things to avoid in a website

Ten things to avoid in a website
  1. Frames
  2. Over-use of "leading-edge" technology
  3. Scrolling text, marquees, and animations
  4. Complex URLs
  5. Orphan pages
  6. Long scrolling pages
  7. No navigation support
  8. Non-standard link colors
  9. Outdated information
  10. Long download times

Why do bugs occur ?

Question:- Why do bugs occur ?

Answer:- There are so many reasons for bugs to occur:-
1) Miscommunication or no communication
2) Unclear requirements
3) Time lines
4) Human errors
5) Technical reasons
6) Frequent changes in requirements
and so on...

July 21, 2008

Test Report

Dear friends,

In our company our team members follow the procedure below,
our Test report contains,
1.Revision History
2.Test case Index
3.Version Details
4.Test cases.
5.Defect/Error Report

What is the document procedure u all are using in ur company?
it'd be fine if we can share our ideas , for a beter Test Report .

Re: Difference between functional and technical tester?

On Mon, Jul 21, 2008 at 2:06 AM, preethi menon wrote:
Hi ,

what is the difference between functional tester and technical tester?




Break the word "technical tester", into "technical" and "tester". What do you thing if we say functional tester, it means it is related to software functionality. No, functional testing is a general term, and as we are talking about software in our discussion, so, it is understood that we are saying software functional testing.
In the same way, anything related to technology is technical, it may be related to software technology, electronic technology or anyone. A software tester is also a technical tester. There is no such difference between functional tester and technical tester, a functional tester is also a technical tester.
Correct me, if I am wrong. I may also wrong.

July 17, 2008

If developer do not accepts a bug; then what to do?

Question:- If developer do not accepts the bug; then what to do?

Answer:- Hi, many times this situation occurs, when a tester find the bug and report it to developers to fix. But still developers say no to fif the bug. The reason may not be that developers don't want to fix it. Reason may be:-

1) A related bug is already posted, so developer knows that fixing that bug will fix it automatically.
2) Developer is unable to reproduce the bug.
3) Developer is unable to understand the bug.
4) This is not a bug but functionality.
5) May be functionality has been changed.

In any case,
1)tester should communicate with developer and should ask for problem he is facing in reproducing the bug.
2)Ask him for additional help he wants.
3)Try to elaborate the bug report more every time you report the bug.

July 16, 2008

Re: Manual Software Testing

On Wed, Jul 16, 2008 at 12:31 AM, Anitha Saraswathi loganathan wrote:
Hi ,
my name is Anitha,
Regards to u.......
u r doing a great job..........
thank u so much for sharing ur knowledge & helping us .
what kind of questions will be asked in practical tests for s/w testing?
cud u reply soon pl..............

Thank you


Hi Anitha Saraswathi loganathan,

Nice to see your mail and for such a loving words. Actually questions depend on company work. In which technology company is working and what they are expecting from the candidate. You have not told me anything about the experience you have in testing. But for freshers the most important is logical thinking and basic knowledge of testing. Questions related to test cases and test plan are the most common questions to be asked by interviewers.

July 11, 2008

Pitfalls to manual software testing

Pitfalls to manual software testing, including:
  1. Manual testing is slow and costly.
  2. Manual tests do not scale well.
  3. Manual testing is not consistent or repeatable.
  4. Lack of training.
  5. Testing is difficult to manage.
  6. Time consuming.

Re: bugs..its very urgent

On Thu, Jul 10, 2008 at 10:49 PM, keerthika reddy wrote:
Hi ,
This is Keerthika. Your blog is awesome n u r doin a wonderful job dude!!!
I have sum queries reagrdin bugs
what could be the (realtime)bugs you come across in job portal and health care projects in terms of
1. high severity n low priority
2. high severity n high priority
3. low severity n low priority
4. low severity n low priority?
pls its very urgent
thanks in advance n lukin forward for ur reply
once again ur blog explores so much information abt testing n its quite useful 2.

Hi Keerthika,

Nice to see your mail. Thanks for such loving words. As per your question, I will tell you something first.

You should understand "Severity and Priority" first. Read about these terms, try to understand them. You can search and read about them on this blog itself. Why I am suggesting it to you? Because, not me but anyone can't answer your such type of questions. You have to find the solutions yourself, and you will, I am sure about it. I can give you gun, but you have shot it your self in battle.

Give me the description of the bug, you face during testing, I will tell you the severity of that bug to you. Let the priority to decide by your test manager, why to take tensions? :)

You may have live chat with me, If I am online and have time.

July 8, 2008


Hi bhagirath nagaraju,

Testing is not a magic stick, that you will roll and get the bugs in few seconds. It depends on business and application. It depends on risk, and more it depends on tester, who have to test the application. Still I will suggest you to to make a "Dry Run" of application, I am not sure whether dry run of your application can be completed within time period or not. But I will not suggest to dispatch a software without at least "Dry Run".

On Mon, Jul 7, 2008 at 1:38 AM, bhagirath nagaraju <> wrote:
If we have thousands lines of coding and we have to dispatch the software next day morning then which type of testing we needed to do?

July 4, 2008

Interview Question

Interview Question:- We have to design test Cases for an Application having almost same functionality for all users. But application also consist other functionality issues which is assign to only specific Users who have more rights in the Application like a Senior User can Approve and Modify his/her Junior task. So how I should prepare Test Cases w.r.t User (Senior & Junior, Admin) or w.r.t. functionality?

Answer:- I will suggest to test the functionality at highest level.

Then do security testing for junior levels, what they allowed to do, what not.

Because why to test same functionality again and again for all levels users, when we can test it at top level.

As said in question "Application also consist other functionality issues which is assign to only specific Users",

Actually this is not the functionality but security of the application as per my view.

If any reader suggest some good solution, his/her comments are welcomed.

June 25, 2008

Browser-side security risks

Browser-side security risks

1) Sometimes there are active content that crashes the browser. The reason of crashing may be anyone, but that is definitely an issue with our site if working well for others.

2) Sometimes some client side scripts damages the user's system. How is it possible, by installing spyware and viruses through site.

3) Sometimes user's privacy is not maintained. It may be due to bad rogramming or due cookies or something else.

4) If someone has hached your personal information, then the misuse of personal information knowingly or unkowingly provided by the end-user.

It's important to know that "secure" browsers and servers are only designed to protect confidential information against network transfer. Without system security on both browser and server sides, confidential documents are vulnerable to interception.

June 23, 2008

Re: about release

On Mon, Jun 16, 2008 at 10:49 PM, radha haribabu <> wrote:
What is Release? When will we do this?

Release is a common word having the meaning "prepare and issue for public distribution or sale". So, about which release you are talking about? Final release is definitely for the public/ customer.

But before final release these are always iterative internal releases. In terms of software a tester gets so many build release to test. After alpha testing, they are released for beta testing.

Re: about build

On Mon, Jun 16, 2008 at 10:33 PM, radha haribabu <> wrote:
Hi ,
Are u busy. Sorry to disturb u.
What is build?
How we will get the build?
What we will do after getting the build?
Build is the debugged code ready for testing.

How we will get the build, it depends on type of application and company strength.

Your project manager will always have a task for you with new build or old build, so you never to think about what to do will this new build. You have to think how to work with this new build.

June 20, 2008

System testing interview question

Objective type system testing interview question:-
A test run during System Testing is:
a. Error recovery.
b. Terminal handling.
c. Installation.
d. Keyboard handling

Hi, the answer of the question is (a)- "Error Recovery" testing. why?

To know the reason first you should be familiar with bug and error.

First bug exists in the application and later it becomes error. That later stage is "system integration", that's why system testing is error recovery testing also.

June 16, 2008

Different definitions of "Quality":-

Different definitions of "Quality":-

1) Quality is the faith of customer.
2) Quality refers to achievements or excellence of an product.
3) A specific characteristic of an object defines it's quality.
4) Quality is capacity to do something.
5) A Product is said to be a quality product if it satisfies requirements of the customer.
6) Quality is degree of perfection.
7) Quality is a Fitness for Use.
8) Quality is customer's satisfaction.
9) Quality means fulfilling expectations.
10) Quality means satisfaction within budget.

Re: System test

On Sun, Jun 15, 2008 at 11:15 PM, xuan thuan wrote:

Question:- Define System test?
1) System test is to verify if the whole system functions in correspondence to the system requirement.

2) System testing is usually performed after all modules, integration and unit testing have been successfully applied.
3) System test technique is normally black box test.

June 9, 2008

HTML validation testing


The first stage of checking a web-site is to make sure that you have valid HTML (or XHTML). This can be done with a HTML validator online or ofline. Your own browser may ignore certain errors, but there is a significant risk that markup errors will result in display problems in some browser or other.

There are sometimes reasons for including invalid HTML. For example some non-standard NOINDEX element, for the benefit of site search engine ranking. But you should only tolerate HTML validation errors if there is a clear need for the non-standard markup, and if you have tested the result in a variety of browsers.

Otherwise there should be no HTML validation errors and should be never, If you site is to work word wide, it should browser independent, with no HTML validation errors. Some online HTML validators are:-

June 6, 2008

Browser compatibility testing

Interview Question:- When I am testing my application with different versions of IE like 6.0 and 7.0, should I execute all the test cases or there are only certain test cases that need to be executed for each browser.

Answer:- As per my experience what is browser dependent, "design and Scripts". If I have written the test cases for client side validations, then I need to re execute all the test cases in both browsers. But if this is work at server side, I will not execute even a single test case again. I need not to worry at all.

Design is always issue for different browsers, so check all pages on different browsers.


SDLC is software development life cycle. SDLC starts even with an idea about new software and exists until software not dies (software never dies, but replaced by updated versions).

SDLC is phases are:-

1) Requirement Analysis
2) Design
3) Coding
4) Testing
5) Deployment
6) Maintenance

STLC is for testing. When testing will starts and when stops. Testing also never ends (it's only management decision on the basis of some milestones).

STLC phases are:-

1) Test Plan
2) Test design Specification 3) Test Case writing
4) Test case verification and execution
5) Test result and reporting
6) Regression and retesting

June 4, 2008

Test according to client requirements or application requirements or company requirements

Hi friends,

So many times I feel that application is behaving wrong and it should not behave like this. But when I raise this question in meeting, every times I got only one answer that "Customer is on the top".

Actually I also feel the same. But If you have client interaction you will get to know that client is not familiar with that issue at all. What you will do at that time. You have to keep your job, but this mean you will not tell the client about the issues, just only test what client says, not to test those test cases, which needed for the application. Think about it, and reply me back, what you think. I got a chance to talk with client, who is very technical, he said me to think logically and act in testing with test to break attitude. But if I do that, sometimes I get unexpected comments from my seniors. In this situation what do you think, what you should do?

Reply your comments, then I will tell you, how to manage this situation.

May 20, 2008

Why we should use "Excel Sheet" for test case writing?

Hi all,

It will look silly but it's an issue to discuss. Why we should write test cases in excel sheet when we have the option of word document also.

I have some point to support excel sheet, like one is :-

It is in tabular form.

But we can insert table in word document also. In word document we can send multiple information in single document, then why different excel sheet for test case writing? why not in the same document?

One more can be, Excel sheet support formulas. But can't we insert them in word document? Make this discussion healthy and valuable, please write your comments on it.

May 14, 2008

Re: suman from hyderabad

On Tue, May 13, 2008 at 4:28 AM, Suman Kumar wrote:
Hi ? hru????
This is sumankumar from hyderabad working as test engineer for prithvi
information solutions from past 2years.............i have gone through
your blog and keeping very good information.........and requesting you
keep on updating with real time scenarios.........

i wanna talk to u.............can u send me u r contact number later i
can ask some more questions..............

Thanks suman.

Actually I have switch my job now, so now I have less time for blog posting, still I will try my best for doing post and I will keep replying questions asked by mail to me. Those questions will automatically get posted on blog also for help other readers.

May 9, 2008

Re: Test scenario for GMT

On Fri, May 9, 2008 at 2:34 PM, priyadarshini patil <> wrote:

This is priya, i want to know that how to write test case for GMT i.e if i m going to watch a video with all my buddies, wherever they r in india or abroad. I want that all we r going to watch video at same time then how to check that the time i have sent is right according to their standard i.e when i m watching here at 2pm then they will be watching at the time when i m watching.

Please reply

Hi priya,

Nice to see your mail. As per your scenario, I can confirm one thing, there will be user profile page in your application, which will store their locality with country name. And if I am not wrong it will changing user time into international standard time in back end. you need to test that thing, that logic should work fine. Send them international standard time to view video, and it should converted to according to their locality, when displayed to user. I hope you are getting my point. More I can tell when i know the application functionality.

May 8, 2008

How operating system affects tesing?

Operating system is the interaction between hardware and software, so definitely it affects software testing also. There are so many softwares which says that we are not compatible with earlier versions of windows, or we are compatible with windows but not linux/Unix platform.

Even the software designed for a particular operating system is also affected by working of that operating system. If operating system is not doing the resource allocation properly, definitely a memory eager application will acquire all of the available memory of teh system and so how our application can behave as expected?

There are lot of things to be discussed about this topic, but i will prefer to answer readers comment instead of posting theory here. so start commenting.

May 7, 2008

Active testing v/s passive testing

Active Testing:-

In active testing tester introduced the test data and analyzing the results. For example, we will fill the tank of a car with 1 liter petrol and see it's average.

Passive Testing:-

Passive testing is monitoring the results of a running system without introducing any special test data. For example, a engine is running and we are listening it's sound to note noise pollution by engine.

User acceptance testing

What happened to the application if development team as well as testing team is satisfied with the application, if they say that system is ready for use, will client should use it? or should think once again before using it?

The final stage of a new or changed system after system testing is user acceptance testing. If successful, it signals the approval to implement the system live. Cosmetic and other small changes may still be required as a result of the test, but the system is considered stable and processing data according to requirements.

User acceptance testing can be of two types:-

1) Alpha testing
2) Beta testing

Alpha testing is testing of the system internally by non-team members.
Beta testing is testing of the system by actual users in user environment.

May 6, 2008


Capability Maturity Model (CMM): A five level staged framework that describes the key elements of an effective software process. The Capability Maturity Model covers practices for planning, engineering and managing software development and maintenance.

Capability Maturity Model Integration (CMMI): A framework that describes the key elements of an effective product development and maintenance process. The Capability Maturity Model Integration covers practices for planning, engineering and managing product development and maintenance. CMMI is the designated successor of the CMM.

Blocked test case

We write test cases, but can we execute all test cases at one time?

Or can we execute test cases randomly?

Actually we need to execute test cases in series, because sometimes one test case depends on result of other test case.

A test case that cannot be executed because the preconditions for its execution are not fulfilled is called blocked test case.

Back-to-Back and End-to-End testing

Back-to-Back testing is, in which two or more variants of a component or system are executed with the same inputs, the outputs compared, and analyzed. Back-to-back testing involves cross-comparison of all responses obtained from functionally equivalent software components. Whenever a difference is observed it is investigated and, if necessary, a correction is applied.

End-to-End testing generally ensures that all aspects of the business are supported by the systems under test. This is confirmation testing of overall process is performing well.

May 5, 2008

Test Scenario v/s Test Suite

Test Scenario

Test Scenario is set of test cases that ensure that the business logics are tested. They may be single tests or a series of tests, each depends on the output of the previous one. One test scenario should satisfies atleast one or more business logic.

Test Suite

A test Suite is collection of test cases and/or test scenarios that are related with each other. A test suite is a composite test scenario.

Integration testing

Integration testing phase comes after unit testing. Sometimes there are very typical interview questions arises on integration testing. For example:-

Integration testing is testing of two or more units in integrated form. We have 2 approaches for integration testing, one in Top down and other is Bottom up. The top-down approach to integration testing requires the highest-level modules be test and integrated first. The bottom-up approach requires the lowest-level units be tested and integrated first. Read one more definition, system testing, testing that attempts to discover defects of the entire system( all integrated units as one system).Now the question is,

Q. We are doing integration testing, and when we will integrate the last unit, what type of testing it is? It is integration testing or System testing, and why?

I am not answering this question right now, First I want to know readers views, then I will answer the question, so starts commenting as your answer of this question, it's really a good question generally asked by interviewers.

May 3, 2008

Joining two tables in a single query

Two tables can be joined together in a query in four ways:

  • Inner Join: Returns only rows from both tables that satisfy the join condition.
  • Left Outer Join: Returns rows from both tables that satisfy the join condition, and the rest of rows from the first (left) table.
  • Right Outer Join: Returns rows from both tables that satisfy the join condition, and the rest of rows from the second (right) table.
  • Full Outer Join: Returns rows from both tables that satisfy the join condition, the rest of rows from both tables.
for example:-

users.UserId ,users.FirstName ,users.MiddleName ,users.LastName
FROM Users inner join Properties
on users.userid= Properties.userid

you can use outer join,
right outer join or full outer join in place of inner join. There is no term like left inner join or right inner join.

Severity and Priority based on technical and business point of view

Severity is how critical the defect is ? How much it is effecting the functionality?

Priority is how quickly we need to fix the bug? how soon the bug should get fixed?

Let me take some example:-

1) If company logo is not properly displayed on your website, It will have high priority to be fixed, whereas it's severity is low. (High priority, Low severity)
2) You are doing online shopping and filled payment info, but after submitting the form, you get message that your order has been canceled.(High priority, High severity)
3) There is a mistake in spelling, like "You have registered success." Instead of successfully, here success is written. (Low priority, Low severity)
4) If we have a typical scenario in which application get crashed, but that scenario exits rarely. (Low priority, High severity)

I hope readers can understand how technical and business views effect priority and severity. Still any question please comment.

Responsibilities of a tester

Actually tester responsibilities vary and depends on process followed in a company.

There may be a tester who is writing testcases only, or a tester who is executing testcases and logging the bug.

But in general, what can be a tester responsibilities is a good question. So, a tester can:-

1) Understand requirements and write test cases according to requirements.
2) Execute test cases.
3) Report bugs using bug tracking tool.
4) Retest the fixed bugs.
5) Do regression testing
6) Prepare test report

These are general responsibilities, a tester may needs to wear many hats, depending on company strength and culture.

May 2, 2008

Group functions in SQL, used for database testing

Group functions are functions applied to a group of rows. Group functions are:-

COUNT(*) - Returns the number of rows in the group.
MIN(exp) - Returns the minimum value of the expression evaluated on each row of the group.
MAX(exp) - Returns the maximum value of the expression evaluated on each row of the group.
AVG(exp) - Returns the average value of the expression evaluated on each row of the group


SELECT count(*)as Total,
min(userId)as minimum,
max(userId)as maximum,
avg(userid)as average
FROM users
will return this result as shown in image, result depends on table data. Non-group fields can not be mixed with group fields in the SELECT clause.

SELECT count(*)as Total,
min(userId)as minimum,
max(userId)as maximum,
avg(userid)as average,
userid FROM users

is an invalid query. Userid can not be used, because it is not under group fields.

Select statement with "order by" clause

SELECT UserId ,FirstName, LastName,PrimaryEmail,Password ,RegistrationDate
FROM [PropertywalaDb].[dbo].[Users]
where [FirstName] like 'brij%'
order by Password, userid

You can see in the image, the result of the above query. First query result is sorted according to 'Password" Field. Then the result set get after sorting is again sorted on the basis of "UserId". The blue highlighted resul is first result set, sorted by Password and UserId. See the image carefully.

Test environment and UAT environment

Test environment is a controlled testing environment. When application is under developing stage , it's tested under test environment which simulates the behavior of real user environment.

User acceptance test environment is user actual environment, In which application have to work.

For example:-

When a man goes to moon, he is trained like he is on moon, in controlled environment. Because of difference in gravitational force and other climate differences. It is test environment testing.

But when that person is actually on moon and doing all acts as per expectation than it is UAT environment testing.

Bug tracking system

I think before understanding bug tracking system, readers should know, what is bug tracking?

Bug life cycle is :- New -> Open -> Assigned -> Fixed -> Re-tested -> reopen/Closed.

In this process bug have different stages at different time. It may be open, under fixing, have fixed and now tester have to retest it, like this. And now who will responsible to track these bug states, definitely a tester. This is called bug tracking, having record of open and closed bugs.

Manually it's a cumbersome task to have this record, so we use some software applications like bugzilla, VSTS, or other available. These applications are named as bug tracking system.

April 30, 2008

SQL interview- "ORDER BY" clause in "select statement"

If you want the returning rows to be sorted, you can specify a sorting expression in the ORDER BY clause. The following select statement returns rows sorted by the values in the "E-mail" column.

SELECT * FROM departments ORDER BY E-mail;

You can specifying multiple columns in the ORDER BY clause.

SELECT department_id, first_name, last_name, salary
FROM employees ORDER BY E-mail, salary;

If you want to sort column in descending order, you can specify the DESC keyword in the ORDER BY clause.

Load testing

Load Testing is end to end performance testing under production load. The primary objective of this test is to determine the response times for various time critical transactions and business processes and that they are within documented expectations.The test also measures the capability of the application to function correctly under load, by measuring transaction pass/fail/error rates.

Load testing is important to repeat as load tests may need to be executed several times in the first year of wide scale deployment, to ensure that new releases and changes in database size do not push response times beyond prescribed load. Application should work properly under mentioned load for prescibed number of users.

Beta testing

Beta means a measure of the volatility, or systematic risk, of a security or a portfolio in comparison to the market as a whole.

Beta testing comes after alpha testing. Versions of the software, known as beta version, are released to a limited audience outside company. The software is released to groups of people so that further testing can ensure the product has few or no bugs. Sometimes, beta versions are made available to the open public to increase the feedback field to a maximal number of future users. But it is done in case of web sites. For example:- Gmail is still in it's beta version. Generally beta softwares are free to use by users.

April 29, 2008

Interview Question

Question:- In customer details form, client raise the change to insert the two radio buttons after customer address. How you can test as a tester ?


1. Conform that radio buttons are present after the customer address.

2. Count no of radio buttons.

3. verify the initial state of the check boxes.

4. Only one should be selectable, not both at one time.

5. Verify radio button label name.

6. verify the alignment of radio buttons in the form.

Test cases for ATM Machine

1. Machine is accepting ATM card

2. Machine is rejecting expired card

3. successful entry of PIN number

4. unsuccessful operation due to enter wrong PIN number 3 times

5. successful selection of language

6. successful selection of account type

7. unsuccessful operation due to invalid account type

8. successful selection of amount to be withdraw

9. successful withdrawal.

10. Expected message due to amount is greater than day limit

11. unsuccessful withdraw operation due to lack of money in ATM

12. Expected message due to amount to withdraw is greater than possible balance.

13. unsuccessful withdraw operation due to click cancel after insert card

Interview question

Question:- If a project is long term project , requirements are also changes then test plan will change or not?why

Answer:- Yes. If requirement changes, the design documents, specifications (for that particular module which implements the requirements) will also change. Hence the test plan would also need to be updated. This is because "resources allocation" is one section in the test plan. We would need to write new test cases,review, and execute it. Hence resource allocation would have to be done accordingly. As a result the Test plan would change.

Retesting and Data Driven Testing

Retesting: it is manual process in which apllication will be tested with entire new set of data.

Data Driven Testing(DDT)- It is a Automated testing process in which application is tested with multiple test data. DDT is very easy procedure than retesting because the tester should sit and need to give different new inputs manually from front end.

Interview question

Question:- If you have executed 100 test cases , every test case passed but apart from these test case you found some defect for which test case is not prepared,then how you will report the bug?

Answer:- While reporting this bug into bug tracking tool , first you will generate the test case, write the steps to reproduce the bug. Then bug will be reported.

Interview question

Question:- Suppose the product/appication has to deliver to client at 5.00PM, at that time you or your team member caught a high severity defect at 3PM.(Remember defect is high severity)But the client cannot wait for long time.You should deliver the product at 5.00Pm exactly. What procedure you will follow?

Answer:- The bug is of high severity. So we can send the application to the client and find out the priority of the feature having bug. if its priority is low, then we can hide that feature otherwise we should:-

1.explain the situation to client and ask some more time to fix the bug.

2.If the client is not ready to give some some time then analyse the impact of defect/bug and try to find workarounds for the defect and mention these issues in the release notes as known issues or known limitations or known bugs. Here the workaround means remeady process to be followed to overcome the defect effect.

3.Normally this known issues or known limitations(defects) will be fixed in next version or next release of the software

Web testing and Client Server testing

Difference between Web testing and Client Server testing?

Testing the application in intranet (without browser) is an example for client -server. (The company firewalls for the server are not open to outside world. Outside people cannot access the application). So there will be limited number of people using that application. Client server application :-
--> runs in two or more machines
--> Application is a menu-driven
--> Connected mode (connection exists always until logout)
--> Limited / known number of users
--> Less number of network issues when compared to web app.

Testing an application in internet (using browser) is called web testing. The application which is accessible by numerous numbers around the world (World wide web). Web based application
--> runs in two or more machines
--> URL-driven
-->.Disconnected mode (state less)
--> Unlimited number of users
--> issues like browser compatibility, security issues, performance issues, etc

Interview question

Question:- Suppose you press a link in yahoo shopping site which leads to some other company website? How to test if any problem in linking from one site to another site?


1) Check whether the mouse cursor is turning into hand icon or not .

2) Check the link is highlighting when user place the cursor on the link .

3) Expected site is opening or not ?

4) If the site is opening then check is it opening in another window or the same window that the link itself exit (to check user friendliness of the link)

5) How fast that website is opening?

6)Site is opening according to the link or not?

7)All other sub links are opening or not?

Functional testing and regresion testing

Functional testing is a testing process where we test the functionality/behaviour of each functional component of the application, example minimize button,transfer button,links etc. We check what is each component doing in that application and what is expected?

Regression testing is the testing the behaviour of the application of the unchanged areas when there is a change in the build. We retest the build whether the changed requirement has altered the behaviour of the unchanged areas. The impacted area may be the whole of the application or a part of the application.

Interview question

Q. If a bug has high severity then usually that is treated as high priority,then why do priority given by test engineers/project managers and severity given by testers?

Answer:- High severity bugs affects the end users .Testers tests an application with the users point of view, hence it is given as high severity. High priority is given to the bugs which affects the development. Project managers assign a high priority based on development / deployment point of view.

Project v/s product testing

Projects are generally targeted to meet a client (fixed customer)requirement. But products are targeted to meet a market (dynamic user) requirement.

Difference in both type of testing can be understand by this example:-

We used to eat food at home, in home made food, we know what we want and what we have made? that is project testing.

But if we have to eat food in market, waiter will tell you the quality of their food, and still we don't know what exactly he is going to serve. This is product testing.

Brief introduction of test plan

Test plan can be defined as a document that describes the scope, approach, resources and schedule of intended test activities. The main purpose of preparing test plan is that every one concerned with the project are in synchronized with regards to scope, deliverables, deadlines and response for the project.

Test planning can and should occur at several levels. The first plan to consider is the Master Test Plan. The purpose of the Master Test Plan is to consider testing at all levels (unit, integration, system, acceptance, beta, etc.). The Master Test Plan is to testing what the Project Plan is to the entire development/testing effort.

General contents of a test plan:


This section should contain the purpose of preparing the test plan.


This section should talk about the areas of the application which are to be tested by the QA team and specify those areas which are definitely out of the scope.

Test approach :

This would contain details on how the testing is to performed and whether any specific strategy is to be followed.

Entry criteria:

This section explains the various steps to be performed before the start of test (i.e) pre-requisites.

E.g. Environment setup, starting web server/ application server, successful implementation of latest build etc.


This list out the people who would be involved in the project and their designation etc

Tasks and responsibilities:

This talk about the tasks to be performed and the responsibilities assigned to the various members in the project.

Exit criteria:

This contains tasks like bringing down the system or server, restoring system to pre-test environment, database, refresh etc.

Schedules/ Milestones :

This section deals with the final delivery date and the various milestone dates to be met in the course of project.

Hardware/ software requirements :

This section contains the details of system/server required to install the application or perform the testing, specific s/w that needs to be installed on the system to get the application running or to connect to the database, connectivity related issues etc.

Risks and mitigation process :

This section should list out all the possible risks that can arise during the testing and mitigation plans that the QA team plans to implement incase the risk actually turns into a reality.

Tools to be used :

This would list out the testing tools or utilities that are to be used in the project.

E.g. Winrunner, QTP, Test Director PCOM etc.

Deliverables :

This section contains various deliverables that are due to the client at various points of time. i.e. daily, weekly, start of project, end of project etc. these could include test plans, test procedures, test matrices, status reports, test scripts etc. templates for all these also be attached.

Annexure :

This section contains the embedded documents or links to document which have been/will be used in the course of testing. E.g. Templates used for reports, test cases etc. reference documents can also be attached here.

Sign off :

This section contains the mutual agreement between the client and QA team with both leads/ managers signing off their agreement on the test plan.

Boundary Value Analysis

This method leads to a selection of test cases that exercise boundary values. Rather than focusing on input conditions, BVA derives test cases from the output domain.

  • For input ranges bounded by a and b, test cases should include values a and b and just above and just below a and b respectively.
That is a, b, a+1, a-1, b+1, b-1
  • If an input condition specifies a number of values, test cases should be developed to exercise the minimum and maximum numbers and values just above and below these limits.
  • If internal data structures have prescribed boundaries, a test case should be designed to exercise the data structure at its boundary(in case of loops).

Equivalence Class Partitioning

This divides the input data into classes of data from which test cases can be derived. Equivalence partitioning reduces the number of test cases needed. Equivalence class represents a set of valid or invalid class for input conditions.

Equivalence classes may be defined according to following guidelines:

  • If an input condition specifies a range, one valid and two invalid equivalence classes are defined.
  • If an input condition requires a specific value, then one valid and two invalid equivalence classes are defined.
  • If an input condition specifies a member of a set, then one valid and one invalid equivalence class are defined.
  • If an input condition is boolean, then one valid and one invalid equivalence class are defined.

Is Black box testing is an alternative of white box testing?

Black box testing is not an alternative to white box testing. Black box testing attempts to find errors in the following categories:
  • incorrect or missing functions
  • interface errors (UI testing)
  • errors in data structures or external database access
  • performance errors and
  • Initialization and termination errors.
Black box testing and white box testing, both uncover different types of bugs.

Black box Testing

Black Box Testing is testing without knowledge of the internal workings of the item being tested. For example, when black box testing is applied to software engineering, the tester would only know the "legal" inputs and what the expected outputs should be, but has no idea how the program actually arrives at those outputs.

Take a simple example of coffee machine:-

We give input, water, milk and coffee powder.
Output- Our coffee is ready to consume.

We know if we will provide these inputs, this will be our output, but we don't know anything, how machine works, make it. That is nothing but black box testing.

Black box testing is testing with respect to specifications and customer requirements.

April 28, 2008

Are Cookies Dangerous to Computer?

NO, Cookies are not dangerous to Computer.

A cookie is a simple piece of text. It is not a program, or a plug-in or any script. It cannot be used as a virus, and it cannot access your hard drive or any other information. Your browser can save cookie values to your hard disk if it needs to, but that is the limit of the effect on your system. You can set your browser to not to save any cookie on your system, but in that case you need to provide your login information again and again to access secure pages.

Difference between testing and debugging

Testing is validating whether the application is working as per the Client's Requirements and if not then defects are logged. Testing is done by tester.

Debugging is to find out where code fail and fix it. Debugging is done by developers.

Different levels of software testing

Different level for software testing are:-

1)Unit level testing
2)Integration level testing
3)System testing
4)Acceptance testing

Difference between 'Testing' and 'Quality' ?

Testing is:-

1)The process used to help identify the correctness, completeness, security, and quality of developed computer software.

2)Process to ensure Quality.

3)Process to improve quality.

Quality is:-

1)Measure of conformance of a product or service to certain specifications or standards.

2)Meeting client’s requirements.

3) It is a measurement of user satisfaction.

Steps to start Testing

Before starting testing we need to follow these steps:-

1)Get requirements.
2)Make test Plan
3)write test cases
4)Build test bed.
5)Get all required software tools.
6)Divide work b/w team members.
5)Finally start testing.
6)Execute test case
7)Report bugs
8)retest fixed bugs
9)generate test report

Difference between sanity and smoke testing

Sanity Testing: Brief test of major functional elements of a piece of software to determine if its basically operational for exhaustive testing. It gives a measure of confidence that the system works as expected prior to a more exhaustive round of testing.

Smoke Testing: Smoke testing is testing whether new features or functionality added are working good with exiting one and there is no new problem in working code.Smoke tests are designed to confirm that changes in the code do function as expected and do not cause failure of the rest of an entire build.

Difference b/w static and dynamic testing ?

Static testing:-

Static testing is Verification activity.Tester have a checklist to check whether the product is as per the set standards of the organization.These standards can be for Coding, Integrating and Deployment.Review's, Inspection's and Walkthrough's are static testing methodologies.

In static testing code is not run to uncover bugs, but verify by experts to find any flaw.

Dynamic testing:-

Dynamic testing is validation activity.Tester have SRS to check whether the product is as per requirements of the user.Unit Tests, Integration Tests, System Tests and Acceptance Tests are Dynamic Testing methodologies.

In dynamic testing code is executed to find bugs, or to confirm that it's working well.

Test case for Date format month/date/year

Test case for Date field can be:-

1) test format which is allowed like mm/dd/yy or MM/DD/YYYY or which one allowed.
2)Test for boundary values for date and month.
3) Test For null date /month/year
4) negatine date/month/year
5)Check for 30th feb

like this more will depend on your scenario, whether any date is allowed or only user with 18+ is allowed etc.

difference between project and product testing?

There is no difference between project and product testing.
Every software product is a project for a company who develop it.It may be the case that company is developing it for itself, and for the sale in open market.

For example:- Windows operating system is a Microsoft product, but internally, for Microsoft it is a project.

I hope readers got my point.

What to do if bug not reproduce at developer sysytem?

Actually we can do nothing if bug not reproduce.

1)A tester should try simple steps which can reproduce the bug again because If not reproduce, that bug will be rejected.

2) Keep screen shots of the state of software behaving abnormal.

3)Use step recording and play tools to proper record the steps which can reproduce the bug easily, or at least can help in reproducing bugs.

4) sometimes it help me, don't know your development team support it or not, If I am able to reproduce the bug on my system, still developer consider it as a bug, try to find the reason.

Difference b/w effective testing and efficient testing ?

Efficient means performing or functioning in the best possible manner with the least waste of time and effort; having and using requisite knowledge, skill, and industry; competent.
Efficient testing will be testing which uncover most of the bugs in less effort and time.

Testing Efficiency = (No. of defects Resolved / Total No. of Defects Submitted)* 100

Effective means obviously whether we are getting the bug, whether there is any benefit of the testing or not. Effective testing is whether we are getting the bug or we are just wasting our time.

Test Effectiveness = Loss due to problems / Total resources processed by the system

Test case review sheet

Test Case Checklist





1. Is each test case numbered and named as per the standards?

2. Is it clear which features or requirements are being executed by the test?

3. Have test case(s) been identified for each test objective/scenario?

4. Have test case (s) been designed for the positive flows in each business scenario?

5. Have test case (s) been designed for the negative flows in each business scenario?

6. Have the test case (s) been designed for all simple boundaries —maximum, minimum, and off-by-one boundaries?

7. Are the test case (s) designed, redundant with any other test case or business scenario

8. Are the test case (s) designed in a flexible manner so that there are minimum rework required in case of change in requirements?

9. Have the test steps been correctly given in appropriate sequence for each test case?

10. Have the Expected Results been identified correctly? (Expected Results should clearly state how the application should respond to the user actions given in each step/action. - Ensure that too many things are not included to be verified under one expected output)

11. Are the pre-requisites described clearly for executing the tests?

12. Are the test cases traceable to a test requirement?

13. Has the test data set, if required been generated appropriately?

14. Are the test cases saved in the repository?

15. Have test cases been developed to exercise all error handling?

16. Have the related areas that could possibly be affected by the implementation of the requirement been identified and covered in the test cases? (Identify the impact areas and check with the test cases)

17. Have the test case (s) been organized in a hierarchical order and saved in the repository?

Search Here...

Popular Posts

Quick Test Professional