:: QC Boss :: Testing, Independent Software Testing, Manual Testing, Website Testing, Functionality Testing, Usability Testing, QC, QA, UAT

Posts Tagged ‘testing tools

Types of Testing Tools

without comments

Below are the some categories in which testing tools are broadly classified:

 

  • Web Site Management Tools
  • Requirements-Based Testing Tools
  • Test Management Tools
  • Regression Testing Tools
  • Coverage Analysis Tools
  • Dynamic Testing Tools
  • Static Testing Tools
  • Load Testing Tools
  • Comparators

 

Web Site Management Tools

 

Web site management tools are designed to help the Webmaster or business manager manage every aspect of a rapidly changing site. It helps detect and repair defects in the structural integrity of their sites, e.g., broken links, orphaned pages, potential performance problems on Websites, etc.

 

Requirements-Based Testing Tools

 

A requirements-based testing tool, or functional test case design tool, drives clarification of application requirements and uses the “requirements” as the basis for test design. Such tools validate requirements by identifying all functional variations and logical inconsistencies, and they determine the minimal number of test cases needed to maximize coverage of the functional requirements.

 

Test Management Tools

 

A test management tool keeps track of all the testing assets through a common repository of information and contains such information as test plans, test cases, and test scripts. It helps quality assurance plan, manage, and analyze the testing progress and enhances the communication of the de velopment team, including testers, developers, project leaders, and QA managers. Using a test management tool, testers report defects and track progress, developers correct defects and update the defect status, project leaders extract information about the progress of the testing process. Quality assurance managers generate reports and create graphical analysis for management.

 

Regression Testing Tools

 

Each code change, enhancement, bug fix, and platform port necessitates retesting the entire application to ensure a quality release. Manual testing can no longer keep pace in this rapid developing environment. A regression testing tool helps automate the testing process, from test development to execution. Reusable test scripts are created which test the systemís functionality. Prior to a release, one can execute these tests in an unattended mode, which fosters the detection of defects and ensures quality deliverables.

 

Coverage Analysis Tools

 

The purpose of coverage analysis tools is to monitor the system while a dynamic testing tool is executing. They are a form of white-box testing in which there is knowledge about the internal structure of the program of the system is necessary. Information is provided on how thorough the test was. Graphic analysis displays how much the system was covered during the test, such as the percent of code executed and in which locations. This will provide the tester with information on weaknesses in the test design, which can be solved with additional test cases.

 

Dynamic Testing Tools

 

Dynamic testing techniques are time dependent and involve executing a specific sequence of instructions by the computer. The purpose of dynamic testing tools is to examine a program of systems behavior and performance while it is executing to verify whether it operated as expected. Examples include regression testing capture/playback and load/stress testing tools.

 

Static Testing Tools

 

The purpose of static testing tools is to uncover defects by examining the software itself rather than executing it, as with dynamic testing. They are a form of white-box testing in which there is knowledge about the internal structure of the program of the system and can be thought of as automated code inspectors.

 

Typical defects reported by the static testing tools include:

 

  • Overly complex code
  • Misspellings
  • Incorrect punctuation
  • Path analysis
  • Improper statement sequencing
  • Inconsistency of parameters
  • Redundant code
  • Unreachable code
  • Overly complex system structure
  • Faults
  • Initialized variables
  • Coding standard violations
  • Inconsistent data attributes.

 

Load Testing Tools

 

The purpose of load testing tools is to simulate a production environment to determine that normal or above-normal volumes of transactions can be completed successfully in an expected time frame. These tools test the availability and capacity of system resources, such as CPU, disk, memory, channel, and communication lines.

 

Comparators

 

A comparator is a program used to compare two versions of source data to determine whether the two versions are identical or to specifically identify where any differences in the versions occur. Comparators are most effective during software testing and maintenance when periodic modifications to the software are anticipated.

 

Testing tool a Boon or a Bane?

without comments

There are numerous testing tools, each with specific capabilities and test objectives. The selection of the best testing tool for a particular development environment is a critical success factor for the testing activities. However, if the right testing tool is not selected and/or the organization is not positioned for a testing tool, it can easily become “shelfware,” as testing tools require a learning curve, skills, standards, and must be integrated into the development methodology.

 

When to Consider Using a Testing Tool?

 

A testing tool should be considered based on the test objectives. As a general guideline, one should investigate the appropriateness of a testing tool when the human manual process is inadequate. For example, if a system needs to be stress tested, a group of testers could simultaneously logon to the system and attempt to simulate peak loads using stopwatches. However, this approach has limitations. One cannot systematically measure the performance precisely or repeatably. For this case, a load testing tool can simulate several virtual users under controlled stress conditions.

 

A regression testing tool might be needed under the following circumstances:

  • Tests need to be run at every build of an application, e.g., time consuming, unreliable and inconsistent use of human resources
  • Tests are required using multiple data values for the same actions
  • Tests require detailed information from system internals such as SQL, GUI attributes
  • There is a need to stress a system to see how it performs

 

Benefits we get when we use testing tools:
  • Speedy and much faster then their human counterpart
  • Run unattended without human intervention
  • Provide code coverage analysis after a test run
  • Precisely repeatable
  • Reusable, just as programming subroutines
  • Programmable

When to Not Consider Using a Testing Tool?

Contrary to popular belief, it is not always wise to purchase a testing tool. Some factors that limit a testing tool include:

 

Cost

A testing tool may not be affordable to the organization, e.g., the cost/performance tradeoff.

 

Culture

The development culture may not be ready for a testing tool, because it requires the proper skills and commitment to long-term quality.

 

Usability testing

There are no automated testing tools that can test usability.

 

One-time testing

If the test is going to be performed only once, a testing tool may not be worth the required time and expense.

 

Time crunch

If there is pressure to complete testing within a fixed time frame, a testing tool may not be feasible, because it takes time to learn, set up, and integrate a testing tool to the development methodology.

 

Ad hoc testing

If there is no formal test design and test cases, a regression testing tool will be useless

 

Predictable results

If tests do not have predictable results, a regression testing tool will be useless

 

Instability

If the system is changing rapidly during each testing spiral, more time will be spent maintaining a regression testing tool than it is worth.

 

Written by QCBoss

January 16, 2009 at 6:22 am