0% found this document useful (0 votes)
48 views26 pages

Software Testing L1

This document provides an overview of software testing, including its definition, goals, and various types and techniques. It covers the software development lifecycle, testing strategies, and the roles and responsibilities of software testers. Key concepts such as verification, validation, and the importance of defect detection and prevention are also discussed.

Uploaded by

mcclaren388
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
48 views26 pages

Software Testing L1

This document provides an overview of software testing, including its definition, goals, and various types and techniques. It covers the software development lifecycle, testing strategies, and the roles and responsibilities of software testers. Key concepts such as verification, validation, and the importance of defect detection and prevention are also discussed.

Uploaded by

mcclaren388
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 26

SOFTWARE TESTING

INTRODUCTION TO SOFTWARE TESTING LECTURE 1


1. Introduction to software Testing
2. Testing techniques and principles:
3. Types of defects.

Course
4. Black-box vs. Structural testing.
5. Testing strategies: Unit testing, integration
testing, profiling, test driven development.

contents
6. State based testing; configuration testing;
compatibility testing; web site testing.
7. Alpha, beta, and acceptance testing.

BSD 3107
8. Coverage criteria.
9. Test instrumentation and tools.
10. Developing test plans and cases
11. Managing the testing process.
12. Problem reporting, tracking, and analysis
Software Development Lifecycle
• A Software Development
Lifecycle Model describes the
types of activities performed
at each stage in a software
development project, and how
the activities relate to one
another logically and
chronologically.
• Approaches maybe sequential
or iterative/incremental
development approaches
Sequential Development
V Shaped
Agile Model
Introduction
• Most people have had an experience with software that did
not work as expected.
• Software that does not work correctly can lead to many
problems, including:
✓loss of money, time, or business reputation
✓ Injury or death
Introduction
• Software Testing is a method to check whether the actual
software product matches expected requirements and to
ensure that software product is defect free.
• It involves execution of software/system components using
manual or automated tools to evaluate one or more properties
of interest.
• The purpose of software testing is to identify errors, gaps or
missing requirements in contrast to actual requirements
• It aims at measuring specification, functionality and
performance of a software program or application.
Terminology
• An error is a mistake made by an engineer - often a
misunderstanding of a requirement or design specification
• A fault is a manifestation of that error in the code - what we
often call “a bug”
• A failure is an incorrect output/behavior that is caused by
executing a fault - the failure may occur immediately (crash!) or
much, much later in the execution
• Debugging attempts to associate failures with faults so they can
be removed from the system
• If a system passes all of its tests, is it free of all faults?
Terminology
• Faults may be hiding in portions of the code that only rarely
get executed
• “Testing can only be used to prove the existence of faults
not their absence” or “Not all faults have failures”
• Sometimes faults mask each other resulting in no visible
failures!
Terminology
Software Testing Goals

The three main goals of Software Testing are:


• Defect Detection: Find defects / bugs in the software during
all stages of its development (earlier, the better).
• Defect Prevention: As a consequence of defect detection,
help anticipate and prevent defects from occurring at later
stages of development or from recurring in the future.
• User Satisfaction: Ensure customers / users are satisfied that
their requirements (explicit or implicit) are met
Objectives
• Work product Evaluation
• Requirements Fulfillment
• Building Confidence
• Finding Defects
• Preventing Defects
• Providing Information to Stakeholders
• Reduce Risk
• Compliance with Laws
• Objectives may vary
Process
Software Testing
• Software testing can be divided into two steps:
1. Verification: it refers to the set of tasks that
ensure that software correctly implements a specific
function.
2. Validation: it refers to a different set of tasks that
ensure that the software that has been built is
traceable to customer requirements.
Verification: “Are we building the product right?”
Validation: “Are we building the right product?
Types of software testing (Broad)
1. Manual Testing: Manual testing includes testing a
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 tests the software to
identify any unexpected behavior or bug. There are
different stages for manual testing such as unit
testing, integration testing, system testing, and user
acceptance testing.
Testers use test plans, test cases, or test scenarios to
test a software to ensure the completeness of testing
Types of software testing (Broad)
2. Automation Testing: Automation testing, which is also
known as Test Automation, is when the tester writes scripts
and uses another software to test the product. 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.
Levels of software testing
1. Unit Testing: A level of the software testing process where individual
units/components of a software/system are tested. The purpose is to validate
that each unit of the software performs as designed.
2. Integration Testing: A level of the software testing process where individual
units are combined and tested as a group. The purpose of this level of testing is
to expose faults in the interaction between integrated units.
3. System Testing: A level of the software testing process where a complete,
integrated system/software is tested. The purpose of this test is to evaluate the
system’s compliance with the specified requirements.
4. Acceptance Testing: A level of the software testing process where a system is
tested for acceptability. The purpose of this test is to evaluate the system’s
compliance with the business requirements and assess whether it is acceptable
for delivery.
Types of Testing (Broad)
• Functional testing is testing the ‘Functionality’ of a software
or an application under test . It tests the behavior of the
software under test. Based on the requirement of the client,
a document called a software specification or Requirement
Specification is used as a guide to test the application.
• Non-functional testing is a type of testing to check non-
functional aspects (performance, usability, reliability, etc.)
of a software application. It is explicitly designed to test the
readiness of a system as per nonfunctional parameters
which are never addressed by functional testing.
What Does a Software Tester Do?

• The goal of a software tester is to find bugs.


• The goal of a software tester is to find bugs and find
them as early as possible.
• The goal of a software tester is to find bugs, find
them as early as possible, and make sure they get
fixed
What makes a good tester?
• Know the technology. Knowledge of the technology in which the application is developed is an added advantage to any
tester.
• Perfectionist and a realist. Being a perfectionist will help testers spot the problem and being a realist helps know at the end
of the day which problems are really important problems. You will know which ones require a fix and which ones don’t.
• Tactful, diplomatic and persuasive. Good software testers are tactful and know how to break the news to the developers.
• An explorer. A bit of creativity and an attitude to take risk helps the testers venture into unknown situations and find bugs
that otherwise will be looked over.
• • Troubleshoot. Troubleshooting and figuring out why something doesn’t work helps testers be confident and clear in
communicating the defects to the developers.
• Posses people skills and tenacity. Testers can face a lot of resistance from programmers.
• Organized. Best testers very well realize that they too can make mistakes and don’t take chances. They are very well
organized and have checklists, use files, facts and figures to support their findings that can be used as an evidence and
doublecheck their findings.
• Objective and accurate. They are very objective and know what they report and so convey impartial and meaningful
information that keeps politics and emotions out of message.
• Defects are valuable. Good testers learn from them. Each defect is an opportunity to learn and improve. A defect found early
substantially costs less when compared to the one found at a later stage. Defects can cause serious problems if not managed
properly.
Guidelines for new testers
• Testing can’t show that bugs don’t exist. An important reason for testing is to prevent defects. You can perform your
tests, find and report bugs, but at no point can you guarantee that there are no bugs.
• It is impossible to test a program completely.
• You can’t guarantee quality. As a software tester, you cannot test everything and are not responsible for the quality of the
product.
• Target environment and intended end user. Anticipating and testing the application in the environment user is expected to
use is one of the major factors that should be considered.
• No application is 100% bug free.
• Be the customer. Try to use the system as a lay user.
• Build your credibility. Credibility is like quality that includes reliability, knowledge, consistency, reputation, trust, attitude
and attention to detail
• Test what you observe. It is very important that you test what you can observe and have access to. Writing creative test
cases can help only when you have the opportunity to observe the results. So, assume nothing.
• Not all bugs you find will be fixed. Deciding which bugs will be fixed and which won’t is a risk-based decision
• Review competitive products. Gaining a good insight into various products of the same kind and getting to know their
functionality and general behavior will help you design different test cases and to understand the strengths and weaknesses
of your application.
• Follow standards and processes. As a tester, your need to conform to the standards and guidelines set by the organization.
Next Week
Testing techniques , types and principles:

You might also like