December 22, 2011

Googling specails


Google has set some more Easter egg specials in the search engine for this Christmas I think......
  • Do a Barrel Roll
  • Tilt
  • Let it Snow
  • Hanukkah
  • Christmas

-> Google Tilt: Search the term “askew”

-> Google Gravity: Search “Google gravity” and select  I’m Feeling Lucky button.

-> Google Sphere: Search “Google sphere” then   select  I’m Feeling Lucky button.  Type  “jegan raj kumar”

-> Google Rainbow: Search “Google rainbow” and select I’m Feeling Lucky.

-> Google “where is Chuck Norris?” and select I’m Feeling Lucky button. select the google logo... watch it

-> Pig Latin Google: For some Pig Latin fun, type in google “ooglegay igpay atinlay”

-> Google Pacman: Type in google “Google Pacman” and click the I’m Feeling Lucky button. Use your arrows to play a real game!

-> Google Guitar: Search “Google guitar” and click I’m Feeling Lucky.

-> Google Pirate: Search “Google pirate” and click I’m Feeling Lucky.

-> Google Hacker: Google is hacked Type in “Google hacker” and select  I’m feeling lucky.

-> Google Loco: Search “Google loco” and select  I’m feeling lucky.

-> Weenie Google: Search “weenie Google,” click the I’m Feeling Lucky button!

-> Epic Google: Or, search “epic Google,” click the I’m Feeling Lucky button, and see what you get.

-> Gothic Google: Feeling a bit dark? Search “Google gothic” and click the I’m Feeling Lucky button.

-> Google Flight Simulator: Enjoy the Flight Simulator when you go to Google Earth, click on Tools > Enter Flight Simulator and you’re off!

->  Type Google gothic 2 and select I’m Feeling Lucky button.

->  Type google gothic googoth and select I’m Feeling Lucky button.

->  Type  google gothic trick and select I’m Feeling Lucky button.

->  Type google gothic virus and select I’m Feeling Lucky button.

->  Type  google gothic 3 and select I’m Feeling Lucky button.

Still more fun in these......... :)

December 20, 2011

Testing is Very Easy!


Everybody think like “testing is very easy”, “Valid and Invalid scenarios to test are very less”. Do you think it’s true?
Answer: No, it’s not true. 
If any Software Tester is in searching of the text “testing an application in easy ways”, then they are like a “Frog inside the Well”. [i.e., they end up with nothing.]

Every Software Tester;  
   ü  Should Think Out of the boundary. 
   ü  Should know the requirement thoroughly.
   ü  Should know the minor functionalities in an application.
   ü  Should think like a domain user.
   ü  Should feed the application with step by step attitude.
   ü  Should test lot of complex factors.
   ü  Should be thinking nerd and know the brain storming process.
   ü  Should educate the team, as well as the client.
   ü  Should be a usability guy. 
   ü  Should test the application as their friend.
   ü  Should not give chances to others, to identify the bugs. If others found, say congrats to them.
   ü  Should converse reasonably with others.
   ü  Should be a problem solver.
   ü  Should be a chameleon.
   ü  Should be proficient enough to test in any technology. 
   ü  Should be honest with bugs.

Software tester can test the program completely by trying all the possible inputs and states of a program or in detail cautiously.
“Good Test Suite = A Variety of Test Scenarios

Consider an example for a login page:  A Software tester writes the test cases in distinct scenarios and they cover all the major functionalities. Herewith I am mentioning some of the possible scenarios that I have in my mind with regards to the three fields [Email ID (Text box), Password (Text box) and Login (Button)].


Validate whether the three fields are available.
Validate whether the valid users are logged in successfully.
Validate whether the valid user should be a registered user.
Validate whether the validation message is firing on blank submission.
Validate whether the validation message is fired for invalid “Email ID”.
Validate whether the validation message is fired for invalid “Password”.
Validate whether the validation message is fired for valid “Email ID” and invalid “Password”.
Validate whether the validation message is fired for invalid “Email ID” and valid “Password”.
Validate whether the validation message is fired for valid “Email ID” and empty “Password” submission.
Validate whether the validation message is fired for valid “Email ID” and another login’s valid “Password”.
Validate whether the validation message is fired for invalid “Email ID” and another login’s valid “Password”.
Validate whether the validation message is fired for invalid “Email ID” and valid “Password”.
Validate whether the Minimum & Maximum letters to be type in the text box needs to be verified.
Validate whether the page navigates to valid (Home) page after logged in.
Validate whether the application navigates to (Home) page after entering the login URL.
Validate whether the application navigates to (Home) page for browser back.
Validate whether the application password should be greater than minimum limit.
Validate whether the validation message is fired for “Email ID”, invalid symbols other than ‘@ and .’ are entered in text box.

Still writing these kinds of test case scenarios and they are not yet completed. There is no end for testing. Exhaustive testing is not at all possible.
One major thing is there which always affects the entire testing team, it’s “Time for Testing".
Have a Happy Testing Day.

November 21, 2011

Advantages of Ruby on Rails


The most successful web applications all have been made in Ruby on Rails. 

As of Example We can take twitter in ROR

The advantages of Ruby on Rails
 Faster development with less hassle.
 High-quality solutions in shorter time.
 Complex projects can be scaled more easily.
 Flexible development process with less documentation.
 It's the most advanced framework for web applications.
Ruby on Rails is a framework that brings everything together. Database abstraction, AJAX, test stack, the MVC pattern, etc.  all can be performed well using ROR. Non-RoR applications start simple but grow to monsters full of bugs over time. In Ruby on Rails, you can keep the same architecture and it works successfully.

On comparing with other languages  Ruby on Rails is very easy... I heard these sentences from my colleague...

November 15, 2011

Think out of the Box.. 8 beautiful HR Questions !!!


I got this question from another website its really interesting. So thats y i am posting here in my blog.
Here are some of the typical HR questions asked to find out if the candidates have "out of box" thinking capability:

Question 1:
"What will you do if I run away with your sister?"
The candidate who was selected answered " I will not get a better match for my sister than you, sir."
My Suggestion:
I response him like "Its great I feel like u r going to give a bright future for our sister. :p"

Question 2:
Interviewer (to a student girl candidate) - What if one morning you woke up & found that you were pregnant ?
I will be very excited and take a day off, to celebrate with my husband. (Normally an unmarried girl will be shocked to hear this, but she managed it well. Why should I think it in the wrong way, she said later when asked.)

My Answer:
I am not a girl so that’s not a problem for me J> But anyway The above answer is very much suitable for the question. I like it..... But I had a doubt in the above query. U can't easily judge that u r pregnant while u woke up. 


Question 3:
Interviewer: He ordered a cup of coffee for the candidate. Coffee arrived and was kept before the candidate, then he asked "What is before you?"
Candidate: Instantly replied "Tea" and got selected.
(You know how and why did he say "TEA" when he knows very well that coffee was kept before him?.
Answer: The question was "What is before you U? (-alphabet). Reply was "TEA" T (- alphabet).


My Suggestion:
I think I can tell it’s “before” word.


Question 4:
Where Lord Rama would have celebrated his "First Diwali"?
People will start thinking of Ayodya, Mithila [Janaki's place], Lanka etc...
But the logic is, Diwali was a celebrated as a mark of Lord Krishna Killing Narakasura. In Dusavataar, Krishnavathaar comes after Raamavathaar.

So, Lord Rama would not have celebrated the Diwali At all!


My Answer:
That’s the real fact so I can’t ignore it. 


Question 5:
You are driving along in your car on a wild, stormy night, it's raining heavily, when suddenly you pass by a bus stop, and you see three people waiting for a bus:
An old lady who looks as if she is about to die.
An old friend who once saved your life.
The perfect partner you have been dreaming about.
Which one would you choose to offer a ride to, knowing very well that there could only be one passenger in your car?
This is a moral/ethical dilemma that was once actually used as part of a job application.
* You could pick up the old lady, because she is going to die, and thus you should save her first; * or you could take the old friend because he once saved your life, and this would be the perfect chance to ! pay him back. *
However, you may never be able to find your perfect mate again...
The candidate who was hired (out of 200 applicants) had no trouble coming up with his answer. Guess what was his answer?
He simply answered:
"I would give the car keys to my Old friend and let him take the lady to the hospital. I would stay behind and wait for the bus with the partner of my dreams."
Sometimes, we gain more if we are able to give up our stubborn thought limitations. Never forget to "Think Outside of the Box."

My Wish:
I like the above answer. So I need to try for the same thinking in future..... planned to search for my dream girl.


Question 6:
The interviewer asked the candidate "This is your last question of the interview. Please tell me the exact position of the center of this table where u have kept your files."
Candidate confidently put one of his finger at some point at the table and said that this was the central point at the table. Interviewer asked "how did you decide that this is the central point of this table?", then he answers quickly that "Sir you are not supposed to ask any more question, as it was the last question as you promised .....


My Answer:
If the interviewer is asking questions with me in improper way then I mention him the answer is 320 degree left and 295 degree wide. We need to confuse the interviewer too. After that only we need to answer him like the above.

Question 7:
How many golf balls can fit in a school bus?


My Answer:
Its 2 Reason: two ‘O’ letter in the school is the hidden secret.


Question 7:

How many piano tuners are there in the entire world?


My Answer:
I answer for the above question its "2456315488" numbers randomly even the interviewer dont know the exact count. Hence I answer like that.

And hence, he was selected as because of his quick-wittedness.

This is what Interviewer expects from the Interviewee. ....

"THINK OUTSIDE OF THE BOX"

Testing The Normal Way is Not Enough

i) Do Not Leave Bugs to QA
While writing unit tests and doing it as early as possible. We all know it’s much cheaper to fix the early bugs found. We should not leave bugs to QA department.

ii) Test at First.
Start testing when you have something to test. Tester should start analyzing and testing the application in the starting stage itself, the better we (the testers) understand the product, the better it will be tested. Ideally, developers and testers should discuss how the entire functionality can be tested what can be left to the unit tests, what should be automated via functionality tests as well as prioritize the regression, load, performance, stress, etc. How it is going to satisfy the customers need

iii) Automating Everything is a Risk Process
A man with a tool is a fool. Tester should think out of the box for testing the application. The automation almost always helps in regression. However, it has its own cost as well, so instead of throwing yourself in test automation immediately, first analyze the test value. Is this a simple and common case you’d like to cover? If so, consider integrating it into the unit tests suite. Or If it is complex try to reduce automation for the test case.

iv) Don’t Forget to Test Manually!
Donot forget to test manually. If u are using any tool for automation may produce unknown defects. Automation test cases will verify only the expected test. Don’t forget your automated tests would most probably catch the bugs they are supposed to catch! After all, the human brain can’t be substituted, or at least that wouldn’t be cheap.
You have some ideas on testing a specific feature more, but there are other coming tasks? Write it and implement in some your application. Or probably you are out of ideas about additional testing of this feature? Take the developer who has worked on that for a couple of minutes, discuss how the feature has been tested so far, look at the related unit tests together and go to the next one if you both agree this is ready to go.

v) Product is Completely Tested! It is not True
100% bug free product is not possible.   Developers may mention this is our product this supposed to work in this functionality; this application needs to do this functionality. After the release of the product, In real time product may not full fill the customers need. At last customer may report the product is bug. Product doesn’t seem to be well tested!

vi) Test Never Ends!
Furthermore, regularly get back to think of improving what you’ve done till now.
Just passing the test cases is not covers the entire application has been tested. If u found any bugs in time it needs to be reported to dev team and its needs to be solved immediately. Bugs need to be reduced every moment. Minor bugs may cause the entire application in danger. Whenever a minor bug is resolved then the product should not cause some other defects.

A good tester is always a good analyzer. - Jegan
Negative thinking is necessary for a good software tester. –Jegan 

Testers Bill of Rights!!!

1. Testers have the right to sample their process inputs, and reject poor quality work (No entry).

2. Testers have the right to unambiguous and clear requirements.

3. Testers have the right to test evolutionary early as the system increments.

4. Testers have the right to integrate their test specifications into the other technical specifications.

5. Testers have the right to be a party to setting the quality levels they will test to.

6. Testers have the right to adequate resources to do their job professionally.

7. Testers have the right to an even workload, and to have a life.

8. Testers have the right to specify the consequences of products that they have not been allowed to test properly.

9. Testers have the right to review any specifications that might impact their work.

10. Testers have the right to focus on testing of agreed quality products, and to send poor work back to the source.

 Testers should send bad work back to the source!!!!!!!!

November 9, 2011

Element locators using Selenium

Element locator tells the element for selecting a particular object.


Element locator type= argument
command
target
value

We get the elements for selenium in HTML language.
While using selenium IDE we can get the auto generated element locator type with the following types:
i) Id or Identifier: @id refers the element of identifiers.
In Selenium, type the argument as id=sampleid


ii) Name: @name refers the element attribute for name
In Selenium, type the argument as name=samplename
    Name and Value is similar we can use both in same manner.
Name/value= samplename/value


iii) Link pattern:  In the HTML if any text is comes under the anchor ‘<a>’ tag then we use the link= textpattern

<a href="url">Link Text</a>
Example: link=Link Text

iv) Xpath Expression: Xpath always starts with //
If a element ID is changing continuously then we can use Xpath in its location for identifying element
For Example: Google new is changing continuously, In this scenario we need to use XPath Expression.
Example:
xpath=//img[@alt='The image alt text']
xpath=//table[@id='table1']//tr[4]/td[2]
xpath=//a[contains(@href,'#id1')]
xpath=//a[contains(@href,'#id1')]/@class
xpath=(//table[@class='stylee'])//th[text()='theHeaderText']/../td
xpath=//input[@name='name2' and @value='yes']
xpath=//*[text()="right"]

Get the link with the link text
<a href="url">Link Text</a>
-> link=Link Text

Get element with the element text
<a href="url">Link Text</a>
-> //a[text()='Link Text']
Get element with part of the element text
<a href="url">Link Text</a>
-> //a[contains(text(), 'ink Tex')]

Get element with an attribute
<a href="url">Link Text</a>
-> //a[@href='link url']

Get element with two attributes
<input value="”value”/" type="”text”">
-> //input[@type='text' and @value='value']

XPather is a firefox plugin help you to find the xpath.

iv) CSS: CSS locator which helps for assigning the CSS location to select the fields.
You can also check the TestCssLocators test in the selenium test suite for an example of usage, which is included in the downloaded selenium core package.
css=a[href="#id3"]


Currently the css selector locator supports all css1, css2 and css3 selectors except namespace in css3, some pseudo classes(:nth-of-type, :nth-last-of-type, :first-of-type, :last-of-type, :only-of-type, :visited, :hover, :active, :focus, :indeterminate) and pseudo elements(::first-line, ::first-letter, ::selection, ::before, ::after).

v) DOM: it is a javascript expression. Finds the element in HTML document object model
locator is always starts with document.
dom=document.images[10]
dom=document.forms['myForm'].myDropdown
*******************************************

1. Direct Reference

Id=MyButton (note in this case, “Id =” is not even required)
Name=Description_Field
Value=ABC XYZ
Link=Contact Us

2. DOM or CSS

3. XPath References

3a. Simple XPath

//div(@class=’MyClass’)
//input[contains(@id, 'myTextField')]

3b. Complex XPath

/html/body/div[1]/div[5]/div/table/tbody/tr/td/p/a[3] (An example bad XPath – it will break as soon as the page layout changes a bit)

4. Click and Mouse Events

Click and ClickAt

MouseDown and MouseDownAt

MouseUp and MouseUpAt

MouseMove and MouseMoveAt

DragDrop (useful for moving slider bars that calls a JavaScript event to change a value when the slider is moved).

 

5. Keyboard and Coordinates

October 17, 2011

Project Roles and Responsibilities


Testers & Test Lead
Testing, is the core competence of any Testing Organization
  • Understand the Application Under Test
  • Prepare test strategy
  • Assist with preparation of test plan
  • Design high-level conditions
  • Develop test scripts
  • Understand the data involved
  • Execute all assigned test cases
  • Record defects in the defect tracking system
  • Retest fixed defects
  • Assist the test leader with his/her duties
  • Provide feedback in defect triage
  • Automate test scripts
  • Good relationship with development team
  • Understanding of SRS
QA Manager
  • Preparation of System Test Plan
  • Formation of Test Team
  • Schedule Preparation
  • Module Allocation
  • Reviews on Test Process
  • Client Interaction
  • Verify Status Reports
Project Manager
  • Preparation of Software Requirements Specification (SRS)
  • Formation Development Team, Test Team
  • Management of requirements throughout the project life cycle activities
  • Preparation of Detailed Design Document
  • Unit Test cases and Integration Test cases
  • Guidance on programming and related coding conventions / standards

September 27, 2011

Why We Need Certification


Why we need certification is my 50th post. Happy to post my 50th blog regarding certification
I saw in so many ‘Tester meet’ and events for software testers are conducting debate session regarding the above query.

I look at pradeep soundarajan speech; he is always against the certification at the same time he expects the people must do certifications. And So many software testers had the same.
How to do exams:
i) To do certification is just reading the books and writing the answer for the questions.
ii) Some people gather the previous questions papers and attend the exams.
Mostly the questions are all asked in the previous question paper only.
iii) She/he can have any notes in their hand while writing exams.
iv)  Changing their papers with their friends.
v) In some places supervisors help the people to clear those exams.

Lots of swindle were happening during the exams. This was happening in most of the place.
That’s y I don’t like to do certification.
Certification is just a formal thing; it never helps u to act as a tester. Most of the certified testers are became a bookworm people.

At last what I think about certification is like driving a car.
Everyone knows how to drive but the license is important.
Licensed people drives vehicle, they too met an accident. Likewise certified testers will have knowledge in testing field to start testing. They read all the books and they can easily knows the basic stuff in books some of them may think above the books.


Merits and demerits are always there in life. Proper Way of learning is an interesting and helps to improve themselves.


My Favorite Line:
Wants:
To do right things right first time.
Does Not Wants:
To do things without value.
Knows That:
Software Testing never ends, it just stops.
Software Quality does not happen by accident; it has to be planned.
Believe That:
There's always one more bug during Software Testing.
Software Testing is the art of thinking.

September 8, 2011

Testers Should Know



Before testing an application testers should follow the following activities. Read the below points before  test any application,

1) Learn to analyze your test results thoroughly. Analysing the results and inputs avoids so many mistake or misunderstanding in application.
2) Learn to maximize the test coverage every time you test any application. [mapping with testcases]
Test Coverage:
Features to be tested & Features not to be tested:
For a single functionality lots of scenarios are there to test. Most of the time testers may miss or omit the some of their test cases and complete their test. But in real time environment it causes major problem. So tester need to carry their test and map with their test cases every time
3) Write test-cases for Valid first, to avoid problems in major functionality
Every tester should know how to write test-cases how to map with our application. On reading the test-cases anyone can easily understood the functionality of the application.
Documents need to prepare:
Tester need to prepare a separate document for everything which helps them to face any problem.
Sanity test case, Functional test case, Scenario based, error guessing etc..
4) To start testing the applications prioritize urselves and start to test don’t run out of time to do high priority testing tasks. Prioritize your testing work from high to low priority.
Plan according to that to avoid risks in application
5) Write clear, descriptive, unambiguous bug report it should be clean, simple and reusable and easy to understand.
6) Enlarge your communication with application users to know more about the product.
7) Testing teams should share their knowledge best testing practices, experience with other teams in their organization. This makes everyone to think in distinct way and make them to learn so many new things.
8) It is must to involve tester’s right form all the phases. So that they understood the entire flow of the application and improve its quality.
9) After start testing the application Keep developers away from your test environment. They may argue with you while testing their task was perfect.
10) Write your test cases in requirement analysis and design phase itself. This way you can ensure all the requirements are testable. And you will get some confidence level about your application with its domain knowledge.
11) While doing regression testing use previous bug graph (Bug graph – number of bugs found against time for different modules). This module-wise bug graph can be useful to predict the most probable bug part of the application. Which part of the module was with more bugs and try to estimate it.
12) Applications requiring critical response time should be thoroughly tested for performance. Performance testing is the critical part of many applications. In manual testing this is mostly ignored part by testers due to lack of required performance testing large data volume. Find out ways to test your application for performance. If not possible to create test data manually then write some basic scripts to create test data for performance test or ask developers to write one for you. Most of the automation tools was also available with free of cost to do performance testing.
13) If possible identify and group your test cases for regression testing. This will ensure quick and effective manual regression testing.
14) Go beyond requirement testing. Test application for what it is not supposed to do.
15) make your test cases available to developers prior to coding. Don’t keep your test cases with you waiting to get final application release for testing, thinking that you can log more bugs. Let developers analyze your test cases thoroughly to develop quality application. This will also save the re-work time.
For Trainees ask your Team Lead and Project Managers for sign off the test cases document before starting testing.

August 25, 2011

Bug in Google


August 25
In google page, while navigating from "Maps" tab to "News" tab, "Google" is displaying the "Web" tab but the application's highlight is still in "News" tab.

Screen Shot:
http://screencast.com/t/Yqjn1xrtKRSv

Direction:
1) Open google.com ["Web" tab is highlighted.]
2) Click "Maps"
3) Click "News"
Updates:
Similar Scenario:
1) Open google.com ["Web" tab is highlighted.]
2) Select "I am feeling Lucky" button in "Web" page.
3) Select "News" tab. 
Similar scenario:
1) Open google.com ["Web" tab is highlighted.]
2) Select "News" tab.
3) Click blank submission for "Search new"

Issue Detail:
"New" tab is highlighted but the content of the "Web" search is displayed.

I posted the details of the bug in the help support forum. View the below link:
On the day of August 26 blank submission of the “News” tab issue has been resolved by Google team.

In the above bug scenarios, Two scenarios was found by me and one was found by my Guruji J

August 16, 2011

My Time With Blogging


This Afternoon (Aug 16) after reading the pradeep article I have decided to write my own thoughts to share with everyone which helps me to think in different ways. Software Testers never forget to read the below article and spend some time for blogging too.
I think writing a blog…. This helps you to think in different ways…

What’s there in your mind?
Mostly people will wish to start blogging for the first time. After some days they stop their blogging due to some reasons.
  • Lack of time.
  • Being in Selfish.
  • Why to write something?
  • Waste of time for writing.
  • Why we need to share.
  • Due to their expectations.

Real Fact:
People really think that the entire thing in the world is like Market.
On doing this what we will get reflect.
Some people writing blogs for their publicity.
Some People like me; use special commands like “Cut, Copy and Paste” for their blogs.

For the past days I do the same [Cut, Copy, Paste] and some of the posts are posted on my own.
For me nearly takes three weeks to write a single blog posts.
Even my single blog makes me feel happy and I get some confident even I can write something on my own.

Hope from now onwards I planned to post some information on my own which really need to help others to get more information.

I wish everyone to start blogging and share your thoughts with everyone.

August 12, 2011

TestNG Configuring with Eclipse


Simple steps to use TestNG configuring with eclipse

Precondition:
Install Java.
Java version should above 1.5
Install the eclipse and open the eclipse.

Steps:
Go to ‘Help’ option.
Select “Install Software Updates.
 Then goto the below URL
Copy the link for download Testng
Copy corresponding eclipse version link
For Eclipse 3.4 and above, enter http://beust.com/eclipse
For Eclipse 3.3 and below, enter http://beust.com/eclipse1
And paste the link in “Eclipse”
Select “Check box” for TestNG
Select “Finish” button for all windows.
TestNG is successfully installed.




You can view the TestNG in the “Eclipse” >> “Dropin” folder path

August 1, 2011

Seleniun RC to Go



Selenium Remote Control (RC) is a testing tool that allows you to write automated web application UI tests in many programming languages against any HTTP website using any mainstream JavaScript-enabled browser. Selenium RC is a powerful and simple framework for running (scheduled or manually) automated UI centric regression tests for web applications / services. 

You can find lot more about selenium RC in Selenium hq website

1.  for running java client with selenium RC, first you have to execute the client driver 
selenium-java-client-driver.jar

2. Import the following statements in your script>>


import com.thoughtworks.selenium.*;
import junit.framework.*;
import java.util.regex.Pattern;
Run the Selenium server like this:
java -jar selenium-server.jar
selenium-remote-control-1.0-beta-1/selenium-server-1.0-beta-1
setUp(”http://blogger.com/”, “*chrome”);
Increase the time in selenium.waitForPageToLoad() to 60000 (1 minute) or more.
This is really a JUnit question but in short you can add the following code in the generated file to get it running:

3. Ensure that the saved file name matches the generated class file name.

4. Remove the package statement or replace it with your own package statement. Initially just remove it.

5. Error: java.lang.UnsupportedOperationException: Catch body broken: IOException from cmd=setContext&1=SeleniumSTSanityTest.testSimpleThoughts -> java.net.ConnectException: Connection refused
Have you run the Selenium server?


The selenium server is located in:

6. Error:com.thoughtworks.selenium.SeleniumException: ERROR Server Exception: sessionId should not be null; has this session been started yet?
Ensure that the browser is in the PATH before running the server.

7. Error:com.thoughtworks.selenium.SeleniumException: Permission denied to get property Location.href
This happens on Firefox when a previous page wasn’t fully loaded before the next page was invoked (due to timeout or click() was used). The solution is to use *chrome instead of *firefox in setup. I use for firefox:

8. Timeout error

9. How to run the generated java Test file?
public static Test suite() {
            return new TestSuite(SeleniumSTSanityTest.class);
}

public static void main(String args[]) {
            junit.textui.TestRunner.run(suite());
}




That's it, its time to go on and start.

July 27, 2011

Performance & Load Testing



1) Performance Testing:

Performance testing is the testing, which is performed, to ascertain how the components of a system are performing, given a particular situation. Resource usage, scalability and reliability of the product are also validated under this testing. This testing is the subset of performance engineering, which is focused on addressing performance issues in the design and architecture of software product.

Performance Testing Goal:

The primary goal of performance testing includes establishing the benchmark behaviour of the system. There are a number of industry-defined benchmarks, which should be met during performance testing.

Performance testing does not aim to find defects in the application, it address a little more critical task of testing the benchmark and standard set for the application. Accuracy and close monitoring of the performance and results of the test is the primary characteristic of performance testing.

Example:

For instance, you can test the application network performance on Connection Speed vs. Latency chart. Latency is the time difference between the data to reach from source to destination. Thus, a 70kb page would take not more than 15 seconds to load for a worst connection of 28.8kbps modem (latency=1000 milliseconds), while the page of same size would appear within 5 seconds, for the average connection of 256kbps DSL (latency=100 milliseconds). 1.5mbps T1 connection (latency=50 milliseconds) would have the performance benchmark set within 1 second to achieve this target.

For example, the time difference between the generation of request and acknowledgement of response should be in the range of x ms (milliseconds) and y ms, where x and y are standard digits. A successful performance testing should project most of the performance issues, which could be related to database, network, software, hardware etc…



2) Load Testing:

Load testing is meant to test the system by constantly and steadily increasing the load on the system till the time it reaches the threshold limit. It is the simplest form of testing which employs the use of automation tools such as LoadRunner or any other good tools, which are available. Load testing is also famous by the names like volume testing and endurance testing.

The sole purpose of load testing is to assign the system the largest job it could possible handle to test the endurance and monitoring the results. An interesting fact is that sometimes the system is fed with empty task to determine the behaviour of system in zero-load situation.

Load Testing Goal:

The goals of load testing are to expose the defects in application related to buffer overflow, memory leaks and mismanagement of memory. Another target of load testing is to determine the upper limit of all the components of application like database, hardware and network etc… so that it could manage the anticipated load in future. The issues that would eventually come out as the result of load testing may include load balancing problems, bandwidth issues, capacity of the existing system etc…

Example:

For example, to check the email functionality of an application, it could be flooded with 1000 users at a time. Now, 1000 users can fire the email transactions (read, send, delete, forward, reply) in many different ways. If we take one transaction per user per hour, then it would be 1000 transactions per hour. By simulating 10 transactions/user, we could load test the email server by occupying it with 10000 transactions/hour.



3) Stress testing

Under stress testing, various activities to overload the existing resources with excess jobs are carried out in an attempt to break the system down. Negative testing, which includes removal of the components from the system is also done as a part of stress testing. Also known as fatigue testing, this testing should capture the stability of the application by testing it beyond its bandwidth capacity.

The purpose behind stress testing is to ascertain the failure of system and to monitor how the system recovers back gracefully. The challenge here is to set up a controlled environment before launching the test so that you could precisely capture the behaviour of system repeatedly, under the most unpredictable scenarios.

Stress Testing Goal:

The goal of the stress testing is to analyse post-crash reports to define the behaviour of application after failure. The biggest issue is to ensure that the system does not compromise with the security of sensitive data after the failure. In a successful stress testing, the system will come back to normality along with all its components, after even the most terrible break down.

Example:

As an example, a word processor like Writer1.1.0 by OpenOffice.org is utilized in development of letters, presentations, spread sheets etc… Purpose of our stress testing is to load it with the excess of characters.

To do this, we will repeatedly paste a line of data, till it reaches its threshold limit of handling large volume of text. As soon as the character size reaches 65,535 characters, it would simply refuse to accept more data. The result of stress testing on Writer 1.1.0 produces the result that, it does not crash under the stress and that it handle the situation gracefully, which make sure that application is working correctly even under rigorous stress conditions.