Testing Methods: Software Testing Is An Investigation Conducted To Provide Stakeholders With
Testing Methods: Software Testing Is An Investigation Conducted To Provide Stakeholders With
Software testing can also be stated as the process of validating and verifying that a
software program/application/product:
1. meets the business and technical requirements that guided its design and
development;
2. works as expected; and
3. can be implemented with the same characteristics.
Different software development models will focus the test effort at different points
in the development process. Newer development models, such as Agile, often
employ test driven development and place an increased portion of the testing in the
hands of the developer, before it reaches a formal team of testers. In a more
traditional model, most of the test execution occurs after the requirements have
been defined and the coding process has been completed.
Testing methods
White box testing
Black box testing
Grey box testing
White box testing is when the tester has access to the internal data
structures and algorithms including the code that implement these.
white-box testing enables you to see what is happening inside the
application.
Black box testing treats the software as a "black box"—without any knowledge of
internal implementation.
This testing methodology looks at what are the available inputs for an application
and what the expected outputs are that should result from each input. It is not
concerned with the inner workings of the application, the process that the
application undertakes to achieve a particular output or any other internal aspect of
the application that may be involved in the transformation of an input into an
output.
Manipulating input data and formatting output do not qualify as grey box, because
the input and output are clearly outside of the "black-box" that we are calling the
system under test.
This distinction is particularly important when conducting integration testing
between two modules of code written by two different developers, where only the
interfaces are exposed for test. However, modifying a data repository does qualify
as grey box, as the user would not normally be able to change the data outside of
the system under test. Grey box testing may also include reverse engineering to
determine, for instance, boundary values or error messages.
White-box:
There are distinct advantages to white-box testing. Here are a few of the most
commonly are:
Introspection. Introspection, or the ability to look inside the application, means
that testers can identify objects programmatically. This is helpful when the GUI is
changing frequently or the GUI is yet unknown as it allows testing to proceed.
Drawbacks.
Complexity. Being able to see every constituent part of an application means that
a tester must have detailed programmatic knowledge of the application
in order to work with it properly. This high-degree of complexity requires a much
more highly skilled individual to develop test case.
Black-box:
There are many advantages to black-box testing. Here are a few of the most
commonly cited:
1. Ease of use. Because testers do not have to concern themselves with the inner
workings of an application, it is easier to create test cases by simply working
through the application, as would an end user.
2. Quicker test case development. Because testers only concern themselves with
the GUI, they do not need to spend time identifying all of the internal paths that
may be involved in a specific process, they need only concern themselves with the
various paths through the GUI that a user may take.
Drawbacks
Often, testing stops when the schedule runs out. A more efficient testing plan provides for a stop
to testing when no further errors are found with existing tests, or when the number of errors
found is below an acceptance threshold.
Scope
A primary purpose of testing is to detect software failures so that defects may be
discovered and corrected. This is a non-trivial pursuit. Testing cannot establish that
a product functions properly under all conditions but can only establish that it does
not function properly under specific conditions.[12] The scope of software testing
often includes examination of code as well as execution of that code in various
environments and conditions as well as examining the aspects of code: does it do
what it is supposed to do and do what it needs to do. In the current culture of
software development, a testing organization may be separate from the
development team. There are various roles for testing team members. Information
derived from software testing may be used to correct the process by which
software is developed.[13]