Tuesday, December 30, 2014

How to create test automation faster

Two of the common approaches to create test automation are Record/ Run and Scripting. But, each of these approaches has associated problems. What is a better approach to build test automation? View my video, How to create test automation fast or read on.

How to create test automation faster

Record and Playback approach
This approach is easy to use, quick and generates self-explanatory steps. However, it hard-codes the input and output test data, the test is fragile. Also, modifying the recorded test needs the recording to be repeated.

Scripting or Descriptive Programming approach
If designed well, the test automation scripts can be robust and input and output test data can be parametrized. Also, modifying the script is easier because the entire script need not be re-written; only the relevant part can be modified. However, this approach needs more skills and takes more time to create the test automation.

Since both the above approaches have problems in isolation, I decided to combine them in a recent Selenium test automation project. I call this approach the Hybrid approach.

Hybrid approach
I used the recording feature of Selenium IDE. Then, exported the Selenium IDE test case to Selenium WebDriver code. After editing the automatically generated WebDriver code, I implemented input and output test data parametrization and exception handling. Much faster than writing all the WebDriver code by hand.

Using the Hybrid approach, I was able to save time while still enjoying the benefits of Scripting or Descriptive Programming approach. If your chosen test automation tool provides recording and export to script, you should consider the hybrid approach. You can see my presentation with an example of the Hybrid approach here.

Happy testing!

Sunday, December 28, 2014

Software Testing

Software testing is an analysis that gives us data to estimate the quality of a system. Testing a system lets us know if the system meets each of its specified requirements or not. It gives us data about the working features of the system. It also provides data about the other relevant system properties like performance, security and usability. Testing provides this data when the system is actually used, not just viewed. This why testing is so important. Especially software testing to estimate software quality. In order to learn more about quality, read my article, What is quality. View my video, Software Testing Introduction - What is it? Why test? to understand what is testing and why is testing needed. Or read on.

Software Testing

Testing requires operation of the system on behalf of the users. The basic aim of testing is to find out if the software works or not. If the software does work, find out if each of its expected features exist in the software or not. If each feature does exist, find out if each feature works or not.

An important aim of testing is to find out if the software meets each of the stated requirements or not. It is common to have the requirements specified in detail. Testing finds if each detail of each requirement is satisfied or not. Each requirement must be correctly implemented in the software. Meaning, there should be no problems observed with respect to any requirement.

Testing commonly generates defects, which are problems for the users with any aspect of the software. These defects are reported to the software developers. The developers fix the defects and the test is repeated to confirm that the defects have gone.

Testing gives us data about the system on the relevant system quality parameters. Like completeness, correct operation, working features, performance, reliability and so on. This helps us in forming our judgment about the system quality. This is an objective judgment because the data to support it is provided by testing. The data provided by testing helps to estimate the risk if the software is provided as is to the end users. Based on this risk estimate, it can be decided whether to ship the software as is OR develop further/ fix defects before shipping the software.

In summary, testing let us know if the system and its features work, if each requirement is met fully and correctly and any defects in the system. Based on this data, the team can form a judgment about system quality and the risk in shipping the software to end users. Then, based on the risk estimate, the team can decide either to ship the software or improve it before shipping.

See also:

Saturday, December 27, 2014

Selenium WebDriver Quiz Part 4

Selenium is a popular open source test automation tool for web applications that is used for functional and cross-browser compatibility testing. You can learn from my video, Selenium WebDriver tutorial.

You may have already attempted the Selenium Quiz Parts 1, 2 and 3. If not, try those first. Now, attempt this short part 4 of this quiz to check your familiarity with Selenium WebDriver (also known as Selenium 2) basics. Selenium-WebDriver is the new Selenium tool that has a simpler and more powerful API than Selenium 1. Additionally, it addresses the limitations of Selenium RC. Each question in this quiz has four options with one best answer. The score is updated at the bottom left as you answer each question.

Sunday, December 7, 2014

How to find out more software testing jobs positions?

View my video, Tips on how to get a job as a Software Tester or read on. The common ways to locate the available software testing job positions or projects are job websites, organizations' web sites, social media, campus assistance, freelance websites and crowd-sourced testing web sites. However, these are not the only means of finding the available jobs.

More software testing jobs

If you are looking for a suitable or better software testing position, consider the following options too. Software testing forums e.g. Software Testing Space, possible internal transfer within your organization and private referrals. These can be powerful options to discover your desired position because the information reaches far fewer interested people than the above common ways. For details, view the video, Top tips to get software testing jobs.