The document discusses various topics related to software testing including the necessity of testing, goals of testing, different testing methods like static vs dynamic testing and white box vs black box testing, different testing levels from unit to system testing, testing approaches like bottom-up and top-down, different types of testing like alpha and beta testing, and functional vs non-functional testing. It provides examples of beta tests and concludes that complete testing is infeasible due to time and resource constraints.
2. Contents
Introduction
Necessity
of testing
Goals of testing
Testing methods
Testing levels
Testing approach
Testing types
Updates Regarding ST
Conclusion
3. Introduction
Testing
is the process of executing a program
with the intention of finding errors.
Testing
can show the presence of bugs but never
their absence.
Testing
is quality control activity.
4. Necessity of Testing
To check the reliability of the software.
To be ensured that the software does not contain
any bug which can become a reason for failure.
To
check the software was made according to its
specification.
To
check that users are capable of using the
software.
To
check software works with other software and
hardware it needs to work with.
5. Goals of Testing
Detect faults.
Establish confidence in software.
Evaluate properties of software.
-Reliability
-Performance
-Memory Usage
-Security
-Usability
7. Static vs. Dynamic Testing
The Box approach
- White-box testing
- Black-box testing
8. Static vs. Dynamic Testing
Reviews,
walkthroughs, or inspections are
referred to as Static testing, whereas
actually executing programmed code with
a given set of test cases is referred to as
dynamic testing.
Static
testing can be omitted, and
unfortunately in practice often is.
Dynamic testing takes place when the
program itself is used.
9. White box testing
Testing
based on an analysis of the
internal structure of the component or
system.
White
box testing uses specific knowledge of
programming code to examine outputs.
White
box testing is used to test areas that cannot
be reached from a black box level.
10. Advantages
As
the tester has knowledge of the
source code, it becomes very easy to find
out which type of data can help in testing
the application effectively.
It helps in optimizing the code.
Extra lines of code can be removed
which can bring in hidden defects.
11. Disadvantages
Due
to the fact that a skilled tester is
needed to perform white box testing, the
costs are increased.
Sometimes it
is impossible to look into
every nook and corner to find out hidden
errors that may create problems as many
paths will go untested.
12. Black box testing
It
is a software testing method in which the
internal structure/design/implementation of the
item being tested is not known to the tester.
These
tests can be functional or
non- functional, though usually functional.
13. Advantages
Tester can be non-technical.
Used to verify contradictions in actual system
and the specifications.
Disadvantages
The test inputs needs to be from large sample
space.
It is difficult to identify all possible inputs in limited
testing time. So writing test cases is slow and
difficult.
15. Unit
testing
- Exercises specific paths in a component's
control structure to ensure complete coverage
and maximum error detection.
- Components are then assembled and integrated.
Integration testing
- Focuses on inputs and outputs, and how well
the components fit together and work together
16. Validation testing
-Provides final assurance that the software meets
all functional, behavioral, and performance
requirements.
System testing
-Verifies that all system elements
(software,
hardware, people, databases) mesh
properly and that overall system function and
performance is achieved.
18. Bottom-up testing
- It is an approach to integrated testing where the lowest
level components– modules, procedures or functions– are
tested 1st,then integrated and used to facilitate the testing
of higher level components.
- This method also helps to determine the levels of software
developed and makes it easier to report testing progress in
the form of a percentage.
Top-down testing
- It is an approach to integrated testing where the top
integrated modules are tested and the branch of the module
is tested step by step until the end of the related module.
21. Alpha Testing
This test is the first stage of testing and will be
performed amongst the teams (developer and QA
teams).
Unit testing, integration testing and system testing when
combined are known as alpha testing.
The following will be tested in the application.
- spelling mistakes
- broken links
- cloudy directions
22. Beta Testing
The
aim of beta testing is to cover unexpected
errors.
Testing
when development and testing are
essentially completed and final bugs and problems
need to be found before release.
These
are released to a limited audience outside of
the programming team.
The
software is released to groups of people so
that further testing can ensure the product has few
faults or bugs.
23. Examples of well known beta tests
Microsoft
-one of the most well
known in beta tests in
memory was the beta
for microsoft’s windows 7
operating system and
before that windows vista.
24. Functional Testing
Functional
testing refers to activities that verify a
specific action or function of the code.
The
application is tested by providing input and
then the results are examined that need to confirm
to the functionality it was intended for.
Functional
tests tend to answer the question of
“can the user do this” or “does this particular
feature work”.
25. Non-functional Testing
This
section is based upon the testing of the
application from its non-functional attributes.
Non-functional testing
of Software involves
testing the Software for the requirements which
are non-functional in nature.
It
deals with features such as
performance, security, user interface etc.
28. Conclusion
Software testing
is an art.
Testing is more than just debugging.
Testing is expensive.
Complete testing is infeasible.
-complete testing is not achievable, and the
amount that we have estimated for production of
any software product is less then the required
amount.