2. Software Testing
Testing is the process of executing a program
with the intention of finding errors
Software testing is an analysis that gives us
data to estimate the quality of a system
3.
4. Who does Testing?
It depends on the process and the associated stakeholders of
the project(s). In the IT industry, large companies have a team
with responsibilities to evaluate the developed software in
the context of the given requirements. Moreover, developers
also conduct testing which is called Unit Testing. In most
cases, following professionals are involved in testing of a
system within their respective capacities:
Software Tester
Software Developer
Project Lead/Manager
End User
6. Verification Validation
Are you building it right? Are you building the right thing?
Ensure that the software system meets all
the functionality.
Ensure that functionalities meet the
intended behavior.
Verification takes place first and includes the
checking for documentation, code etc.
Validation occurs after verification and
mainly involves the checking of the overall
product.
Done by developers. Done by testers
Have static activities as it includes the
reviews, walkthroughs, and inspections to
verify that software is correct or not.
Have dynamic activities as it includes
executing the software against the
requirements.
It is an objective process and no subjective
decision should be needed to verify the
Software.
It is a subjective process and involves
subjective decisions on how well the
Software works.
7. Diff between Testing & Debugging
Testing: It involves the identification of bug/error/defect
in the software without correcting it. Normally
professionals with a Quality Assurance background are
involved in the identification of bugs. Testing is
performed in the testing phase.
Debugging: It involves identifying, isolating and fixing the
problems/bug. Developers who code the software
conduct debugging upon encountering an error in the
code. Debugging is the part of White box or Unit Testing.
Debugging can be performed in the development phase
while conducting Unit Testing or in phases while fixing
the reported bugs.
8. Testing Types
Manual Testing
This type includes the testing of the Software manually i.e.
without using any automated tool or any script. In this type
the tester takes over the role of an end user and test the
Software to identify any un-expected behavior or bug. There
are different stages for manual testing like unit testing,
Integration testing, System testing and User Acceptance
testing.
Testers use test plan, test cases or test scenarios to test the
Software to ensure the completeness of testing. Manual
testing also includes exploratory testing as testers explore the
software to identify errors in it.
9. Testing Types
Automation Testing
Automation testing which is also known as “Test Automation”,
is when the tester writes scripts and uses another software to
test the software. This process involves automation of a
manual process. Automation Testing is used to re-run the test
scenarios that were performed manually, quickly and
repeatedly.
Apart from regression testing, Automation testing is also used
to test the application from load, performance and stress
point of view. It increases the test coverage; improve
accuracy, saves time and money in comparison to manual
testing.
11. What is an “Error”, ”Bug”, ”Fault” and
“Failure”?
A person makes an Error
That creates a fault in software
That can cause a failure in operation
Error : An error is a human action that produces the incorrect
result that results in a fault.
Bug : The presence of error at the time of execution of the
software.
Fault : State of software caused by an error.
Failure : Deviation of the software from its expected result. It is
an event.
12. Who is a Software Tester?
Software Tester is the one who performs
testing and find bugs, if they exist in the
tested application.
13. Importance of Testing In SDLC
SDLC stands for Software Development Life Cycle.
Every software has to go through a development process.
Software development methodologies are used for the
computer based information systems. The growth of the
information has to pass through various phases/ stages, these
stages are known as System Development Life Cycle (SDLC).
Requirement
Analysis
Design
Coding
Testing
Implementation
Maintenance
14. Test Planning
Test Plan
A test plan is a systematic approach to testing a system i.e.
software. The plan typically contains a detailed understanding
of what the eventual testing workflow will be.
15. Test Case
A test case is a specific procedure of testing a particular
requirement.
It will include:
Identification of specific requirement tested
Test case success/failure criteria
Specific steps to execute test
Test Data
17. Unit Testing
Test each module individually.
Follows a white box testing (Logic of the program)
Done by Developers
Integration Testing
After completing the unit testing and dependent
modules development, programmers connect the
modules with respect to HLD for Integration Testing
through below approaches.
18. System Testing
After completing Unit and Integration testing through
white box testing techniques development team release
an .exe build (all integrated module) to perform black box
testing
Usability Testing
Functional Testing
Performance Testing
Security Testing
19. Usability Testing
During this test, testing team concentrates on the user friendliness
of build interface. It consists of following sub tests.
User Interface Test: Ease of use (screens should be understandable
to operate by End User.
Look & Feel :- attractive
Speed in interface :- Less number of task to complete task
Manual Support Test :- Context sensitiveness of user manual.
Functional Testing
The process of checking the behaviour of the application.
It is geared to functional requirements of an application.
To check the correctness of outputs.
Data validation and Integration i.e. inputs are correct or not.
20. Performance Testing
LOAD TESTING – Also Known as Scalability Testing. During this test, test
engineers execute application build under customer expected
configuration and load to estimate performance.
STRESS TESTING – During this test, Test engineers estimates the peak
load. To find out the maximum number of users for execution of out
application user customer expected configuration to estimate peak
load.
PEAK LOAD > CUSTOMER LOAD (EXPECTED)
DATA VOLUME TESTING — Testing team conducts this test to find the
maximum limit of data volume of your application.
21. Security Testing
Testing how well the system protects against
unauthorized internal or external access, wilful damage,
etc, may require sophisticated testing techniques
Smoke testing
Smoke testing is non-exhaustive software testing,
ascertaining that the most crucial functions of a program
work, but not bothering with finer details.
Alpha Testing
The application is tested by the users who doesn’t know
about the application.
Done at developer’s site under controlled conditions
Under the supervision of the developers.
22. Acceptance Testing
A formal test conducted to determine whether or not a
system satisfies its acceptance criteria and to enable the
customer to determine whether or not to accept the
system.
It is the final test action before deploying the software. The
goal of acceptance testing is to verify that the software is
ready and can be used by the end user to perform the
functions for which the software was built.
Beta Testing
This Testing is done before the final release of the software
to end-users.
Before the final release of the software is released to users
for testing where there will be no controlled conditions and
the user here is free enough to do what ever he wants to
do on the system to find errors.
23. Regression Testing
Testing with the intent of determining if bug fixes have been
successful and have not created any new problems. Also, this
type of testing is done to ensure that no degradation of
baseline functionality has occurred.
Monkey Testing
Testing the application randomly like hitting keys irregularly
and try to breakdown the system there is no specific test
cases and scenarios for monkey testing.