Blog Home »

Necessity- The Mother of all Invention

March 22nd, 2009 admin Posted in Functional Automation, General Concepts 8 Comments »

By Betsy Joy

A new day, a new plan… That’s what was in store for me. Life’s so strange at times, with Man trying to finds ways and means to lessen his effort in all that he does. He believes that the effort should always be the minimum that can do the trick for him, yet he isn’t ready to compromise on the result produced. Work done was always considered to be equivalent to the effort put in, but the use of machines and the concept of levers turned it all wrong. If man has his way, he wouldn’t even like to utter what he wants to have done. Oh my! When are we going to see technology which will read out minds and do it all, as we just wish??

Now Testers are also Humans so all the above emotions apply to them as well. In the constant pursuit of decreasing the input, effort in terms of manpower, time and the other resources and increasing the effective output, we moved over from Manual Testing to Automation.

I moved much the same way in my career. I too started with Manual Testing- going through every flow, clicking on every link and every button on my own. Ouch!! That would take hours and still you’d have that dreadful feeling of having left out something somewhere that needed your personal attention. It was then that I was introduced to a few Open Source Automation Tools like Sahi and Watir. What Automation did to the efficiency of Testing could not possibly be explained in words (at least by someone who had gone through the drags of Manual Testing)!!!

The Benefits of Automated Testing were manifold and some of them are:-

Reliable: How many times have you messed up a Test Flow just because you could not remember what input you had used the last time? But Automating the Tests helps perform precisely the same operations each time they are run, thereby eliminating human error.

Repeatable: Man gets bored and tired of doing the same job over and over again and so it is best left to machines to do them. The reaction of the software can be checked under repeated execution of the same operations.

Programmable: Manual Testing can possibly leave out certain nuances of the application, which can probably be brought by programming the sophisticated Tests.

Comprehensive: You can build a suite of tests that covers every feature in your application.

Reusable: Ever wished to have a set of actions that you performed for the Login Flow for the build 1 of www.xyz.com be reused for the Login Flow for the Build 2 too??? Automate it… Tests can be reused on different versions of an application, even if the user interfaces changes.

Better Quality Software: Imagine what you can achieve if you can run more Tests in lesser time and that too with fewer resources!!!

Faster: You don’t have to actually waste those numerous fractions of seconds (which do add up to a good amount of time, if you see the BIG picture) in trying to locate that odd Text Field or the other Button that needs to be clicked. Automated Tools run tests significantly faster than human users.

Cost Reduction: The number of Resources being directly proportional to the Cost involved becomes an entity which comes up first whenever the topic on the table is about Cost-cutting.

Finally choosing the right tools for the job and targeting the right areas of the organization to deploy them only can realize these benefits. The right areas where automation fits must be chosen carefully and with care to avoid bloopers later.

It is not as if Automation is the goody-all which is going to save the Testing Industry; it does have its own share of cons too, which I’ll surely let you all know the next time. So till then let’s bask in the beauty of sitting back and simply watching all our Tests running without even having to touch the mouse (poor thing got some rest, hehe)…

(To be continued…)

AddThis Social Bookmark Button

HTTP (’A Beginner’s Blog to Performance testing’ continued…..)

August 10th, 2008 admin Posted in General Concepts 1 Comment »

By Happy Himanshu Gupta

As I read more on Performance testing, I thought of going on a practical application to test my college website. The search results on Google presented the name of an open-source performance testing tool named OpenSTA. It was not difficult to get familiar with the interface of the tool and I began with what is called as script recording of the application.

After the recording was complete, I opened the script to see how it actually looks like. You know guys, something more horrible than any general software code appeared on the screen, and I had never read such kind of a text before in any of my course books. It was then I realized that something more important needs to be learned, before I play around with performance measuring tools. The concept I missed out reading was HTTP, the global language of web.

Most of us open our mailbox daily and go through a number of other websites. But do we ever think, what helps us in accessing our mails and the unlimited information around the globe. Well, I never thought of it, before this question actually struck me a few days ago. Is my dumb machine intelligent enough to obey my orders every time I ask it to do so? Well friends lets now understand the way the computer listens to our request and returns back the response.

HTTP which stands for “Hypertext Transfer Protocol” is a common language which lays the path of communication for all the web clients, servers and the related web applications. HTTP Clients and HTTP Servers together make the basic component of the World Wide Web (www).

The browser that we use every day is the one that plays the role of a web client. When we wish to access a page, say, www.google.com, the browser sends an HTTP request to the server (web server) www.google.com sitting at the backend. On accepting the request, the server, makes a search for the desired object/page. On a successful search it returns back the object to the waiting browser in the form of an HTTP response.

The content that transfers over the web is composed of various Resources. The web content can be as simple as a static file. These files are composed of images, html content, video contents, movies, word files etc. The web content also has the dynamic resources which are generated on demand.

Now, the question that comes to my mind is how to locate these resources on the World Wide Web. The Uniform Resource Locator (URL) is the most common form for resource identification on www. The descriptive format of the URLs, tell us the way to fetch a resource from some particular location on the server.

Now let’s take a look at the concepts of HTTP request and response messages. The messages which are sent from web clients to web servers are called request messages. The response which the web client receives from the server is called response message. The structure of response and request messages is almost similar. HTTP messages are composed of three parts primarily: Start Line, Header Fields and Body.

Start Line:
All HTTP messages begin with a Start Line. The Start line for the request messages contains information which asks the server to do something to the resource. It contains a method which describes the function that the server needs to perform on the resource described by the URL. Similarly in a response message, the start line conveys back the status information and any resulting data to the client, thus completing the operation.

Header Fields:
HTTP headers just add more info to the request and response messages, appending after the start line. They are basically the name-value pairs that give additional info about the message being transferred. A simple HTTP header has the following syntax: a name, followed by a colon (:), followed with whitespace (optional), followed by the field value, followed by a CRLF.

Body:
The HTTP messages were actually designed to transfer this part of the message, which carry varied kinds of digital data. Images, videos, html documents, software applications, e-business applications, e-mail applications and so on, all form a part of the arbitrary binary data contained in the HTTP body. Of course, the body can also contain text.

Friends, I would recommend you all to read more on HTTP, and explore the terms better. I personally find it interesting and a rich source to understand the areas of World Wide Web which are difficult to comprehend. HTTP also forms the core for performance testing of any web application.

I will continue with a few left over headings covered under HTTP, in my next blog. Till then, happy reading… :)

AddThis Social Bookmark Button

A Beginner’s Blog to Performance Testing

July 29th, 2008 admin Posted in General Concepts 2 Comments »

By Happy Himanshu Gupta

Class 12th Board results were out and I ran to my PC to check the result. The anxiety level was rising every moment as it was taking time for the result page to open. Why is this page taking so long to open…?? Have I scored less…or perhaps I have failed in Chemistry..?? Oh god……!!!! What is going to happen… :( ?? Finally after 7 minutes and a few seconds, I rested in peace when the internet page opened and highlighted PASS on the screen. I just kicked my PC for taking the life out of me in those 7 minutes.

It’s just been a few days that I have stopped cursing my poor machine for those worst 7 minutes of my life when I came across a term called “Performance Testing”. I felt like sharing the definition of this term with you people and got up to writing this starting blog. :)

Performance testing is an emerging science in the field of Software testing. When we talk about effective development of an application that makes life easy, we cannot neglect its high performance as one of the major factors contributing to its quality. Performance testing is done to test a specific behavior of the application. But is there any specific criterion to define performance?

To define the concepts of performance of any system software or any general application (web/system), we can define a phrase “meeting of requirements with the timeliness” of the application. A well running application will always meet its requirements under the benchmark indicators. We map these benchmarks to the actual performance counters, which help us to judge, how the application is performing under the current environment.

These performance counters can broadly be categorized into two major dimensions, namely, Responsiveness and Scalability.

Response time of an application is the time required to process any instruction and return back the result. It is the waiting time, the measure of which is directly proportional to the number of concurrent users working on the application.
Throughput of the system is the number of events which an application can process within some interval of time. More the throughput better is the performance of the application.

Scalability of an application can be defined by its ability to meet the throughput and the response time objectives, even as the load on the application continue to increase with the increasing functionaries. Better performance is achieved by high scalability of the application.

Though Performance testing is done in conjunction with stress testing, but performance testing is not only stress testing. It covers the other aspects such as load testing and endurance testing along with the stress testing.

There are a number of tools, both commercial and open-source, to facilitate performance testing of any application. Commercial tools like Load Runner (LR) and Rational Performance Tester (RPT) are well equipped to support a number of different protocols for performance testing. Open-source tools such as OpenSTA, JMeter, Grinder, Webload etc. have made it easy for the small scale IT industries to test the performance of their applications without spending a substantial sum on gaining the licenses of their commercial counterparts.

Performance testing allows the user to identify the bottleneck in the application, which is the cause of the poor performance. The relational graphs and the statistical values of the performance counters help in analyzing the behavior of the application with the increasing load (number of users).

Well friends, the heavy rush on the Result website was the actual reason for the delay in the result that night and not my poor PC. I believe such websites should go for the performance testing of their applications before giving nightmares to the innocent children…. :)

AddThis Social Bookmark Button


Home   |   About Us  |   QA Library   |   Learning Center   |   FAQs   |   Career Center  |   Link Exchange   |   Contact Us
Copyright © QACampus.com. All Rights Reserved.
Powered By : codeplatter
Vision / Mission CresTech Connection Management Team
QACampus Courses ClassRoom Training Live Projects E-courses
Blog Forum QA Library
Career Center Hot Job Upload Resume