Wednesday, August 8, 2012

Cookie Testing

Why Cookie is needed?
As you know Stateless (HTTP) protocol which does not record previous interaction, it treat every request as new. Suppose your browser wanted to interact with some XYZ server.So,Browser send first request to the XYZ server using stateless HTTP Protocol, Then XYZ server send response of your first request, once you received first request and again browser send second request to XYZ server that time XYZ server treat second request as new request.It doesn’t bother about what it send earlier? It doesn’t keep the record. So,Now can you imagine how stateless http work in ecommerce site, shopping site ?how theses site keep record of the purchase item? User identity and all?
Answer of all is Cookies.

What is Cookie?
The cookie is a text file saved in your browser's directory or folder and It stored in RAM while your browser is running. Cookie generated by a web server and stored in the user's computer, ready for future access. Normally Web sites use cookies to store personal preferences or tracking data.

There are two types of cookies
1. Persistence Cookies: The cookies that written permanently on the user machine. Max age of this cookie is 1 year.
2.Session Cookies: The cookies active till the browser open when we close the browser cookie get deleted .

Where the Cookies stored?
Cookies are stored in a cookie.txt file located in  user profile directory
C:\Documents and Settings\Username\Application Data\Mozilla\Firefox\ cookies.txt
IIN IE browser you can easily find the cookie path where the cookie is stored on the computer.
Go to tool>>internet option >>General tab>>under Browsing history>>Click on setting>>there you find current location of cookies
Basically you can change your browser setting according to your need. If you want that before storing the cookies by web site it will shows prompt message or something warning so you can change the setting or Even you can disable the cookies also.


Cookie Attribute:
Cookie basically come with name-value pair, apart from that server set expiration time, path, cookie domain ,maximum age.

Now the next questing is how to test Cookie? How to do Cookie testing?

Disabling/Deleting the Cookie:
Delete the all cookie set by site which under test. One thing which is important that deleting Cookie you need to close browser so that no pre-session cookies in memory.
After that test those feature and function of the site which require the cookie ,you will come to know that those feature doesn’t work because of deleting those cookies which help to run the feature. That doesn't mean it's bug, it’s happened because of the disabling the cookies. It's  might possible that not every user keep the cookie enable, In that case those site require cookie need to be enabled to work the site then the site has to be send message to user that cookie need to be enable to work the site.

Reject Cookie:
You can do testing of cookie by accepting some cookies and rejecting other and check the functionality howspan style="mso-spacerun:yes"> 
iit work by rejecting cookie. For that you need to set your browser’s cookie option to prompt you whenever website attempts to set a cookie and then exercise the functionality.

Corrupt the Cookie:
For that you need to know whether the cookies are stored. Then change the cookie parameter like cookie name, expiry date, session id and all.

Check that Cookie generated by different browser:
Here the site which is under test which need to be check different browser. That different browser site generated the cookie or not .

Check the how Cookie stored sensitive Data:
It's important that sensitive data need to be stored in encrypted format.Sensitiva data like User credit card ID,User Data etc.So even if some one open the cookies file then can not mess with the data. So that need to be check how the cookie stored the sensitive data.

 Related Documents:

Thursday, August 2, 2012

Difference between Build,Release and Version

NO
NO Build Release Version
1 Build is Executable file. Release means which ready to use it. Version is extension of the build.
2 Build is handed over to the tester to test the developed part of the project. Release hand it over to Client/Customer after completion of development and testing phase. Version is number of release made according to the addition of requirement of the client.
3 Build refers to the S/W part which  still in testing. or which is not tested yet. Release refers to the S/W which is no longer in testing. Version refer Variation of an earlier or original type of S/W
4 Build can be rejected by test team if defect found or it does not meet the certain requirement. One Release can have several builds associated with it. Version  based on the Build, not Vice Versa..
5 Build is nothing but a part of the application. Release is noting but the application. Version is nothing but the application.
6 Eg: Componet Eg: Apple released new iphone 4. Eg: I have downloaded latest version IE9

Monday, July 30, 2012

POC and POO


Point of Control (POC): Point of control is the point at which test objects are supplied with test data.

Point of Observation (POO): Point of observation is the point at which test objects are logged and investigated.

In Black box testing the Point of observation is outside the test object, and Point of control is also situated at outside the test object. Here test object it can be your module/component, System .In Black box testing as you know you can’t see internal behaviour of the test object. So that why the POC and POO situated outside the test object. In black box testing the Point of control are appropriate test input data, appropriate test precondition. The Point of Observation is output, result.

In white box testing the Point of observation and Point of control is situated inside the test object. Here Test object can be source code, design, and requirements. In white box testing as you know that you can see internal working of code. Here internal processing of test object as well as output is analysed that’s nothing but Point of observation .and Point of control is also located inside the test object .The POO and POC is one of the white box testing technique.


Sunday, July 29, 2012

Difference between Top-Down Testing and Bottom-UP Testing

NO
NO Top- Down Testing Bottom-UP Testing
1 Top-Down testing conducted from main-module to sub module. Bottom-Up testing conducted from sub module to main module.
2 If sub module is not developed a temporary program called Stub is used for simulate the submodule. If main module is not developed a temporary program called Driver is used to simulate the main module.
3 Top -Down testing good if major flaws occur toward the top of the program. Bottom-Up Testing good if major flaws occur toward the bottom of the program.
4 In this test condition difficult to create. In this test condition easy to create.
5 Observation of test output is more difficult. Observation of test output is easier.

Thursday, July 26, 2012

Top Down & Bottom UP Testing



Top-Down Testing:
Top –Down Testing take place from Top to bottom In this testing Stubs used. “Stub” it’s special purpose software component . If sub module is not developed a temporary program called that is Stub. A stub is called from software component to be tested.

During Testing X  call the Stub A or Stub B.
1.       X calls Stub A  , If error occurs then will come to know that problem is in A or problem in interface between Component X and Stub A
2.       X calls Stub B  , If error occurs then will come to know that problem is in B or problem in interface between Component X and Stub B

Important Note: Remember that here we are testing the component X using Stubs A and B. Stubs are used to simulate the activity of the components that are not currently tested.



Bottom-Up Testing:
 Bottom-Up Testing take place from Bottom to Top.  If main module is not developed  a temporary program used  that is Driver. “Driver” its Software component which calls a component to be tested.


During testing Driver X calls Component A or Component B
1.       Driver X calls component  A, If error occurs then will come to know that problem is in  Driver X or problem in interface between  X and component  A
2.       Driver X calls component  B, If error occurs then will come to know that problem is in  Driver X or problem in interface between  X and component  B



Important Note:
Remember that here we are testing component B and C using Driver X


Example:
Cab Service :  Unit Testing of “Customer order Decline” Program , Here a driver will have code which will create customer order records using hardcoded data and then calls Customer order decline program. Program customer order decline uses another unit which Check how many customer raise the request for cab on same time, check that cab is available or not some complex thing. For checking and calculation call to this unit will be replaced by Stub.

Tuesday, July 24, 2012

Difference between Static Testing and Dynamic Testing


NO Static Testing Dynamic Testing
1 It's testing of without executing of the Software. It's testing that involves the execution of the Software.
2 In Static Testing software are examined manually and some Static analysis tool used. In Dynamic Testing software executed by giving set of inputs,examined  it's output and compared what is expected.
3 Static Testing can start early in the life cycle.Eg: By Verifying User Requirements. Dynamic testing can start after development of software components.
4 Types of defect find in Static testing are : Missing requirements, Desgin defect ,Syntax Error etc. Types of defect find in dynamic testing are : Variables not constant ,checking if output from the expected values.
5 Types of Static Testing : Review ,Inspection , Walk-through. Types of Dynamic Testing: Unit testing,Integartion testing, System Testing, Acceptance Testing.
6 Static Testing find bug before you compile. Dynamic testing find bug after compilation, linking.
7 Static Testing is about prevention. Dynamic Testing is about cure.
8 Static Testing is most cost effective than Dynamic Testing. Dynamic Testing not Cost effective as compare to Static Testing
9 Static Testing done in the verification stage. Dynamic Testing done in validation stage.
10 Static Testing gives 100% statement coverage. Dynamic Testing does not give 100% statement coverage.

Sunday, July 22, 2012

What’s Specification and Requirement mean?



So many times we read, hear that requirement should be clear, understandable but what exactly requirement is it? Does requirement and specification are equivalent?

Requirements are what program and system should do, Specifications are how you are going to do it.

Requirement represents the application from the perspective of the user or business. Specification represents the application from the perspective of technical team.

Specifications are outcome of the conversations, discussion of group of people on the requirements.

Tester need to be work on the specification because it specific ,It’s help you out to do testing activity because requirements might be unclear ,messy sometimes. And “Yes” Requirements and Specifications are not equivalent.

Thursday, July 19, 2012

How much testing should we do ?


There are question people asked that can you test the software fully? Can you test everything ?then quick response  of some people that -"yes", Everything should be tested. But is it possible to test everything (All combination of inputs and conditions)?

As Tester we need to give confidence to the software/product, The software is good to be  release whether you test completely or you do exhausting testing but it’s very important what customer and project manager expecting from you what they ask for.

when we say how much testing is enough we need to take care of level of risk in product/project then that risk can be business risk, technical risk etc. we need to consider time and budget. That mean in what time we need to complete our testing activity by given budget.

Now the question come over here can we test everything ?Suppose we need to test one text box field which can take only a character,so here can you going to check all upper and lower character ,special character for valid values and for invalid values are you going to check all digits and blank space. Here we are talking about only one text box but when more than one text box will come so can you imagine how much combination and inputs require, does it possible to test everything in give time ? No, it's not possible .In that case you need to do testing with smart way using various type of technique ,understanding the customer requirements, risk and of course you need to do all those thing  by given time frame.

Tuesday, July 17, 2012

What is root cause analysis?(RCA)



Testing is activity to find defect, prevent defect and gain the confidence of the software but when we detect the defect, failures we need to find out real reason why that happened? what‘s the root cause of that failure? for that we need to analysis the root cause. When we say the root cause that mean when you fix it, when it get resolved and prevent the recurrence of the problem.


Root cause Analysis is the a systematic way to know actual root cause of our problem. There are server ways to analysis the root cause and different techniques too .Every organizations has different techniques and different method to do root cause activity.Understanding the root cause of defect is an important aspect.Many time (RCA) done once event has occurred. But we may make it useful as pro-active method.

Example of Dish washer:
“Machine is 1 week old (Serial no: 123456) After few minutes of loading utensils I see the foam outside the dishwasher”
Now what will be next? The technician check the dish washer operation to test procedure.Technicians determines the cause or investigate why that happened.
Some of the obvious causes technician discover might be:

Liquid dishwashing soap used instead of automatic dishwasher detergent.

Too much automatic dishwasher detergent.

Examine the drain hose to make sure it isn’t kinked.

There are several tool used for the root cause analysis:

Brainstorming:
It's a process where people get together to examine the problem, where the group quickly generate many ideas for the particular problem.
It's a very useful technique because it uses collective brainpower to generate many ideas in a short period of time.

Fishbone diagram:
It is also known as cause –effect diagram, it's a technique to graphically identify and organize many possible causes of a problem
It's help to identify the most likely root cause of the problem.This tool can help focus problem solving and reduce subjective decision making


As tester , we want not to just detect the defect and report it but we need to think about any potential causes of failures.


Wednesday, May 23, 2012

Negative Test Cases for Email Address


NO Negative Test case For Email Address Explanation
1 abcdefgh Missing @ sign and domain name
2 #$%^&*@.com Garbage valaue
3 @domain.com Missing Local part(Username)
4 email.co.in Missing @ sign
5 .Email@domain.com Leading dot is invaild
6 email.@domain.com Trailing dot is invalid
7 email....email1@domain.com Multiple dot
8 email@domain Top level domain is missing
9 email@-domain.com Leading - in front of domain
10 email@12344.4444.555.555 Invalid IP address format
11 あいう@domain.com Unicode character invalid

Tuesday, May 22, 2012

Positive Test cases for Email Address


NO Positive Test case For Email Address Explanation
1 email@domain.com valid email with all lower case letter
2 EMAIL@domain.com Valid Email with upper case letter
3 firstname.lastname@domain.com Email contain dot in address field(Local Part)
4 firstname-lastname@domain.com Email contain dash in address field(Local Part)
5 email@subdomain.domain.com Email contains dot with sub domain
6 email@123.123.123.123 Domain is valid IP address
7 email@[123.123.123.123] Square bracket around IP address
8 "email"@domain.com Quotes around email address(Local Part)
9 abc123@domain.com Email contain alpha numeric character
10 12345@domain.com Email contain only digit
11 email@dmain-coo.com Dash in domain name
12 _@domain.com Underscore in the address field
13 email@domin.name .name is valid Top Level Domain name
14 email@domain.co.in Dot in top level domain name

Sunday, May 20, 2012

What is SEI,CMM,CMMI and ISO


SEI:
Software Engineering Institute. It is Active development of the model by the US Department of Defence Software Engineering Institute (SEI) began in 1986.

CMM:
Capability Maturity Model. The term maturity relate to the degree of formality and optimization of processes. There are five levels defined in CMM.
Level 1: Initial  - It is the starting point for use of a new or undocumented repeat process.
Level 2: Repeatable - the process is at least documented sufficiently such that repeating the same steps may be attempted.
Level 3: Defined - the process is defined/confirmed as a standard business process, and decomposed to levels 1, 2 and 3.
Level 4: Managed - the process is quantitatively managed in accordance with agreed-upon metrics.
Level 5: Optimizing - process management includes deliberate process optimization/improvement.

CMMI:
Capability Maturity Model Integration . It is a process improvement approach that helps organizations improve their performance. CMMI can be used to guide process improvement across a project, a division, or an entire organization. It’s integrate traditionally separate organizational functions, set process improvement goals and priorities, provide guidance for quality processes, and provide a point of reference for appraising current processes.

ISO:
International Organization for Standards ISO 9000 is a series of standards, developed and published by the International Organization for Standardization, The ISO 9000 standard is the most widely known and It serves many different industries and organizations as a guide to quality products, service, and management.  In order to be certified, the organization must submit to an examination by an outside assessor.

Wednesday, May 16, 2012

Difference between Cookie and Cache


NO Cookie Cache
1 Cookie is a very small piece of information that is stored on the client’s machine by the web site and is sent back to the server each time a page is requested Cache is a temporary storage of web page resources stored on client’s machine for quicker loading of the web pages.
2 Cookie is to store information to track different characteristics related to user Cache is to make the loading of web pages faster
3 Cookies keep information such as user preferences Cache will keep resource files such as audio, video or flash files.
4 Cookies expire after some time Cache is kept in the client’s machine until they are removed manually by the user.

Tuesday, May 15, 2012

Tips for Bug Investigation


1       Analysis the software bug cause:
Find the real cause of the software bug;  that cause can be software design, code implementation, tester fault etc.
2       Investigate any other similar types of the bug:
Sometime it’s happen that the symptoms are different but cause is same. Or that bug may be find out the different area of the software system.
3       Check the symptoms of the bugs:
What are the symptoms of the stated bug that need to be check.
4       Reproduce the same bug:
Try to reproduce same bug with same environment which is stated on the bug report.
5       Check  the possible side effect:
Sometime some bug responsible to indicate possible side effects. These could be file corruptions, device failure etc.
6       Communicate with Team members:
Communication is very important. Communicate with them who are familiar of the system. They may be able to provide you some useful information and tips. Even they can provide you possible side effect.
7       Create new test and new data for the bug:
Creating new data, editing test script is useful to check the bug.
8       Report the bug:
       It is very important if you are doing bug investigation reporting the each test important because it can be useful and helpful too.

Thursday, May 10, 2012

List of HTTP Status Code


HTTP is request-response protocols. Every HTTP transaction has a status code .So for doing web application testing tester need to understand following status code too. Some of status codes are very common that are: 200,300,301,302,304,307,400,401,403,404,500,501,503.

List of HTTP Status Code:

1xx status code represents the information message

Eg:
100-Continue
101-Switching Protocols
103-Checkpoints

2xx status code represents the Successful message

Eg:
200- OK
201-Created
202-Accepted
203-Non Authoritative information
204-No content
205-Reset content
206-Partial content

3xx status code represents the Redirection message

Eg:
300-Multiple choice-Max 5 address
301-Moved permanently
302-Found (Moved temporally)
303-See Other
304-Not modified
306-Switch proxy (No longer used)
307-Temporally redirects
308-Resume incomplete

4xx status code represents the Client Error message

Eg:
400-Bad Request
401-Unauthorized
402-Payment required(Use in future)
403-Forbidden (Server refuse the request)
404-Not found (Request page not found currently but it available in future)
405-Method not allowed
406-Not acceptable
407-Proxy authentication required
408-Request timeout
409-Conflict
410-Request page is no longer available
411-Length required
412-Precondition failed
413-Request Entry to large
414-Request URL too long
415-Unsupported media type
416-Requested range not satisfied
417-Expectation failed

5xx status code represents the Server Error message

Eg:
500-Internal server Error
501-Server does not recognize request method or it may not be fulfil the request
502-Bad getaway
503-Server is down or overloaded
504-Getaway timeout
505-Http version not supported
511-Network authentication required






Tuesday, May 8, 2012

Selenium IDE Features





Sunday, May 6, 2012

Software Testing Estimation


Estimation is important factor which associate with each project .The same thing associate to the testing task, testing team that how much time do they required to do testing activity.

Estimation should not be wrong or not to be irrelevant. Test Estimation should be realistic.

In testing there are number of activity need to do like requirement analysis, test planning, test case writing, test case executions, regression testing and all.

To define the test estimation tester has to understand the requirement clearly when project requirement take place.
Need to allocate the task properly. Task should be divide in such way that everyone occupy with proper task and that lead to complete the testing activity in allocated time here you need to understand  Members skill ,expertise which help to estimate the how much time requires to writing, executing test cases etc. See every test team member has their own speed like someone is faster than other to do testing activity.

 (Resources Availability like members presence)To do test Estimation should consider team member availability for particular testing task so that will help to allocating the task accurately.

If new feature is developed understand that feature properly .or if there enhancement is going on existing product then take help of last version project test cases ,script which will be help to do parallel testing.

Test Estimation  judgments come with the experience with previous project.

Bug checking ,regression testing is purely depend upon the size of the project .If more number of the featured develop the chances of bug and checking of the bug fixing more so it may be spoil the testing timeline so you need to be take buffer time for that so you can do this type of testing activity too.

Communication is very important factor, do not hesitate to take the help of and communicate with the team member, developer because at end the project needs to be complete given timeline with quality.




Wednesday, May 2, 2012

Requirement analysis : Why it is important?


Requirement analysis is very crucial part in testing and it is core activity of the tester.
Tester need to understand the requirements clearly. If there is bigger requirement that need to be split in small requirements and need to be work on it.

The requirement has to be clear, readable, understandable, traceable, and measurable.

If we say requirement clear that mean there is no confusion .If we say readable that mean any non-technical person need to be understand requirement .There is no any unnecessary technical term and It is easy to understand.

The Requirement should be measurable that mean no any assumption .For e.g. take web application if user enter the search term then application need to response as soon as possible. Seeing this requirement we can’t understand what exactly it mean? "as soon as possible" .does it response in 1min,60 sec or in 30 sec ? so there is need to be a specific time in which we can measure the response.

Requirement should be traceable with different level that mean it can be traceable to design level, coding or Testing level.
When we say traceable in testing that mean each Requirement has their own testcase.That requirement need to be traceable to their respective test cases.

The Requirements are key factor for the tester.

Communication is more important, if you do not understand any requirement ask the question until you understand requirements clearly.

Change in requirement: sometimes it happens the requirement get change so in that case it has to be defined process for receiving the new requirement and Ensure that the new requirement request is it approval from all stakeholder.

Tuesday, May 1, 2012

Difference between Thin Client & Thick Client


NO Thin Client Thick Client
1 In Thin Client, Application actually run on the server where Server situated anywhere  In Thick Client, Application Actually run on the Client and little work done on the server if needed.
2 Thin Client is also called as Small Client Thick Client is also called as Fat Client.
3 Thin Client require constant communication with server Thick Client no need require constant communication with server
4 Less security threats More Security issues
5 More downtime require Very expensive to deploy
6 Little data processing done in client machine More data processing done in Client machine
7 Thin Client Require more server demand Thick Client Require less server demand
8 E.g.: Browser Base Application E.g.: Windows base Application