100% found this document useful (2 votes)
71 views

Software Testing - Introductory Stuff

The document discusses the introduction to software testing course at Sanjivani College of Engineering. It covers the need for testing, basics of software testing including definitions and principles. Testing goals are discussed including immediate goals of bug discovery and prevention, long-term goals of quality, customer satisfaction, reliability and risk management. Post-implementation goals of reducing maintenance costs are also mentioned. The course covers testing strategies, test plans, defects and more across the software development life cycle.

Uploaded by

Bodhe Abhijit
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (2 votes)
71 views

Software Testing - Introductory Stuff

The document discusses the introduction to software testing course at Sanjivani College of Engineering. It covers the need for testing, basics of software testing including definitions and principles. Testing goals are discussed including immediate goals of bug discovery and prevention, long-term goals of quality, customer satisfaction, reliability and risk management. Post-implementation goals of reducing maintenance costs are also mentioned. The course covers testing strategies, test plans, defects and more across the software development life cycle.

Uploaded by

Bodhe Abhijit
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 39

Sanjivani Rural Education Society’s

Sanjivani College of Engineering, Kopargaon-423 603


(An Autonomous Institute, Affiliated to Savitribai Phule Pune University, Pune)
NAAC ‘A’ Grade Accredited, ISO 9001:2015 Certified

Department of Computer Engineering


(NBA Accredited)

Subject- Software Testing And Quality Assurance(STQA) [ 314-A)]


Unit 1 :- Introduction to Software Testing

Examination Scheme
Prerequisite In-Sem Exam: 30 Marks Prof. Abhijit S. Bodhe
Courses: End-Sem Exam: 50 Assistant Professor
Software Marks Continuous Department of Computer Engineering
Design and Assessment: 20 Marks
Engineering Total: 100 Marks E-mail :
[email protected]
Contact No: 7709 340 570
Unit 1:-Introduction to Software Testing

• Need of testing,
• Basics of Software Testing
• Testing Principles,
• Goals, Software Testing Life Cycle,
• Defects, Defect management,
• Verification and validation,
• Test Plan,
• Introduction Testing Strategies

DEPARTMENT OF COMPUTER ENGINEERING, Sanjivani COE, Kopargaon 2


Need of Testing
• Quality:- It‟s a Conformance to explicitly and implicitly stated and agreed
functional and non functional requirements.
• Quality is an indicator of how accurate a result is to the target.
Need of testing:-
• Executing a program with the intent of finding an error.
• To check if the system meets the requirements and be executed successfully
in the Intended environment.
• To check if the system is “Fit for purpose”.
• To check if the system does what it is expected to do.

DEPARTMENT OF COMPUTER ENGINEERING, Sanjivani COE, Kopargaon 3


Basics of Software Testing
• Testing:-Definition
• Software testing is a process of executing a program or application
with the intent of finding the bugs in software.
• It can also be stated as the process of validating and verifying that a
software program or application or product:
1 .Meets the business and technical requirements that guided it‟s design
and development
2. Works as expected.
3. Can be implemented with the same characteristic.

DEPARTMENT OF COMPUTER ENGINEERING, Sanjivani COE, Kopargaon 4


Most Common Software problems.

• Quality Assurance (QA) is a way of preventing mistakes and defects in


manufactured products and avoiding problems when delivering solutions or
services to customers.

1. Incorrect calculation 8. Confusing or misleading data


2. Incorrect data edits & ineffective data edits 9. Software usability by end users &
10. Obsolete Software
3. Incorrect matching and merging of data
11. Inconsistent processing
4. Data searches that yields incorrect results 12. Unreliable results or performance
5. Incorrect processing of data relationship 13. Inadequate support of business needs
6. Incorrect coding / implementation of 14. Incorrect or inadequate interfaces
business rules with other systems
7. Inadequate software performance 15. Inadequate performance and security
controls
16. Incorrect file handling

DEPARTMENT OF COMPUTER ENGINEERING, Sanjivani COE, Kopargaon 5


Software Testing Principles (7)
• There are seven major principles in software testing:
1. Testing shows the presence of defects
2. Exhaustive testing is not possible
3. Early testing
4. Defect clustering
5. Pesticide paradox
6. Testing is context-dependent
7. Absence of errors fallacy

DEPARTMENT OF COMPUTER ENGINEERING, Sanjivani COE, Kopargaon 6


1.Testing shows the presence of defects
• The goal of software testing is to make the software fail.
• Software testing reduces the presence of defects.
• Software testing talks about the presence of defects and doesn‟t talk
about the absence of defects.
• Software testing can ensure that defects are present but it can not
prove that software is defect-free. Even multiple testing can never
ensure that software is 100% bug-free.
• Testing can reduce the number of defects but not remove all defects.

DEPARTMENT OF COMPUTER ENGINEERING, Sanjivani COE, Kopargaon 7


2.Exhaustive testing is not possible:

• It is the process of testing the functionality of the software in all


possible inputs (valid or invalid) and pre-conditions is known as
exhaustive testing.
• Exhaustive testing is impossible means the software can never test at
every test case.
• It can test only some test cases and assume that the software is correct
and it will produce the correct output in every test case.
• If the software will test every test case then it will take more cost,
effort, etc., which is impractical.

DEPARTMENT OF COMPUTER ENGINEERING, Sanjivani COE, Kopargaon 8


3.Early Testing & 4.Defect clustering
3.Early Testing :-
• To find the defect in the software, early test activity shall be started. The
defect detected in the early phases of SDLC will be very less expensive.
• For better performance of software, software testing will start at the initial
phase i.e. testing will perform at the requirement analysis phase.
4.Defect clustering :-
• In a project, a small number of modules can contain most of the defects.
Pareto Principle to software testing state that 80% of software defect
comes from 20% of modules.

DEPARTMENT OF COMPUTER ENGINEERING, Sanjivani COE, Kopargaon 9


5.Pesticide paradox, 6.Testing is context-dependent, 7.Absence of errors fallacy

5.Pesticide paradox: Repeating the same test cases, again and again, will not
find new bugs. So it is necessary to review the test cases and add or update test
cases to find new bugs.
6.Testing is context-dependent: The testing approach depends on the context of
the software developed. Different types of software need to perform different
types of testing. For example, The testing of the e-commerce site is different
from the testing of the Android application.
7.Absence of errors fallacy: If a built software is 99% bug-free but it does not
follow the user requirement then it is unusable. It is not only necessary that
software is 99% bug-free but it is also mandatory to fulfill all the customer
requirements.

DEPARTMENT OF COMPUTER ENGINEERING, Sanjivani COE, Kopargaon 10


Goals of software Testing

DEPARTMENT OF COMPUTER ENGINEERING, Sanjivani COE, Kopargaon 11


1.Immediate Goals
• Bug Discovery: This is the immediate goal of software testing to find errors at any stage of
software development.
• The number of bugs is discovered in the early stage of testing. The primary purpose of
software testing is to detect flaws at any step of the development process.
• The higher the number of issues detected at an early stage, the higher the software testing
success rate.

• Bug Prevention: This is the immediate action of bug discovery, that occurs as a result of
bug discovery.
• Everyone in the software development team learns how to code from the behavior and
analysis of issues detected, ensuring that bugs are not duplicated in subsequent phases or
future projects.

DEPARTMENT OF COMPUTER ENGINEERING, Sanjivani COE, Kopargaon 12


2.Long-Term Goals
• Quality: This goal enhances the quality of the software product. Because
software is also a product, the user‟s priority is its quality.
• Superior quality is ensured by thorough testing. Correctness, integrity,
efficiency, and reliability are all aspects that influence quality. To attain
quality, you must achieve all of the above-mentioned quality characteristics.
• Customer Satisfaction: This goal verifies the customer‟s satisfaction with a
developed software product. The primary purpose of software testing, from
the user‟s standpoint, is customer satisfaction.
• Testing should be extensive and thorough if we want the client and customer
to be happy with the software product.

DEPARTMENT OF COMPUTER ENGINEERING, Sanjivani COE, Kopargaon 13


2.Long-Term Goals
• Reliability: It is a matter of confidence that the software will not fail.
In short, reliability means gaining the confidence of the customers by
providing them with a quality product.
• Risk Management: Risk is the probability of occurrence of uncertain
events in the organization and the potential loss that could result in
negative consequences.
• Risk management must be done to reduce the failure of the product
and to manage risk in different situations.

DEPARTMENT OF COMPUTER ENGINEERING, Sanjivani COE, Kopargaon 14


3.Post Implemented Goals
• Reduce Maintenance Cost: Post-released errors are costlier to fix and
difficult to identify. Because effective software does not wear out, the
maintenance cost of any software product is not the same as the physical
cost.
• The failure of a software product due to faults is the only expense of
maintenance. Because they are difficult to discover, post-release mistakes
always cost more to rectify.
• As a result, if testing is done thoroughly and effectively, the risk of failure is
lowered, and maintenance costs are reduced as a result.

DEPARTMENT OF COMPUTER ENGINEERING, Sanjivani COE, Kopargaon 15


3.Post Implemented Goals
• Improved Software Testing Process: These goals improve the testing
process for future use or software projects. These goals are known as
post-implementation goals.
• A project‟s testing procedure may not be completely successful, and
there may be room for improvement. As a result, the bug history and
post-implementation results can be evaluated to identify stumbling
blocks in the current testing process that can be avoided in future
projects.

DEPARTMENT OF COMPUTER ENGINEERING, Sanjivani COE, Kopargaon 16


Defects & Defect management
• Defect in Software Testing:-
1. The bug announced by the programmer and inside the code is called a Defect
2. In other words, we can say that when the application is not working as per the
requirement is knows as defects.
3. It is specified as the irregularity from the actual and expected result of the application or
software.
4. The Defect is the difference between the actual outcomes and expected outputs.
• The Test engineer can identify the defect, and it was fixed by the developer in the
development phase of the software development life cycle.
• The substitute of defect can be further known as issues, bugs, and incidents in software
testing.

DEPARTMENT OF COMPUTER ENGINEERING, Sanjivani COE, Kopargaon 17


Defect Management Process
• The defect management process is the core of software testing. Once the
defects have been identified, the most significant activity for any organization
is to manage the flaws, not only for the testing team but also for everyone
involved in the software development or project management process.
• As we know, defect prevention is an effective and efficient way to decrease
the number of defects. The defect prevention is a very cost-effective process
to fix those defects discovered in the earlier stages of software processes.
• The Defect Management Process is process where most of the organizations
manage the Defect Discovery, Defect Removal, and then the Process
Improvement.
• As the name recommends, the Defect Management Process (DMP) manages
defects by purely detecting and resolving or fixing the faults.
DEPARTMENT OF COMPUTER ENGINEERING, Sanjivani COE, Kopargaon 18
Verification and Validation

DEPARTMENT OF COMPUTER ENGINEERING, Sanjivani COE, Kopargaon 19


Verification and Validation
• Verification testing includes different activities such as business
requirements, system requirements, design review, and code walkthrough
while developing a product.
• It is also known as static testing, where we are ensuring that "we are
developing the right product or not". And it also checks that the developed
application fulfilling all the requirements given by the client.
• Validation testing is testing where tester performed functional and non-
functional testing. Here functional testing includes Unit
Testing (UT), Integration Testing (IT) and System Testing (ST), and non-
functional testing includes User acceptance testing (UAT).
• Validation testing is also known as dynamic testing, where we are ensuring
that "we have developed the product right." And it also checks that the
software meets the business needs of the client.
DEPARTMENT OF COMPUTER ENGINEERING, Sanjivani COE, Kopargaon 20
Verification Vs. Validation

DEPARTMENT OF COMPUTER ENGINEERING, Sanjivani COE, Kopargaon 21


Test Plan
• A Test Plan is a detailed document that catalogs the test strategies, objectives,
schedule, estimations, deadlines, and resources required to complete that
project.
• Think of it as, a blueprint for running the tests needed to ensure the software
is working correctly – controlled by test managers.
• It is the point of reference based on which testing activities are executed and
coordinated among a QA team.
• Importance of Test Plan:-
• They offer a clear guide for QA engineers to conduct their testing activities.
• Collating all this information into a single document makes it easier to
review by management personnel or reuse for other projects.
• Reference :- https://www.browserstack.com/guide/test-planning
DEPARTMENT OF COMPUTER ENGINEERING, Sanjivani COE, Kopargaon 22
Components of a Test Plan (8)
1. Scope: Details the objectives of the particular project. Also, it details user
scenarios to be used in tests. The scope can specify scenarios or issues the
project will not cover if necessary.
2. Schedule: Details start dates and deadlines for testers to deliver results.
3. Resource Allocation: Details which tester will work on which test.
4. Environment: Details the test environment„s nature, configuration, and
availability.
5. Tools: Details what tools will be used for testing, bug reporting, and other
relevant activities.

DEPARTMENT OF COMPUTER ENGINEERING, Sanjivani COE, Kopargaon 23


Components of a Test Plan (8)
6. Defect Management: Details how bugs will be reported, to whom,
and what each bug report needs to be accompanied by. For example,
should bugs be reported with screenshots, text logs, or videos of
their occurrence in the code?
7. Risk Management: Details what risks may occur during software
testing and what risks the software itself may suffer if released
without sufficient testing.
8. Exit Parameters: Details when testing activities must stop. This part
describes the expected results from the QA operations, giving testers
a benchmark to compare actual results.

DEPARTMENT OF COMPUTER ENGINEERING, Sanjivani COE, Kopargaon 24


Test planning Steps
Effective Test Plan involves the following steps:
1. Product Analysis
2. Designing Test Strategy
3. Defining Objectives
4. Establish Test Criteria
5. Planning Resource Allocation
6. Planning Setup of Test Environment
7. Determine test schedule and estimation
8. Establish Test Deliverables

DEPARTMENT OF COMPUTER ENGINEERING, Sanjivani COE, Kopargaon 25


1.Product Analysis
• Start with learning more about the product being tested, the client, and the
end-users of similar products.
• Ideally, this phase should focus on answering the following questions:
1. Who will use the product?
2. What is the primary purpose of this product?
3. How does the product work?
4. What are the software and hardware specifications?
• In this stage, do the following:
1. Interview clients, designers, and developers
2. Review product and project documentation
3. Perform a product walkthrough
DEPARTMENT OF COMPUTER ENGINEERING, Sanjivani COE, Kopargaon 26
2. Designing Test Strategy
• The Test Strategy document is developed by the test manager and defines the following:
1. Project objectives and how to achieve them.
2. The amount of effort and cost required for testing.
• More specifically, the document must detail out:
• Scope of Testing: Contains the software components (hardware, software, middleware) to
be tested and those that will not be tested.
• Type of Testing: Describes the tests to be used in the project. This is necessary since each
test identifies specific types of bugs.
• Risks and Issues: Describes all possible risks that may occur during testing – tight
deadlines, poor management, inadequate or erroneous budget estimate – and the effect of
these risks on the product or business.
• Test Logistics: Mentions the names of testers (or their skills) and the tests to be run by
them. This section also includes the tools and the schedule laid out for testing.
DEPARTMENT OF COMPUTER ENGINEERING, Sanjivani COE, Kopargaon 27
3. Defining Objectives
• This phase defines the goals and expected results of test execution.
Since all testing intends to identify as many defects as possible, the
objects must include:
• A list of all software features – functionality, GUI, performance
standards- must be tested.
• The ideal result or benchmark for every aspect of the software that
needs testing. This is the benchmark to which all actual results will be
compared.

DEPARTMENT OF COMPUTER ENGINEERING, Sanjivani COE, Kopargaon 28


4. Establish Test Criteria
• Test Criteria refers to standards or rules governing all activities in a
testing project. The two main test criteria are:
1. Suspension Criteria: Defines the benchmarks for suspending all
tests. For example, if QA team members find that 50% of all test
cases have failed, then all testing is suspended until the developers
resolve all of the bugs that have been identified so far.
2. Exit Criteria: Defines the benchmarks that signify the successful
completion of a test phase or project. The exit criteria are the
expected results of tests and must be met before moving on to the
next stage of development. For example, 80% of all test cases must
be marked successful before a feature or portion of the software can
be considered suitable for public use.
DEPARTMENT OF COMPUTER ENGINEERING, Sanjivani COE, Kopargaon 29
5. Planning Resource Allocation

• This phase creates a detailed breakdown of all resources required for


project completion. Resources include human effort, equipment, and
all infrastructure needed for accurate and comprehensive testing.
• This part of test planning decides the project‟s required measure of
resources (number of testers and equipment). This also helps test
managers formulate a correctly calculated schedule and estimation for
the project.

DEPARTMENT OF COMPUTER ENGINEERING, Sanjivani COE, Kopargaon 30


6.Planning Setup of Test Environment

• The test environment refers to the software and hardware setup on which
QAs run their tests.
• Ideally, test environments should be real devices so testers can monitor
software behavior in real user conditions.
• Whether it is manual testing or automation testing, nothing beats real
devices, installed with real browsers and operating systems are non-
negotiable as test environments.
• Do not compromise your test results with emulators or simulators.

DEPARTMENT OF COMPUTER ENGINEERING, Sanjivani COE, Kopargaon 31


7. Determining Test Schedule and Estimation
• For test estimation, break down the project into smaller tasks and allocate the
time and effort required for each.
• Then, create a schedule to complete these tasks in the designated time with a
specific amount of effort.
• Creating the schedule, however, does require input from multiple perspectives
Like :- Employee availability, number of working days, project deadlines,
and daily resource availability.
• Risks associated with the project which has been evaluated in an earlier stage.

DEPARTMENT OF COMPUTER ENGINEERING, Sanjivani COE, Kopargaon 32


8. Establish Test Deliverables
• Test Deliverables refer to a list of documents, tools, and other equipment that must be created,
provided, and maintained to support testing activities in a project.
• A different set of deliverables is required before, during, and after testing.

Deliverables required Deliverables required Deliverables required


before testing during testing after testing
Documentation on Documentation on
Documentation on
1. Test Scripts 1. Test Results
1. Test Plan
2. Simulators or Emulators 2. Defect Reports
2. Test Design
(in early stages) 3. Release Notes
3. Test Data
4. Error and execution logs

DEPARTMENT OF COMPUTER ENGINEERING, Sanjivani COE, Kopargaon 33


Test Plan - Summary
• The test plan is also shared with Business Analysts, Project Managers,
Development teams, and anyone associated with the project.
• This mainly offers transparency into QA activities so that all
stakeholders know how the software will be tested.
• Test planning in software testing is the backbone of the entire project.
• Without a sufficiently extensive and well-crafted plan, QAs are bound
to get confused with vague, undefined goals and deadlines.

DEPARTMENT OF COMPUTER ENGINEERING, Sanjivani COE, Kopargaon 34


Testing Strategies
• The overall strategy for testing software includes 8 steps:-

DEPARTMENT OF COMPUTER ENGINEERING, Sanjivani COE, Kopargaon 35


Testing Strategies
1. Before testing starts, it‟s necessary to identify and specify the requirements of
the product in a quantifiable manner.
2. Specifying the objectives of testing in a clear and detailed manner.
3. For the software, identifying the user‟s category and developing a profile for
each user.
4. Developing a test plan to give value and focus on rapid-cycle testing.
5. Robust software is developed that is designed to test itself.
6. Before testing, using effective formal reviews as a filter.
7. Conduct formal technical reviews to evaluate the nature, quality or ability of
the test strategy and test cases.
8. For the testing process, developing a approach for the continuous development.
DEPARTMENT OF COMPUTER ENGINEERING, Sanjivani COE, Kopargaon 36
Unit 1:-Introduction to Software Testing

• Need of testing,
• Basics of Software Testing
• Testing Principles,
• Goals, Software Testing Life Cycle,
• Defects, Defect management,
• Verification and validation,
• Test Plan,
• Introduction Testing Strategies

DEPARTMENT OF COMPUTER ENGINEERING, Sanjivani COE, Kopargaon 37


Unit 2:-Black Box Testing
• Introduction,
• need of black box testing,
• Requirements Analysis,
• Testing Methods - Requirements based testing,
• Positive and negative testing,
• Boundary value analysis,
• Equivalence Partitioning class,
• Domain testing,
• Design of test cases,
• Case studies of Black- Box testing
DEPARTMENT OF COMPUTER ENGINEERING, Sanjivani COE, Kopargaon 38
DEPARTMENT OF COMPUTER ENGINEERING, Sanjivani COE, Kopargaon 39

You might also like