Tag Archives: Quality Assurance testing

How Selenium Testing Scripts Can Be Performed on Different Browsers?

Many, almost every software application, at present, are written as web-based app which can run in an internet browser. The efficiency of testing these apps differs greatly among organizations and companies. In the period of highly responsive and interactive software procedures, where many companies are relying on Agile methodology, test automation is becoming a necessity for software projects. Test automation indicates using a software tool to perform repeatable tests against the app to be tested.

To ease the task powerful automation tools are coming up in the market like Selenium, as most of the softwares developed today are Agile adopted and browser based. There has been a massive progress in the features of Selenium that focuses on easy- to- use, competent GUIs and can meet the requirements of most app testers by 90% or more. Selenium holds the top position in the software market with these features:

  • Powerful and simple DOM (Document Object Model) level testing, can be employed for nonstop integration with Agile projects
  • Supports numerous browsers like Fire Fox, Safari, Internet Explorer, or Opera on Linux, Mac OS X and Windows
  • Great flexibility and extensibility, tight integration with browser, unmatched by on hand proprietary tools
  • Wires OOP (Object Oriented Programming) languages such as Ruby, JAVA, PHP, .NET, Perl, etc.

Components of Selenium  

There are 4 variations of Selenium, which can be combined or used individually to develop a complete automation suite for web apps. These are:

  • Selenium IDE –Enhancing , creating or recording scripts
  • Selenium Remote Control (RC)– implementing scripts
  • Selenium Web Driver (API) – multiple browser testing
  • Selenium Grid – Cross platform testing

Choosing the right tool

Several people start with Selenium IDE. If if you have no prior experience with scripting or programming language, it is better to use Selenium IDE to familiarize with Selenium commands. By making use of IDE, you can perform simple tests swiftly, sometimes within few seconds.

However, to use Selenium effectively, you will be required to build and run tests by using Selenium 1 or Selenium 2 by combining one supported programming language. So, it is solely on you to decide which one to pick.

While writing, the Selenium developers are setting up on the Selenium WebDriver API. For backward compatibility, Selenium 1 is used. Still, both have weaknesses and strengths which can be figured out at the time of testing.

Activities to be performed during testing

  • Collect the working flows from clients
  • Preparing for test and Selenium framework plan
  • Assign talented resources and offer sufficient training to the new resources
  • Setting up for software installation and test environment
  • Create test scripts with Selenium IDE by using XPath method
  • Use Eclipse to convert scripts
  • Perform every test in Selenium RC using Eclipse as IDE by Batch Scheduling
  • Use WebDriver to run multiple scripts
  • Perform all the tests for each build and multiple builds, every day
  • Reuse test scripts with fewer modifications like revising scripts for every build
  • For speedy actions, generate HTML reports and share it with the team

Areas to be focused while testing

While performing the test, few areas need extensive concentration. These are:

  • Selenium tests as a segment of each build
  • Depending on build release, execute acceptance tests in regression test suite
  • Find bugs in the earlier stages and address the risk of removing bugs in the cycle, later
  • Test the existence of static UI elements
  • Focus on every navigation links to missing pages or broken links
  • Test the functions of input page that comprise of several input fields, check boxes and buttons. Some of these are Account Setting, User Profile, etc.
  • Test dynamic elements with different HTML Ids
  • Execute test in multiple browsers like IE, Chrome, Firefor, etc.
  • Test dynamically varying UI elements like RSS feeds, animation, etc. without having to reload the web page.

It is recommended that those who are new to selenium, and are developing a new test suite from the scrape, it is a good choice to go with Selenium 2, because this variation of Selenium will be supported in the upcoming years.

5 Best practices for Ad-hoc testing

Ad-Hoc testing is a kind where the tester performs the test without any prior planning. In fact, there is no adequate time for properly designing test scenarios with the desired results. In most of the cases, the tests are carried out without any documentation describing the basic specifications and requirements. While executing such tests the tester can easily adopt this approach to tests any part of the system and find out the hidden bugs, if any. Usually, the tester applies skills, intuition, experience and knowledge for the software testing. As far as applying this process is concerned, it is usually carried out under demanding project schedules. There are times when it is impossible to perform extensive testing. Under such circumstances, ad-hoc testings are adopted in place of conservative processes.

However, before indulging in its practice, it is always advisable to follow certain guidelines that will help the tester to acquire more this type of testing.

Get familiar with the software

Knowledge about the architecture of the software is essential to ensure success in ad-hoc testing. Hence, the trick is to get accustomed with the way the software functions.

Test properly

Merely going through the testing procedure is not enough. The best part of ad-hoc testing is that it allows you to test all the software parts without facing any kind of restrictions. The testers can utilize this factor in their favor. They can perform the tests on various levels of the applications. Moreover, it is equally important to focus on the areas that have more risks. Although these are performed without any planned process, an expert tester will always consider the risk analysis first. Hence, it is advisable to begin with the fundamental risk identification and analysis. Once the tester comprehends the necessary areas, he can move onto the bigger folds.

Compare with a tester who lacks knowledge

An adept tester has the desired opportunity to rely completely on his knowledge and ability. This allows him to think about the specific and related testing situations. Such a scope will enable him to look for more number of software bugs during the process.

Experience matters

If your tester has considerable experience, he will be able to find the bugs as compared to an inexperienced tester.

Never mind the numbers of tests

This is another factor that will have an impact on your success or failure. The number of tests decides how many bugs you come across. Mostly, when there is a tight schedule to maintain during project completion, several rounds of testings cannot be possible. But if you consider the best practices, the more tests you perform, the better will be the visibility of the bugs.

Benefits of Ad-hoc Testing

The ability to learn is the final word on ad-hoc testing. The capability of the tester to learn about the software is critical along with the ability to find out the bugs. While discussing about the best practices, the question might arise as to why is it necessary to opt for ad-hoc testing. Well, there are several advantages associated with this testing process. One of the major reasons is that it can be used as an additional testing layer during the regular testing processes. Secondly, this kind of testing offers quicker results and it can considerably improve the aim that could not be developed during the conservative testing methods.

Improvisation is an essential factor in these kinds of tests. It enables the testers to focus on the software instead of the official documentation. In this process, the tester will learn more about the software – its integrations, architecture and flow. It is considered one of the most efficient ways in which software testing is carried out under demanding timelines.