You are on page 1of 4

Software Testing Tool

What are Testing Tools


Testing tools are a form of automated testing. It is basically using programs to do different testing tasks i.e. doing the tests through some form of automated method. They are computerized and help in assisting every type of testing. Some of these testing tasks include checking the conditions, also checking the predicted results with the actual results along with many other types of testing involved. A lot of these testing tools have commonly used coding languages such as Java and C. The testing tools themselves have been made using these programming languages. A lot of the tools used have different options available to help with testing. This can be very useful when producing the essential reports of that particular product. The tools are grouped by the testing activities or areas that are supported by a set of tools, for example, tools that support management activities, tools to support static testing, etc. It is not required to have a one-to-one relationship between a type of tool described here and a tool offered by a commercial tool vendor or an open-source tool. Some tools perform a very specific and limited function (sometimes called a point solution), but many of the commercial tools provide su pport for many different functions. For example a test management tool may provide support for managing testing (progress monitoring), configuration management of testware, incident management, and requirements management and traceability. Similarly, another tool may provide both coverage measurement and test design support. There are few things that people are good at in comparison to the computers. For example, when you see your friend in an unexpected place, like a shopping mall, you can immediately recognize their face. This is because people are very good at pattern recognition, but its not easy to write software that can recognize a face. On the other hand there are things that computers can do much better or more quickly than people can do. For example, to add up 20 three-digit numbers quickly. This is not easy for most people to do, there are chances that you make some mistakes even if the numbers are written down. A computer does this accurately and very quickly. Consider another example, if people are asked to do exactly the same work over and over, it will be monotonous and tedious they soon get bored and then start making mistakes. So, the idea is to use computers to do things that they are really good at. Tool support is very useful for repetitive tasks the computer doesnt get bored and will be able to exactly repeat what was done before and that too without any mistakes. Since the tool will be fast, this can make those activities much more efficient and more reliable. A tool that measures some aspect of software may have few unexpected side-effects also on that software. Like, for example, a tool that measures timings for performance testing needs to interact very closely with that software in order to measure it. A performance tool will set a start time and a stop time for a given transaction in order to measure the response time. But by taking that measurement, that is storing the time at those two points, could actually make the whole transaction take slightly longer than it would do if the tool was not measuring the response time. Of course, the extra time is very small, but it is still there. This effect is called the probe effect. Other example of the probe effect is when a debugging tool tries to find a particular defect. If the code is run with the debugger, then the bug disappears; it only re-appears when the debugger is turned off, hence making it very difficult to find. These are sometimes known as Heizenbergs (after Heizenbergs uncertainty principle).

Why Testing Tools Are Used


As the software industry grows, it becomes more and more competitive and advanced for businesses to produce such good quality software. With this also comes the reliability and deadlines which must be met. Testing plays a big part in the case of deadlines as testing can take a long time on the software. The production of the software and the quality together must be increased for businesses to produce the best possible software. Testing, therefore, has to be done throughout the process of programming the software. Manual testing takes too long and can waste a lot of time. With the aid of testing tools this can increase efficiency and get the deadlines met.

Different Types of Testing Tools That Are Used


There are many different types of testing tools. Each different testing tool is capable of doing different things as each one has different abilities to do different things. These are considered to be in the testing tools environment. Over the years there have been much advancement on the different types of testing tools and it doesnt stop many more coming in the future in which they all have their own capabilities of being used for testing. Below is a list of each one available and an explanation of what they do.

Unit Testing Tools


This is used in the testing process of the method. JUnit is a very good testing tool for using with unit testing. It is a java-based tool, which is capable of going through code especially with extreme programming as it takes up less time to do.

JUnit

Developers: Kent Beck, Erich Gamma, David Saff, Mike Clark (University of Calgary) Link: http://junit.org/ JUnit is a unit testing framework for the Java programming language. JUnit has been important in the development of test-driven development, and is one of a family of unit testing frameworks which is collectively known as xUnit that originated with SUnit. JUnit is linked as a JAR at compile-time; the framework resides under packages junit.framework for JUnit 3.8 and earlier and under org.junit for JUnit 4 and later.

Regression Testing Tools


Many different tools can be used for regression. It helps to automate the testing as the program can be reused. An example of a program is configuration testing which is a program that is run with a new device or a new version of the operating system with a new application. Its a bit like port testing.

Quick Test Professional (QTP)


Developers: HP/HP Software Division Link: http://www8.hp.com/us/en/software/enterprise-software.html HP QuickTest Professional software provides functional and regression test automation for software applications and environments. Part of the HP Quality Center tool suite, HP QuickTest Professional can be used for enterprise quality assurance. HP QuickTest Professional supports keyword and scripting interfaces and features a graphical user interface. It uses the Visual Basic Scripting Edition (VBScript) scripting language to specify a test procedure, and to manipulate the objects and controls of the application under test. HP QuickTest Professional was originally written by Mercury Interactive. Mercury Interactive was subsequently acquired by Hewlett Packard (HP) in 2006. HP QuickTest Professional 11 is currently available from HP Software Division.

Web Tools
This is used over web based applications. It tests for bugs and problems that appear within the application. An example of this may be that once a problem is detected such as having dead links, line checking or html validation then it provides help in repairing this problem.

Security Testing Tools


These can help aid with the security of the system. It can help against unauthorized access, hacking and any coding damage which deals with the code of application. It uses very sophisticated testing techniques. QA inspect is a very good program to use for this type of testing.

Functional Testing Tools


These are tools which help with the system testing. An example of a program is Badboy which provides an enhanced browser interface to help aid in building and testing dynamic applications. It allows the developer to monitor and understand the interactions between the browser and the server.

WinRunner
Developers: HP/Mercury Interactive Link: http://www8.hp.com/us/en/software/enterprise-software.html HP WinRunner software was an automated functional GUI testing tool that allowed a user to record and play back UI interactions as test scripts. As a functional test suite, it worked with HP QuickTest Professional and supported enterprise quality assurance. It captured, verified and replayed user interactions automatically, in order to identify defects and determine whether business processes worked as designed. The software implemented a proprietary Test Script Language (TSL) that allowed customization and parameterization of user input. HP WinRunner was originally written by Mercury Interactive. Mercury Interactive was subsequently acquired by Hewlett Packard (HP) in 2006. On February 15, 2008, HP Software Division announced the end of support for HP WinRunner versions 7.5, 7.6, 8.0, 8.2, 9.2suggesting migration to HP Functional Testing software as a replacement.

Performance Testing Tools


This tool is used for web servers and to analyze the performance and characteristics of the web application. It is similar to using web tools but has its own applications. An example program is LoadTracer which is a GUI tool and checks the loading and performance and scalability of the web application.

Database Testing Tools


Database testing tools are very good to use for checking and testing databases. It helps with creating tables and data to test the database. An example program is SQL DB Validator. It performs database and data cube verification and validation.

Static Testing Tools


This is the opposite of dynamic testing whereby it checks the systems software and does not execute the program itself. Selenium Company: Selenium was originally developed by Jason Huggins in 2004, who was later joined by other programmers and testers at Thought Works. It is open-source software, released under the Apache 2.0 license, and can be downloaded and used without charge. Link: http://docs.seleniumhq.org/ Selenium is a portable software testing framework for web applications. Selenium provides a record/playback tool for authoring tests without learning a test scripting language (Selenium IDE). It also [1] provides a test domain-specific language (Selenese) to write tests in a number of popular programming languages, including Java, C#, Groovy, Perl, PHP, Python and Ruby. The tests can then be run against most modern web browsers. Selenium deploys on Windows, Linux, and Macintosh platforms.

Communications Testing Tools


Communications testing tools is used for communication purposes. It can work wirelessly, through sockets and SOAP, GPRS and other network communication methods. A program that can be used for this type of testing is Cheetah. It allows you to proactively test and monitor your VoIP and VoD performance whilst it maintains the integrity of other critical applications.

Requirement Management Tools


This is used to analyze the requirements for testing, maintaining and logical inconsistencies. A program used for this is called Requisite Pro which is a management tool to help improve communication goals and enhance collaborative development and increase the quality of applications before deploying. This helps the tester to validate the program correctly.

As I said above these are only a few testing tools. There are many more out there and are still expanding day by day. New testing tools are released for all different categories. As time goes on it will only expand on the amount of tools we have available to use.

Examples of Widely Used Testing Tools


Below are two of the main testing tools that are widely used around the world of software testing. It is used by big organizations in which the testing tools are of high standards and produce the best results:

Quick Test Professional (QTP)


This is a testing tool for functional regression. It is an automated functional Graphic User Interface (GUI). The GUI is automated so actions can be made automatically online or offline. VBScript is the base of this language scripting that QTP uses for its testing. QTP has many functions such as letting you compare existing terns with current ones. QTP can test many applications such as Java, visual basic application, .net and many more.

Silk Test
This testing tool is used for regression testing and functionality testing. It is used for e-business applications. It provides strong and robust functional testing. Database testing and management is just a couple of function available with silk test. There are 4 steps involved, which are a test plan, recording a test frame, creating the tests and running the test cases. These are all important parts of using the silk test testing tool. It is again used by the big organizations to help with the testing in the software development.

Evaluation
Testing is a big issue in software development. It is always hard and a time consuming task to get done. By making testing tools there has been a big advancement on how long softwares can be made and finished by. Some programs do require for manual testing to take place, which is very long and time consuming to get done, however, with the aid of new testing tools even as time goes on we reduce the amount of manual testing that has to be done. With the aid of automated testing tools we reduce the amount of time needed and manpower needed and with that a lot of money can be saved. Also with these automated testing tools there can be less room for errors to occur. As more testing tools are being made they can only reduce the amount of errors that a program could face. Having testing tools can also bring out some problems. Although it can reduce costs by having testing tools, it may not always be the case. You have to take on board that the cost of having actually having the tool can be quite expensive. This extra piece of help can be quite expensive. Also another problem with it is that with using the testing tools there has to be enough knowledge and resources in able to use them. The programmers should be capable of using these tools and so consequently they have to have the same amount of knowledge and understand within the software development. However with this again the problem with money comes in to place.