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

1-Software Testing

The document provides an overview of software testing fundamentals, including its purpose, types (manual and automation), and the roles involved in the testing process. It emphasizes the importance of effective testing strategies to ensure software quality and meet user requirements. Additionally, it discusses factors to consider when choosing testing strategies and outlines the objectives and methodologies for successful software testing.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
9 views26 pages

1-Software Testing

The document provides an overview of software testing fundamentals, including its purpose, types (manual and automation), and the roles involved in the testing process. It emphasizes the importance of effective testing strategies to ensure software quality and meet user requirements. Additionally, it discusses factors to consider when choosing testing strategies and outlines the objectives and methodologies for successful software testing.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 26

University Institute of Engineering

DEPARTMENT OF COMPUTER SCIENCE &


ENGINEERING
Subject Name: Software Engineering
Subject Code: 23CST-206
Software Testing

Er. Jagmeet Kaur


E8387
ASSISTANT PROFESSOR DISCOVER . LEARN . EMPOWER
CSE

09/12/24 Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh Univer 1


sity
Chapter-7
Software Testing

• Software Testing Fundamentals

• Strategic Approach to Software Testing

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 2


Software Testing Fundamentals
• Software testing can be stated as the process of verifying and
validating that a software or application is bug free, meets the
technical requirements as guided by it’s design and development and
meets the user requirements effectively and efficiently with handling
all the exceptional and boundary cases.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 3


Software Testing Fundamentals
• The process of software testing aims not only at finding faults in the
existing software but also at finding measures to improve the software
in terms of efficiency, accuracy and usability.
• It mainly aims at measuring specification, functionality and
performance of a software program or application.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 4


Software Testing Fundamentals
• 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?”

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 5


Software Testing Fundamentals
• Software Testing can be broadly classified into two types:
• 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.
• Manual testing also includes exploratory testing, as testers explore the
software to identify errors in it.
Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 6
Software Testing Fundamentals
• 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.
• 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, improves accuracy, and saves time and
money in comparison to manual testing.
Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 7
Software Testing Fundamentals
• Software testing is a process used to identify the correctness,
completeness and quality of developed computer software.
• It is the process of executing a program / application under positive
and negative conditions by manual or automated means.
• It checks for the :-
• Specification
• Functionality
• Performance Software Testing

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 8


Software Testing Fundamentals
• Software Testing is important as it may cause mission failure, impact
on operational performance and reliability if not done properly.
• Effective software testing delivers quality software products satisfying
user’s requirements, needs and expectations.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 9


Software Testing Fundamentals
• Bug, Fault & Failure 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. A person makes an Error That creates a fault in software That
can cause a failure in operation

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 10


Software Testing Fundamentals
• Software Tester is the one who performs testing and find bugs, if they
exist in the tested application.
• Program Manager-
• The planning and execution of the project to ensure the success of a
project minimizing risk throughout the lifetime of the project.
• Responsible for writing the product specification, managing the
schedule and making the critical decisions and trade-offs.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 11


Software Testing Fundamentals
• QA Lead-
• Coach and mentor other team members to help improve QA
effectiveness
• Work with other department representatives to collaborate on joint
projects and initiatives
• Implement industry best practices related to testing automation and to
streamline the QA Department.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 12


Software Testing Fundamentals
• Test Analyst Lead
• Responsible for planning, developing and executing automated test
systems, manual test plans and regressions test plans.
• Identifying the Target Test Items to be evaluated by the test effort
• Defining the appropriate tests required and any associated Test Data
• Gathering and managing the Test Data
• Evaluating the outcome of each test cycle

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 13


Software Testing Fundamentals
• Test Engineer
• Writing and executing test cases and Reporting defects
• Test engineers are also responsible for determining the best way a test
can be performed in order to achieve 100% test coverage of all
components

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 14


Software Testing Strategies

• Software testing or Quality Assurance strategies describe how to


mitigate product risks of stakeholders at the test level, which kinds of
testing are to be done and which entry and exit criteria will apply.

• They’re made based on development design documents.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 15


FACTORS TO CONSIDER IN CHOOSING SOFTWARE
TESTING STRATEGIES
• RISKS. Risk management is paramount during testing, thus consider the
risks and the risk level.
• For an app that is well-established that’s slowly evolving, regression is a
critical risk.
• That is why regression-averse strategies make a lot of sense.
• For a new app, a risk analysis could reveal various risks if choosing a
risk-based analytical strategy.
• OBJECTIVES. Testing should satisfy the requirements and needs of
stakeholders to succeed. If the objective is to look for as many defects as
possible with less up-front time and effort invested, a dynamic strategy
makes sense.
Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 16
FACTORS TO CONSIDER IN CHOOSING SOFTWARE
TESTING STRATEGIES

• SKILLS. Take into consideration which skills the testers possess and lack,
since strategies should not only be chosen but executed as well.
• A standard compliant strategy is a smart option when lacking skills and time
in the team to create an approach.
• PRODUCT. Some products such as contract development software and
weapons systems tend to have requirements that are well-specified.
• This could lead to synergy with an analytical strategy that is requirements-
based.
• BUSINESS. Business considerations and strategy are often important.
• If using a legacy system as a model for a new one, one could use a model-
based strategy.
Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 17
FACTORS TO CONSIDER IN CHOOSING
SOFTWARE TESTING STRATEGIES
• REGULATIONS. At some instances, one may not only have to
satisfy stakeholders, but regulators as well.
• In this case, one may require a methodical strategy which satisfies
these regulators.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 18


STRATEGY IN SOFTWARE TESTING
• The main objective of software testing is to design the tests in such a
way that it systematically finds different types of errors without taking
much time and effort so that less time is required for the development
of the software.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 19


STRATEGY IN SOFTWARE TESTING
• The overall strategy for testing software includes:

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 20


STRATEGY IN SOFTWARE TESTING
• Before testing starts, it’s necessary to identify and specify the requirements of the
product in a quantifiable manner: Different characteristics quality of the software is
there such as maintainability that means the ability to update and modify, the probability
that means to find and estimate any risk, and usability that means how it can easily be
used by the customers or end-users. All these characteristic qualities should be specified
in a particular order to obtain clear test results without any error.

• Specifying the objectives of testing in a clear and detailed manner.


Several objectives of testing are there such as effectiveness that means how effectively
the software can achieve the target, any failure that means inability to fulfill the
requirements and perform functions, and the cost of defects or errors that mean the cost
required to fix the error. All these objectives should be clearly mentioned in the test plan.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 21


STRATEGY IN SOFTWARE TESTING
• For the software, identifying the user’s category and developing a profile
for each user.
Use cases describe the interactions and communication among different
classes of users and the system to achieve the target. So as to identify the
actual requirement of the users and then testing the actual use of the product.
• Developing a test plan to give value and focus on rapid-cycle testing.
Rapid Cycle Testing is a type of test that improves quality by identifying and
measuring the any changes that need to be required for improving the process
of software. Therefore, a test plan is an important and effective document
that helps the tester to perform rapid cycle testing.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 22


STRATEGY IN SOFTWARE TESTING
• Robust software is developed that is designed to test itself.
The software should be capable of detecting or identifying different classes
of errors. Moreover, software design should allow automated and regression
testing which tests the software to find out if there is any adverse or side
effect on the features of software due to any change in code or program.
• Before testing, using effective formal reviews as a filter.
Formal technical reviews is technique to identify the errors that are not
discovered yet. The effective technical reviews conducted before testing
reduces a significant amount of testing efforts and time duration required
for testing software so that the overall development time of software is
reduced.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 23


STRATEGY IN SOFTWARE TESTING
• Conduct formal technical reviews to evaluate the nature, quality or ability of
the test strategy and test cases.

The formal technical review helps in detecting any unfilled gap in the testing
approach. Hence, it is necessary to evaluate the ability and quality of the test
strategy and test cases by technical reviewers to improve the quality of software.
• For the testing process, developing a approach for the continuous
development.

As a part of a statistical process control approach, a test strategy that is already


measured should be used for software testing to measure and control the quality
during the development of software.
Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 24
References

• https://www.geeksforgeeks.org/software-testing-strategies/
• https://www.browserstack.com/guide/software-testing-strategies-an
d-approaches
• https://www.slideshare.net/Chankey007/software-testing-6644248
• https://www.tutorialspoint.com/software_engineering/software_testi
ng_overview.htm
• https://www.geeksforgeeks.org/software-testing-basics/

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 25


THANK YOU

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 26

You might also like