Introduction To Software Testing
Introduction To Software Testing
Software Testing
Content
1.What is a “bug”?
2.Testing Principles
3.Test Process
4.Life cycle
5.Test Levels
6.Test Types
What is a “bug”?
A person makes
an error ...
… that creates a
fault in the
software ...
2. Early testing
-It is very important to start testing as early as possible and anticipate
possible errors that the developer can make.
-Remember the sooner there are bugs the cheaper to fix them.
GENERAL TESTING PRINCIPLES
4. Defect clustering
-In a large application, it is often a small number of modules that exhibit the
majority of the problems.
-This is the application of the Pareto principle to software testing:
approximately 80 % of the problems are found in about 20 % of the modules.
2. Integration testing
•The purpose of integration testing is to expose defects in the interfaces and in the
interactions between integrated components or systems.
•Integration strategies:
- Big-bang integration
- Top-down integration
- Bottom-up integration
TEST LEVELS
3. System testing
•It is focusing on the behavior of the whole system/product as defined by the scope
of a development project or program, in a representative live environment.
•It is usually carried out by a team that is independent of the development process.
The behavior required of the system is documented in the functional specification.
The functional specification should contain definitions of both the functional and
non-functional requirements of the system.
TEST LEVELS
4. Acceptance testing
•The purpose of acceptance testing is to provide the end users with confidence
that the system will function according to their expectations.
•It use the requirement specification as a basis for test.
•Acceptance testing is often the responsibility of the customers or users of a
system, although other project team members may be involved as well.
•Typical forms of acceptance testing include the following:
- User acceptance testing (testing by user representatives to check that the
system meets their business needs);
- Operational acceptance testing (checking that the processes and
procedures are in place to allow the system to be used and maintained)
- Contract and regulation acceptance testing (sometimes the criteria for
accepting a system are documented in a contract)
- Alpha and beta testing
Alpha testing takes place at the developer’s site
Beta testing takes place at the customer’s site
TEST TYPES
TEST TYPES
1. Functional testing
-Functional testing describes what the product does
-It looks at the specific functionality of a system;
-This testing mainly involves black box testing, and it is not concerned about
the source code of the application.
-Manual testing or automation tools can be used for functional testing
-Examples of Functional testing are:
- Unit testing
- Smoke testing
- Integration testing
- User Acceptance testing
- Regression testing
TEST TYPES
2. Non-functional testing
-Non-functional system testing looks at those aspects that are important but
not directly related to what functions the system performs.
-Using tools will be effective for this testing
-Nonfunctional testing describes how good the product works
-Examples of Non-Functional testing are:
- Performance testing
- Load testing
- Security testing
- Installation testing
- Migration Testing
- Compatibility testing
TEST TYPES
3. Structural testing
-It is often referred to as white box testing or glass box because in structural
testing we are interested in what is happening “inside the system/application”.
-The testers are required
to have the knowledge of the
internal implementations of
the code (how the software
is implemented, how it works).
-Can be used at all levels of
testing.
TEST TYPES