Software Testing Basic
Software Testing Basic
Software Testing Basic
com
www.venuela.blogspot.com
SOFTWARE
TESTING
Introduction
Definition
Need for Testing
Misunderstanding about Testing
Testing Techniques
Types of Testing
Levels of Testing
Final version of Testing
- Alpha Testing
- Beta Testing
When to stop Testing?
Conclusion
By
VB Naik
www.swaretesting.blogspot.comwww.qtestpro.blogspot.com
www.venuela.blogspot.com
www.swaretesting.blogspot.com www.qtestpro.blogspot.com
www.venuela.blogspot.com
Software Testing
Introduction:
“Testing is a process of planning, preparing, executing and analyzing, aimed at
establishing the characteristics of an information system, and demonstrating the
difference between the actual status and the required status.”
A primary purpose for testing is to detect software failures so that defects may be
uncovered and corrected
Software bugs will almost always exist in any software module with moderate
size: not because programmers are careless or irresponsible, but because the complexity
of software is generally intractable -- and humans have only limited ability to manage
complexity.
Main objective
Testing is a process of executing a program with the intent of finding an error.
A good test case is one that has a high probability of finding an as yet undiscovered
error.
A successful test is one that uncovers an as yet undiscovered error.
Identifies defects before software deployment
Reduces incompatibility and interoperability issues
To reduce the cost of rework by detecting defects at an early stage.
www.swaretesting.blogspot.comwww.qtestpro.blogspot.com
www.venuela.blogspot.com
www.swaretesting.blogspot.com www.qtestpro.blogspot.com
www.venuela.blogspot.com
Role of Testing
Primary
Determine whether system meets specifications
Determine whether system meets needs
Secondary
Instill confidence
Continuously improve the testing process
Definition
www.swaretesting.blogspot.comwww.qtestpro.blogspot.com
www.venuela.blogspot.com
www.swaretesting.blogspot.com www.qtestpro.blogspot.com
www.venuela.blogspot.com
Verification: Have we built the software right (i.e., does it match the specification?)? It is
process based.
Validation: Have we built the right software (i.e., is this what the customer wants?)? It is
product based.
o Testing is debugging
o Testing is not the job of a programmer
o If programmers were more careful testing would be unnecessary
o Testing never ends
o Testing activities start only after the coding is complete
o Testing is not a creative task
Types of Testing
Black box testing treats the software as a without any knowledge of internal
implementation
www.swaretesting.blogspot.comwww.qtestpro.blogspot.com
www.venuela.blogspot.com
www.swaretesting.blogspot.com www.qtestpro.blogspot.com
www.venuela.blogspot.com
1. A black box tester writes many test cases to check something that can be tested by only
one test case and/or
Therefore, black box testing has the advantage of an unaffiliated opinion on the one hand
and the disadvantage of blind exploring on the other.
White box testing also called clear box testing, glass box testing, transparent box testing,
and translucent box testing or structural testing
White box testing, by contrast to black box testing, is when the tester has access to the
internal data structures and algorithms
White Box, like Black Box, is a test design method. Tests based on the internal logic of
the application are called White Box tests.
White box testing is often more thorough, but also much more time consuming than
Black box testing and requires some knowledge of development processes.
White Box often talks of Code Coverage, which is where the code itself is covered by
test cases. There are several levels of Code coverage.
www.swaretesting.blogspot.comwww.qtestpro.blogspot.com
www.venuela.blogspot.com
www.swaretesting.blogspot.com www.qtestpro.blogspot.com
www.venuela.blogspot.com
Black box testing White box testing
Black Box testing is planned without White Box testing is planned with the
the intimate knowledge of the program intimate knowledge of the program
Black Box test is usually based on White Box testing aims at testing each
specification of the program aspect of the program logic
Levels of Testing
Unit Testing
Integration Testing
System Testing
Acceptance Testing
Regression Testing
Performance Testing
Security Testing
Recovery Testing
Unit Testing
The goal of unit testing is to isolate each part of the program and show that the individual
parts are correct. A unit test provides a strict, written contract that the piece of code must
satisfy. As a result, it affords several benefits. Unit tests find problems early in the
development cycle.
Disadvantages
Testing cannot be expected to catch every error in the program - it is impossible to
evaluate all execution paths for all but the most trivial programs
www.swaretesting.blogspot.comwww.qtestpro.blogspot.com
www.venuela.blogspot.com
www.swaretesting.blogspot.com www.qtestpro.blogspot.com
www.venuela.blogspot.com
Integration Testing
Intermediate level of testing
Integration testing takes as its input modules that have been unit tested, groups
them in larger aggregates, applies tests defined in an integration test plan to those
aggregates, and delivers as its output the integrated system ready for system testing.
Progressively unit tested software components are integrated and tested until the
software works as a whole
System Testing
www.swaretesting.blogspot.comwww.qtestpro.blogspot.com
www.venuela.blogspot.com
www.swaretesting.blogspot.com www.qtestpro.blogspot.com
www.venuela.blogspot.com
Performance Testing
- It will make sure that product does not take up much of the system resource and
time taking for executing task. Imagine the reaction of the user, if save operation
takes up more than 5 minutes and also testing will check that response time meets
the user requirement.
Security Testing
- It is currently top of many peoples list of testing they should do, although it’s hard
to see what people are expecting from security testing.
- The Process to determine that an IS (Information System) protects data and
maintains functionality as intended.
www.swaretesting.blogspot.comwww.qtestpro.blogspot.com
www.venuela.blogspot.com
www.swaretesting.blogspot.com www.qtestpro.blogspot.com
www.venuela.blogspot.com
The six basic security concepts that need to be covered by security testing are:
Testing certifications
Before shipping the final version of software, alpha and beta testing are often done
additionally:
Alpha testing takes place at developers' sites, and involves testing of the operational
system by internal staff, before it is released to external customers
www.swaretesting.blogspot.comwww.qtestpro.blogspot.com
www.venuela.blogspot.com
www.swaretesting.blogspot.com www.qtestpro.blogspot.com
www.venuela.blogspot.com
Beta testing takes place at customers' sites, and involves testing by a group of customers
who use the system at their own locations and provide feedback, before the system is
released to other customers. The latter is often called “field testing”.
Conclusion:
• Software testing is an art. Most of the testing methods and practices are not very
different from 20 years ago. It is nowhere near maturity, although there are many
tools and techniques available to use. Good testing also requires a tester's
creativity, experience and intuition, together with proper techniques.
• Testing is more than just debugging. Testing is not only used to locate defects and
correct them. It is also used in validation, verification process, and reliability
measurement.
• Testing is expensive. Automation is a good way to cut down cost and time.
Testing efficiency and effectiveness is the criteria for coverage-based testing
techniques.
• Complete testing is infeasible. Complexity is the root of the problem. The
stopping time can be decided by the trade-off of time and budget. Or if the
reliability estimate of the software product meets requirement.
www.swaretesting.blogspot.comwww.qtestpro.blogspot.com
www.venuela.blogspot.com
www.swaretesting.blogspot.com www.qtestpro.blogspot.com
www.venuela.blogspot.com
• Testing may not be the most effective method to improve software quality.
Alternative methods, such as inspection, and clean-room engineering, may be
even better.
www.swaretesting.blogspot.comwww.qtestpro.blogspot.com
www.venuela.blogspot.com