Keyword driven framework is an action based test method used in planing and implementation of automation.

Data Driven Framework :

Data driven is the design of possible inputs what may be given by the end user.This would cover maximum probabilities of an input data.It can either be Spread sheet(excel)/sql/CSV.We have to connect and pass the values to the respective field or element.The
data should be designed by the experienced person on the project. It
may be a client or even non technical person but should be more familiar
from an end users prospective.We have to map the file path properly.

Hybrid Framework:

The Hybrid Automation Framework is otherwise referred to in the industry as a "Hybrid Keyword Data Driven Automation Framework".

Wednesday, 19 September 2012

Performance testing - It is performed to evaluate the
performance of components of a particular system in a specific
situation. It very wide term. It includes: Load Testing, Stress Testing,
capacity testing, volume testing, endurance testing, spike testing,
scalability testing and reliability testing etc. This type of testing
generally does not give pass or fail. It is basically done to set the
benchmark & standard of the application against Concurrency /
Throughput, Server response time, Latency, Render response time etc. In
other words, you can say it is technical & formal evaluation for
responsiveness, speed, scalability and stability characteristics.

Load Testing is subset of performance testing. It is
done by constantly increasing the load on the application under test
till the time it reaches the threshold limit. The main goal of load
testing is to identify the upper limit of the system in terms of
database, hardware and network etc. The common goal of doing the load
testing is to set the SLAs for the application. Example of load testing
can be:

Running multiple applications on a computer simultaneously -
starting with one application, then start second application, then
third and so on....Now see the performance of your computer.

Endurance
test is also a part of load testing which used to calculate metrics
like Mean Time Between Failure and Mean Time to Failure.

Load Testing helps to determine:

Throughput

Peak Production Load

Adequacy of H/W environment

Load balancing requirements

How many users application can handle with optimal performance results

How many users hardware can handle with optimal performance results

Stress testing - It is done to evaluate the
application's behaviour beyond normal or peak load conditions. It is
basically testing the functionality of the application under high loads.
Normally these are related to synchronization issues, memory leaks or
race conditions etc. Some testing experts also call it as fatigue
testing. Sometimes, it becomes difficult to set up a controlled
environment before running the test. Example of Stress testing is:

A banking application can take a maximum user load of 20000
concurrent users. Increase the load to 21000 and do some transaction
like deposit or withdraw. As soon as you did the transaction, banking
application server database will sync with ATM database server. Now
check with the user load of 21000 does this sync happened successfully.
Now repeat the same test with 22000 thousand concurrent users and so on.

Spike
test is also a part of stress testing which is performed when
application is loaded with heavy loads repeatedly and increase beyond
production operations for short duration.

// If results have been returned, the results are displayed in a drop down.if(resultsDiv.isDisplayed()){break;}}

(or)

driver.manage().timeouts().implicitlyWait(10,TimeUnit.SECONDS);

How to Take a screenshot using Selenium WebDriver?

WebDriver driver =newFirefoxDriver();driver.get("http://www.google.com/");File scrFile =((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);// Now you can do whatever you need to do with it, for example copy somewhereFileUtils.copyFile(scrFile,newFile("c:\\tmp\\screenshot.png"));

public static void find(){

}

public static void main(String[] args) {

find(); } }

How to automate onblur through selenium RC

How to automate onblur through selenium RC .
How to automate lost focus through selenium.

I faced the problem while automating the form submit. All of the form fields are having some action on their lost focus.
The onblur event occurs when an object loses focus.
For example : I have two fields First Name and Last Name. When i enter
first name and press tab then it loses its focus and onblur function
gets called.
and its calls upperCase and it changes the first name in Upper case.
the same case with Last Name. When i enter last name and press tab it
calls blur function lowerCase and changes the letters in lower case.

But the problem in automation is i cant automate lost focus. when we
type in first name and last name it simply types in first name and last
name text box.
It does not call onblur function upper case and lower case and does not change the letter respectively.

so, fireEvent is a special command in selenium which helps in automating onblur function.

How this works is :

First this will type "ramesh" in First Name and then
selenium.fireEvent("fname", "blur"); this will call the onblur fuction
"upperCase()" which changes the First Name in upper case "ramesh".
then it types in Last Name and then selenium.fireEvent("lname", "blur");
which means it will press tab and lost the function and on the lost
focus it calls
blur function lowerCase which changes the Last Name in lower case.

Running test case in multiple browsers parallely in WebDriver

we can run test script in different browsers parallely using web driver. Write one test script and configure in testng xml to run that test case in IE, firefox and chrome parallely.

In the above sample program BROWSER is a variable which value would be passed from TestNG.xml and TestNG.xml will run the test multiple time each time BROWSER value would be set with different browser name and test will check the BROWSER value and decide which browser test will run.

How to verify the text ignoring cases sensitivity in selenium ?

Some times we need to verify the text on the webpage no matter is upper cases or lower cases or proper.
We just need to verify the text on the web page ignoring their cases sensitivity.
REGEXPI is used to avoid cases sensitive to verify the text on the page.

Lets say i want to verify the text "seleniumresource is good blog for selenium" No matter its in upper cases or lower case or proper case.

Then use REGEXPI in selenium command selenium.isTextPresent or verifyTextPres

verifyTrue(selenium.isTextPresent("regexpi:SELENIUMRESOURCE IS GOOD BLOG FOR SELENIUM"));

verifyTrue(selenium.isTextPresent("regexpi:

SELENIUMRESOURCE is good blog for selenium"));

verifyTrue(selenium.isTextPresent("regexpi:SELENIUMRESOURCE Is GoOd Blog for SELENIUM"));

verifyTrue(selenium.isTextPresent("regexpi:SELENIUMRESOURCE is good blog for selenium"));

Wednesday, 12 September 2012

Designing Test Automation Framework with Selenium

Do we need to go for Test Automation? If yes, then which is the tool?
If we straight away start automating test cases what are all the
technical challenges we might face? Do we need a framework for
Automation? How we go about designing a framework?

These are all the questions popup when we want to start Test
Automation. Okay, let us start exploring answers for the above
questions.

If there are hundreds of test scenarios which needs to be executed on
each build then it will be a tedious task and error prone. Because a
Test Engineer might make mistakes while entering the test data and
output might be wrong. We can avoid such situations by automating the
test cases.

Before selecting a tool for Test Automation, we need to analyze the
technologies used for different UI components. For example, Java Swing
components, Telerik controls, ExtJS tables, Ajax, Silver light, Flex /
Flash controls, etc. If we want to use Selenium as Test Automation tool
then the first and foremost thing needs to be checked is whether the
application is a Web Application. If so, then check whether most of the
UI controls are identified by the Selenium. If more than 70% of the test
cases can be automated then definitely we can go ahead and automate the
test cases.

In order to handle large number of test cases we need to have a clear
cut strategy for designing the framework. Some of the framework functionalists can be mentioned as follows:

If there is any unhandled exception, then the execution should not
stop. Particular test scenario should be stopped and continue with the
next scenario.

Screen shots must be taken for each error so that analyzing the failures should be easy.

Proper exception handling should be done in the framework.

Proper naming convention should be used

Avoid hard coding test data

Test Data should be parametrized using external means such as XML s, Database, Spreadsheet, etc.

Logs should be created that makes life easier while analyzing the Test Execution

Proper folder structure should be created.

Datadriven framework is used when there are test cases which run for
multiple sets of test data. Follow the below steps to create Data Driven
framework:

Q1. What is Selenium?

Ans. Selenium is a set of tools that supports rapid development of test automation scripts for web based applications. Selenium testing tools provides a rich set of testing functions specifically designed to fulfill needs of testing of a web based application.

Q2. What are the main components of Selenium testing tools?

Ans. Selenium IDE, Selenium RC and Selenium Grid

Q3. What is Selenium IDE?

Ans. Selenium IDE is for building Selenium test cases. It operates as a Mozilla Firefox add on and provides an easy to use interface for developing and running individual test cases or entire testsuites. Selenium-IDE has a recording feature, which will keep account of user actions as they are performed and store them as a reusable script to play back.

Q4. What is the use of context menu in Selenium IDE?Ans. It allows the user to pick from a list of assertions and verifications for the selected location.

Q5. Can tests recorded using Selenium IDE be run in other browsers?Ans. Yes. Although Selenium IDE is a Firefox add on, however, tests created in it can also be runin other browsers by using Selenium RC (Selenium Remote Control) and specifying the name of the test suite in command line.

Q6. What are the advantage and features of Selenium IDE? Ans. 1. Intelligent field selection will use IDs, names, or X Path as needed2. It is a record & playback tool and the script format can be written in various languages including: C#, Java, PERL, Python, PHP, HTML3. Auto complete for all common Selenium commands4. Debug and set breakpoints5. Option to automatically assert the title of every page6. Support for Selenium user-extensions.js file

Q7. What are the disadvantage of Selenium IDE tool?Ans. 1. Selenium IDE tool can only be used in Mozilla Firefox browser.2. It is not playing multiple windows when we record it.

Q8. What is Selenium RC (Remote Control)?Ans. Selenium RC allows the test automation expert to use a programming language for maximum flexibility and extensibility in developing test logic. For example, if the application under test returns a result set and the automated test program needs to run tests on each element in the result set, the iteration / loop support of programming language can be used to iterate through the result set, calling Selenium commands to run tests on each item. Selenium RC provides an API and library for each of its supported languages. This ability to use Selenium RC with a high level programming language to develop test cases also allows the automated testing to be integrated with the projects automated build environment.

Q9. What is Selenium Grid? Ans. Selenium Grid in the selenium testing suit allows the Selenium RC solution to scale for testsuites that must be run in multiple environments. Selenium Grid can be used to run multipleinstances of Selenium RC on various operating system and browser configurations.

. How Selenium Grid works? Ans. Selenium Grid sent the tests to the hub. Then tests are redirected to an available Selenium RC, which launch the browser and run the test. Thus, it allows for running tests in parallel with the-entire test suite.

Q 11. What you say about the flexibility of Selenium test suite?[/b]Ans. Selenium testing suite is highly flexible. There are multiple ways to add functionality to Selenium framework to customize test automation. As compared to other test automation tools, itis Selenium¶s strongest characteristic. Selenium Remote Control support for multiple programming and scripting languages allows the test automation engineer to build any logic they need into their automated testing and to use a preferred programming or scripting language of one¶s choice. Also,the Selenium testing suite is an open source project where code can be modified and enhancements can be submitted for contribution.

Q12. What test can Selenium do?Ans. Selenium is basically used for the functional testing of web based applications. It can be used for testing in the continuous integration environment. It is also useful for agile testing

Q13. What is the cost of Selenium test suite?Ans. Selenium test suite a set of open source software tool, it is free of cost.

Q14. What browsers are supported by Selenium Remote Control?Ans. The test automation expert can use Firefox, IE 7/8, Safari and Opera browsers to run tests in Selenium Remote Control.

Q15. What programming languages can you use in Selenium RC?Ans. C#, Java, Perl, PHP, Python, Ruby

Q17.What is difference between QTP and Selenium?Ans. Only web applications can be testing using Selenium testing suite. However,QTP can be used for testing client server applications. Selenium supports following web browsers: Internet Explorer,Firefox, Safari, Opera or Conqueror on Windows, Mac OS X and Linux. However,QTP is limited to Internet Explorer on Windows.

QTP uses scripting language implemented on top of VB script. However, Selenium test suite haste flexibility to use many languages like Java, .Net, Perl, PHP, Python, and Ruby.

Q18. What is difference between Borderland Silk test and Selenium?Ans. Selenium is completely free test automation tool, while Silk Test is not. Only web application scan be testing using Selenium testing suite. However, Silk Test can be used for testing client server applications. Selenium supports following web browsers: Internet Explorer, Firefox, Safari,Opera or Conqueror on Windows, Mac OS X and Linux. However, Silk Test is limited to Internet Explorer and Firefox.Silk Test uses 4Test scripting language. However, Selenium test suite has the flexibility to use many languages like Java, .Net, Perl, PHP, Python, and Ruby.

What makes Automated Software Testing important in the companies?

Tests are repeated quite often during the development cycle as to ensure the quality of the software.

So, whenever the source code is modified tests should be repeated,where in it has to be tested on all supporting operating system and hardware. Doingthis manually would be costly and time consuming, Therefore, automation testing canbe done over and over again at no additional cost and would also save time ascompared to manual testing.

Secondly, automation testing would improve theaccuracy.

Below are some main reasons, why automation testing is crucical in the companies.Firstly automated software testing helps to save time as well money. Every timesource code is modified software tests should be repeated. For each release of thesoftware it may be tested on all supported operating systems and hardwareconfigurations.

Manually repeating these tests is costly and time consuming. Oncecreated, automated tests can be run over and over again at no additional cost and theyare much faster than manual tests.

Secondly, Automated

Software Testing

ImprovesAccuracy as compared to monotonous manual testing. Thirdly, automated softwaretesting can increase the depth and scope of the test to help improve software quality.

Lastly,

Shared automated tests can be used by developers to catch problems quickly before sending to QA. Tests can run automatically whenever source code changes rechecked in and notify the team or the developer if they fail. Features like these save developers time and increase their confidence.Automation test scripts will be used as a way of storing domain/project/task Knowledge gained by the Test Engineers.

Say for example, if a Tester works in project for one year, he might have spent more time for learning the domain, purpose of the project, modules in the project, flow of all functionalists.

He will be familiar with known issues and challenges.

If this Tester leaves from the project, the knowledge gained by him also will leave.

It is very difficult for the newly joining Tester to understand everything from the Test Case document.

I

f automation test scripts are already available then the new Tester can just start the testing by running the automation scripts, without gaining much knowledge about the project.

He can understand the flow/data by seeing the execution of the automation test scripts.

But anyway, he should gain project/domain knowledge to enhance/update the automation scripts further.