testinganswers.com - One of the most popular software testing blog with best testing tutorials and interview questions. Latest and complete information on manual testing methodologies, automation testing tools and bug tracking tools.

Automation is the integration of testing tools into the test environment in
such a manner that the test execution, logging, and comparison of results are
done with little human intervention. A testing tool is a software application
which helps automate the testing process. But the testing tool is not the
complete answer for automation. One of the huge mistakes done in testing
automation is automating the wrong things during development. Many testers learn
the hard way that everything cannot be automated. The best components to
automate are repetitive tasks. So some companies first start with manual testing
and then see which tests are the most repetitive ones and only those are then
automated.

As a rule of thumb do not try to automate:

Unstable software: If the software is still under development and undergoing
many changes automation testing will not be that effective.

Once in a blue moon test scripts: Do not automate test scripts which will be
run once in a while.

Code and document review: Do not try to automate code and document reviews;
they will just cause trouble.

The following figure shows what
should not be automated.

All repetitive tasks
which are frequently used should be automated. For instance, regression tests
are prime candidates for automation because they're typically executed many
times. Smoke, load, and performance tests are other examples of repetitive tasks
that are suitable for automation. White box testing can also be automated using
various unit testing tools. Code coverage can also be a good candidate for
automation.

2. How does load testing work for
websites?

Websites have software called a web server installed on the server. The user
sends a request to the web server and receives a response. So, for instance,
when you type www.google.com the web server senses it and sends you the home
page as a response. This happens each time you click on a link, do a submit,
etc. So if we want to do load testing you need to just multiply these requests
and responses "N" times. This is what an automation tool does. It first captures
the request and response and then just multiplies it by "N" times and sends it
to the web server, which results in load simulation.

So once the tool
captures the request and response, we just need to multiply the request and
response with the virtual user. Virtual users are logical users which actually
simulate the actual physical user by sending in the same request and response.
If you want to do load testing with 10,000 users on an application it's
practically impossible. But by using the load testing tool you only need to
create 1000 virtual users.

3. Can you explain data-driven testing?

Normally an application has to be tested with multiple sets of data. For
instance, a simple login screen, depending on the user type, will give different
rights. For example, if the user is an admin he will have full rights, while a
user will have limited rights and support if he only has read-only support
rights. In this scenario the testing steps are the same but with different user
ids and passwords. In data-driven testing, inputs to the system are read from
data files such as Excel, CSV (comma separated values), ODBC, etc. So the values
are read from these sources and then test steps are executed by automated
testing.