Vous êtes sur la page 1sur 7

TESTING OF SOFTWARE:

What is testing of software?


Software testing is the process of evaluation a software item for the
sake to detect differences between given input and the output we expect.
Testing helps in the reviewing quality of the product.
Software testing is a process that should be done during the process
of development. In other words software testing is verification and
validation process and play vital role in software development.

Verification
Verification is the process to make sure that whether product satisfies the
conditions imposed at the start of the development phase. In other words,
to make sure the product behaves in the same way we want it to.

Validation
Validation is the process to make sure the product satisfies the specified
requirements at the end of the development phase. In other words, to make
sure the product is built as per customer requirements.
Software testing should over these following points.

Meets the requirements that guided its design and


development.
Works as expected.
Can be implemented with the same characteristics.
Satisfies the needs of stakeholders.

TESTING Methods:
Software testing methods are traditionally divided into white- and
black-box testing.

Black-box testing:
Black box testing is a technique of testing that ignores the internal
mechanism of the system and focuses on the output generated against any
input and execution of the system. It is also called functional testing.

White-box testing:
White box testing is a testing technique that takes into account the
internal mechanism of a system. It is also called structural testing and glass
box testing.
Black box testing is often used for validation and white box testing
is often used for verification.

TESTING TYPES:
Following are the levels of testing for software.

Unit Testing
Integration Testing
Functional Testing
System Testing
Stress Testing
Performance Testing
Usability Testing
Acceptance Testing
Regression Testing
Beta Testing

UNIT TESTING:
Unit testing is the testing of an individual unit or group of related
units. It falls under the class of white box testing. It is often done by
the programmer to test that the unit he/she has implemented is
producing expected output against given input.

INTEGRATING TESTING:
Integration testing is testing in which a group of components
are combined to produce output. Also, the interaction between
software and hardware is tested in integration testing if software and
hardware components have any relation. It may fall under both white
box testing and black box testing.

FUNCTIONAL TESTING:
Functional testing is the testing to ensure that the specified
functionality required in the system requirements works. It falls under
the class of black box testing.

SYSTEM TESTING:
System testing, or end-to-end testing, tests a completely
integrated system to verify that it meets its requirements.

STRESS TESTING:
Stress testing is the testing to evaluate how system behaves
under unfavourable conditions. Testing is conducted at beyond limits
of the specifications.

Performance testing:
Performance testing is the testing to assess the speed and
effectiveness of the system and to make sure it is generating results
within a specified time as in performance requirements.

USEABILITY TESTING:
Usability testing is performed to the perspective of the client, to
evaluate how the GUI is user-friendly? How easily can the client
learn? After learning how to use, how proficiently can the client
perform? How pleasing is it to use its design?

ACCEPTANCE TESTING:
At last the system is delivered to the user for Acceptance
testing.

REGRESSION TESTING:
Regression testing is the testing after modification of a system,
component, or a group of related units to ensure that the modification
is working correctly and is not damaging or imposing other modules
to produce unexpected results.

Beta testing:
Beta testing is the testing which is done by end users, a team
outside development, or publicly releasing full pre-version of the
product which is known as beta version. The aim of beta testing is to
cover unexpected errors. It falls under the class of black box testing.

Installation testing:
An installation test assures that the system is installed
correctly and working at actual customer's hardware.

Compatibility testing:
A common cause of software failure is a lack of its compatibility
with other application software, operating systems (or operating
system versions, old or new), or target environments that differ
greatly from the original. For example, in the case of a lack of
backward compatibility, this can occur because the programmers

develop and test software only on the latest version of the target
environment, which not all users may be running.

Security testing:
Objective of security testing is to secure the software from
external and internal threats from humans and malicious programs.
Security testing is essential for software that processes confidential
data to prevent system intrusion by hackers.

Aging testing:
This is a type of performance testing that is carried out by
running software for longer duration like weeks or months and check
performance of software to see if the software performance degrade
or shows any sign of degradation after running for a longer period of
time. Aging testing is also known as soak testing and longevity
testing.

Benchmarking testing:
Objective of benchmarking test is to measure performance of
different versions of software with predefined configurations
(hardware and operating system).

Recovery testing:
Recovery testing aims at checking how soon and how
efficiently software recover from software crashes, operating system
crashes and hardware failure.

Available tools

There are an abundance of software testing tools exist. The


correctness testing tools are often specialized to certain systems
and have limited ability and generality. Robustness and stress
testing tools are more likely to be made generic.

Mothora:
is an automated mutation testing tool-set developed at Purdue
University. Using Mothora, the tester can create and execute test
cases, measure test case adequacy, determine input-output
correctness, locate and remove faults or bugs, and control and
document the test.

NuMega's Boundschecker Rational's Purify:


They are run-time checking and debugging aids. They can both
check and protect against memory leaks and pointer problems.

Ballista
COTS
Harness:

Software

Robustness

Testing

The Ballista testing harness is an full-scale automated robustness


testing tool. The first version supports testing up to 233 POSIX
function calls in UNIX operating systems. The second version also
supports testing of user functions provided that the data types
are recognized by the testing server. The Ballista testing harness
gives quantitative measures of robustness comparisons across
operating systems. The goal is to automatically test and harden
Commercial Off-The-Shelf (COTS) software against robustness
failures.

References:

What is testing of software:


o http://www.codeproject.com/Tips/351122/What-issoftware-testing-What-are-the-different-ty
o http://en.wikipedia.org/wiki/Software_testing
Testing methods:
o http://en.wikipedia.org/wiki/Software_testing
o http://www.codeproject.com/Tips/351122/What-issoftware-testing-What-are-the-different-ty
o http://en.wikipedia.org/wiki/Software_testing
Testing types:
o http://www.codeproject.com/Tips/351122/What-issoftware-testing-What-are-the-different-ty
o http://en.wikipedia.org/wiki/Software_testing
o http://www.softwaretestingsoftware.com/all-types-ofsoftware-testing