Anda di halaman 1dari 3

Software Testing

Methodologies and types of

inS hare

There are different types of methodologies used in the field of software testing and quality
assurance. Different sets of test cases and testing strategies are prepared, all of which are aimed at
achieving one common goal – removing bugs and errors from the code, and making the software
error-free, and capable of providing accurate and optimum output.

There are different types of techniques and methodologies involved in testing.

Functional Testing:

In most software testing methodologies, functional testing involves testing the application against
the business requirements. Functional testing is done using the functional specifications provided by
the client or by using the design specifications like use cases provided by the design team.

The functional testing part of a software testing methodology is typically broken down into four
components –

 unit testing,
 integration testing,
 system testing and
 acceptance testing
usually executed in the above order. Each of them is described below:

Unit Testing:

The Unit testing part of a software testing methodology is the testing of individual software modules
or components that make up an application or system. These tests are usually written by the
developers of the module and in a test-driven-development methodology (such as Agile, Scrum or
XP) they are actually written before the module is created as part of the specification. Each module
function is tested by a specific unit test fixture written in the same programming language as the

Integration Testing:

Individual modules that are already subjected to unit testing are integrated with one another, and
are tested for faults. Such a type of testing highlights interfacing errors. A ‘top-down’ approach of
integration testing follows the architectural structure of the system. Another approach taken is the
‘bottom-up’ approach, which is conducted from the bottom of the control flow.

System Testing:

In this testing, the entire system is tested for errors and bugs. This test is carried out by interfacing
hardware and software components of the entire system, and then testing it. This testing is listed
under the black-box testing method, where the software is checked for user-expected working

Acceptance Testing:

The acceptance testing part of a software testing methodology is the final phase of functional
software testing and is conducted before the software is handed over to the client. It is carried out to
ensure that the software that has been developed meets all customer requirements. There are two
types of acceptance testing – one that is carried out by the members of the development team,
known as internal acceptance testing (Alpha testing), and the other that is carried out by the
customer, known as external acceptance testing. If the testing is carried by the intended customers,
it is termed as customer acceptance testing. In case the test is performed by the end users of the
software, it is known as user acceptance testing (Beta testing).

Non-Functional Testing:

On the other hand, non-functional testing involves testing the application against the non-functional
requirements, which typically involve measuring/testing the application against defined technical
qualities (also known as the ‘-ilities’ because they all end in ‘-ility), for example: vulnerability,
scalability, usability. Some examples of non-functional testing are described below:

Performance, Load, Stress Testing:

There are several different types of performance testing in most software testing methodologies, for
example: performance testing is measuring how a system behaves under an increasing load (both
numbers of users and data volumes), load testing is verifying that the system can operate at the
required response times when subjected to its expected load, and stress testing is finding the failure
point(s) in the system when the tested load exceeds that which it can support.

Security and Vulnerability Testing:

Security testing tests the software for confidentiality, integrity, authentication, availability, and non-
repudiation. Individual tests are conducted to prevent any unauthorized access to the software code.

Usability Testing:

The usability testing part of a software testing methodology looks at the end-user usability aspect of
the software. The ease with which a user can access the product forms the main testing point.
Usability testing looks at five aspects of testing, – learnability, efficiency, satisfaction, memorability
and errors.

Acceptance Testing:

The compatibility part of a software testing methodology tests that the product or application is
compatible with all the specified operating systems, hardware platforms, web browsers, mobile
devices, and other designed third-party programs (e.g. browser plugins). Compatibility tests check
that the product works as expected across all the different hardware/software combinations and
that all functionality is consistently supported.

The Basic Testing Types:

There are a few basic testing methods that form a part of the software testing regime. These tests are
generally considered to be self-sufficient in finding out errors and bugs in the entire system.

Black Box Testing:

Black-box testing is carried out without any knowledge of the internal working of the system. The
tester will simulate the software to to user environment by providing different inputs and testing the
general outputs. This test is also known as closed-box testing or functional testing.

White Box Testing:

White-box testing, unlike the black-box one, takes into account the internal functioning and logic of
the code. To carry out this test, the tester should have knowledge of the code, so as to find out the
exact part of the code that is having errors. This test is also known as open-box testing or glass

Gray Box Testing:

The testing where part knowledge of the code is necessary to carry out the test is called gray-box
testing. This testing is done by referring to system documents and data flow diagrams. The testing is
conducted by the end users, or users who pose as end users.