Thursday, September 4, 2008

How to install VPN

Hi Friends,

If you want to configure a VPN connection from a Windows XP client computer you only need what comes with the Operating System itself, it's all built right in. To set up a connection to a VPN, do the following:
  1. On the computer that is running Windows XP, confirm that the connection to the Internet is correctly configured.
  • You can try to browse the internet
  • Ping a known host on the Internet, like, something that isn’t blocking ICMP
  1. Click Start, and then click Control Panel.
  2. In Control Panel, double click Network Connections

Configure a VPN with XP

Hi Friends,

If you want to configure a VPN connection from a Windows XP client computer you only need what comes with the Operating System itself, it's all built right in. To set up a connection to a VPN, do the following:
  1. On the computer that is running Windows XP, confirm that the connection to the Internet is correctly configured.
  • You can try to browse the internet
  • Ping a known host on the Internet, like, something that isn’t blocking ICMP
  1. Click Start, and then click Control Panel.

Monday, August 25, 2008

Selenium IDE(Integrated Development Environment)

Selenium is an open source tool for web application testing. This tool is primarily developed in Java Script and browser technologies and hence supports all the major browsers on all the platforms. For example, you can have your automation scripts written for Firefox on Windows and run them on Firefox in Mac. Most of the time, you will not need to change your scripts for them to work on Mac. In terms of coverage for platform and browser, Selenium is probably one of the best tool available in the market for web applications.
There are three variants of Selenium, which can be used in isolation or in combination to create complete automation suite for your web applications.

* Selenium IDE
* Selenium Core
* Selenium Remote Control

Selenium IDE -

Is the easiest way to use Selenium and most of the time it also serves as a starting point for your automation. Selenium IDE comes as an extension to the Firefox web browser. This can be installed from either openqa or mozilla distribution site. Selenium extension will be downloaded as XPI file. If you open this file using File -> open in Mozilla, it should get installed.

Biggest drawback of Selenium IDE is its limitation in terms of browser support. Though Selenium scripts can be used for most of the browser and operating system, Scripts written using Selenium IDE can be used for only Firefox browser if it is not used with Selenium RC or Selenium Core.

Selenium IDE is the only flavor of Selenium which allows you to record user action on browser window. It can also record user actions in most of the popular languages like Java, C#, Perl, Ruby etc. This eliminates the need of learning new vendor scripting language.

For executing scripts created in these languages, you will need to use Selenium Remote Control. If you do not want to use Remote Control than you will need to create your test scripts in HTML format.

So if you are excited about the tool, Lets start playing with Selenium IDE now. If installed properly, Selenium can be accessed from tool --> Selenium IDE in your browser toolbar.

As compared to most of the test automation tools it is very simple and lightweight. The small red button on the right hand side gives you an indication on whether Selenium is in recording mode or not. Also, Selenium IDE will not record any operation that you do on your computer apart from the events on Firefox browser window. So go ahead read your mail, open a word doc or do anything else, Selenium will record only your actions on browser.

If you are curious to know about other options present on the Selenium IDE, there are not much :) . Other options present on the Selenium IDE toolbar are related to test execution. Run will execute the tests with the maximum possible speed, Walk will execute them with relatively slow speed and in step mode you will need to tell Selenium to take small steps.

Final button present on the Selenium IDE toolbar is the Selenium TestRunner. Test Runner gives you nice browser interface to execute your tests and also gives summary of how many tests were executed, how many passed and failed. It also gives similar information on commands which were passed or failed. TestRunner is also available to tests developed in HTML Only.

If you open the option window by going to Option , you will see there are some self explanatory options available. For example, encoding of test files, timeout etc. You can also specify Selenium Core and Selenium IDE extensions on this page. Selenium extensions can be used to enhance the functionality provided by Selenium. Selenium extensions are not covered in this article, there will be a separate article for specifying and developing extensions for Selenium.
Another tab in the Selenium Options window is Format, As mentioned earlier, Selenium IDE can generate code in variety of languages, this page gives you an option of specifying what kind of formatting you would like in the generated code. For example, what should be the header, how it should be indented etc.

Lets start some action now, In the options, select format and specify HTML as your language choice for your automation. Notice that, when you select HTML as your choice of language, additional tab appears on the Selenium IDE called Table.

There are three columns under this Table - Command, Target and Value. This Table is the crux of how Selenium works. For any element present on the browser, Selenium maps its action in command, target and value. For example, if you want to type user name in the user name text box Selenium would translate it as

command=type , Target=username text box and value=your username

For commands related to asserts, value can be used to compare the value. For example

command=assertText ,Target=Label and Value=somethingtocompare.

In this case Selenium will compare value of the target with the specified value in subsequent execution. Selenium gives you enough functionality in terms of identifying Target. You can locate or identify target using DOM, ID, Name, XPath etc. This helps you in making a robust automation framework. You might find it useful to try Firefox extensions like DOM Inspector or XPath Viewer to get information about the XPath or DOM information of the GUI element under test.

This information should be sufficient for you to explore Selenium IDE and get started with the tool. Lets summarize all the steps involved -

  • Make sure you have installed Selenium IDE in Firefox.

  • Open Firefox and application you want to test

  • Launch Selenium IDE using tools-Selenium IDE

  • By default, you should be in the recording mode, but confirm it by observing the Red button.

  • Select HTML Format.

  • Record some actions and make sure that these are coming on Selenium IDE.

  • During recording if you right click on any element it will show all the selenium commands available.

  • You can also edit existing command, by selecting it and editing on the boxes available.

  • You can also insert/delete commands by choosing appropriate option after right clicking.

  • Choose appropriate run option - i.e walk, run or test runner and review your results.

Hope this article was helpful for you in next article we will discuss how Selenium IDE can be used with Selenium Remote Control to write scripts in different languages. As always, your feedback about this article are welcome :)

Tuesday, July 29, 2008

Software Testing

Software Testing is a process of evaluating a system by manual or automatics means and verify that it satisfies specified requirements or identify differences between expected and actual results.

Life Cycle of a Software Bug

Once a bug(defect or error) is found, it should be communicated to the developers who can fix it. Once the bug is fixed/resolved, the fix should be verified by the testers and should be closed.

The following topics are discussed in this page
Bug Information:Information that should be captured in the bug so that developers can clearly understand the bug and fix it.
List of Bug statuses:
Lifecycle of some types of bugs:
Analysis of bugs:Bugs logged during a testing phase a invaluable source to improve the existing testing processes.

Why developers should not test?

Surely they can test, but they can't be good testers.
If the developers test their own work or the work of their peers,then the following problems comes up
  • Misunderstandings of the requirements/specifications will go unnoticed.
  • Given the time, developers tend to allocate more time improving the code or documentation rather than testing the code.
  • They tend to be optimistic of producing defect free work and thus 'under' test the product.
  • Testing needs skill, occassional tester with no prior training in testing techniques is no match to a trained bug hunter whose sole activity is testing.
  • To catch a higher percentage of bugs, tester needs to be aggressive.Nobody will be aggressive, if they are testing their own product.Testers are rewarded if they hunt lots of bugs, developers are rewarded if the product they developed has less number of bugs and this balance can only be maintained if the separate teams exist for testing and development.

  • Then who does unit testing and integration testing?
    Ofcourse Developers. Its very very difficult for a tester to do unit testing and integration testing as it involves understanding the code.So developers have to do the unit testing and integration testing. Misinterpretation of requirements might escape, but its better to test with these issues than not do testing at all.
    For better success, code developed by one developer should be unit tested by his peer.

Why software has to be tested?

The simple reason is development 'process' is unable to produce defect free software.Even if the process produces defect free software, how do you know until you test it.Will you get enough confidence that it will work without testing it. I dont think so.

Testing not only identifies and reports defects but also measures the quality of the product which helps to decide whether to release the product or not.

Coming to why development process is unable to product defect free software, blame it on the ever increasting complexity of the software products and on process variation.

Monday, July 28, 2008

Stress Testing

Stress testing deals with the quality of the application in the environment. The idea is to create an environment more demanding of the application than the application would experience under normal work loads. This is the hardest and most complex category of testing to accomplish and it requires a joint effort from all teams.
Race conditions and memory leaks are often found under stress testing. A race condition is a conflict between at least two tests. Each test works correctly when done in isolation. When the two tests are run in parallel, one or both of the tests fail. This is usually due to an incorrectly managed lock. A memory leak happens when a test leaves allocated memory behind and does not correctly return the memory to the memory allocation scheme. The test seems to run correctly, but after being exercised several times, available memory is reduced until the system fails.

A test environment is established with many testing stations. At each station, a script is exercising the system. These scripts are usually based on the regression suite. More and more stations are added, all simultaneous hammering on the system, until the system breaks. The system is repaired and the stress test is repeated until a level of stress is reached that is higher than expected to be present at a customer site.

Definition of Testers

Testers as doctors need to have knowledge about possible defects. Testers goal is to determine if all the logical and data elements in the s/w unit are functioning properly.

Regression Testing

Regression testing is any type of software testing which seeks to uncover regression bugs. Regression bugs occur whenever software functionality that previously worked as desired, stops working or no longer works in the same way that was previously planned. Typically regression bugs occur as an unintended consequence of program changes.

Regression testing is the process of testing changes to computer programs to make sure that the older programming still works with the new changes. Regression testing is a normal part of the program development process and, in larger companies, is done by code testing specialists. Test department coders develop code test scenarios and exercises that will test new units of code after they have been written. These test cases form what becomes the test bucket. Before a new version of a software product is released, the old test cases are run against the new version to make sure that all the old capabilities still work. The reason they might not work is because changing or adding new code to a program can easily introduce errors into code that is not intended to be changed.