0% found this document useful (0 votes)
3 views

Software Testing Unit-1 PART-1

The document provides a comprehensive overview of software testing, including definitions, types, principles, and methodologies. It covers the roles of software testers, objectives of testing, and the importance of quality assurance and control. Additionally, it explains the V-model for verification and validation, along with various testing techniques such as static and dynamic testing.

Uploaded by

nehabamane6
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views

Software Testing Unit-1 PART-1

The document provides a comprehensive overview of software testing, including definitions, types, principles, and methodologies. It covers the roles of software testers, objectives of testing, and the importance of quality assurance and control. Additionally, it explains the V-model for verification and validation, along with various testing techniques such as static and dynamic testing.

Uploaded by

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

Software Testing

By Ganesh Koravi
Unit 1 :Basic Of Software Testing And
Testing Methods
Generic Definition
• What is Testing?
➢Testing the completeness and correctness of application

● What is Software ?
➢It is set of program designed to perform a specific task

● What is product ?
➢It offers standard set of functionality for different customers example ATM

● What is project ?
➢When application is developed for single customer based on his
specification
Types of Software Testing
Definition Of Software Testing

• Testing is the execution of programs with the intent of finding defects.

• Software testing is a process of identifying the correctness of software by


considering its all attributes (Reliability, Scalability, Portability, Re-usability,
Usability) and evaluating the execution of software components to find the
software bugs or errors or defects.
Who is a Software Tester??..
• Software Tester is the one who performs testing and find bugs, if they
exist in the tested application.
Software Testing Principles
Software Testing Principles
• For testing an application or software, we need to follow some principles to
make our product defects free

1.Testing shows the presence of defects:-


➢ Show defect are present, but cannot prove that product is 100% defect free.
2.Exhaustive Testing is not possible:-
➢All combination of inputs and precondition is not possible.
3.Early Testing:-
➢In SDLC, testing activities should start as early as possible.
4.Defect Clustering:-
➢ A small number of modules contains most of the defects discovered during pre-
release testing
Software Testing Principles(Conti…)
5.Pesticide Paradox:-
➢Same kind of tests are repeated again and again, the same set of test cases
will no longer be able to find any new bug. To overcomes this “Pesticide
Paradox”. So it is necessary to review the test cases and add or update test
cases to find new bugs.
6.Testing is context-dependent:-
➢Testing is basically context dependent. For example, safety- critical
software is tested differently from an e-commerce site.
7.Absence of errors fallacy:-
➢System built does not fulfill the user needs and expectations then finding
and fixing defects of such build does not help.
What is the purpose of software testing?
• The primary goals of software testing are to validate the software's
functionality, enhance its performance, and improve the overall user
experience.
• To ensure the Quality of the product.
• The purpose of testing can be quality assurance, verification and
validation.
• To point out defects and errors that was made during the
development phases.
Objective of Testing
Objective of Testing(Conti…)
• To find defects before they cause a production system to fail.
• To bring the tested software, after correction of the identified defects
and retesting, to an acceptable level of quality.
• To perform the required tests efficiently and effectively, within the
limits budgetary and scheduling limitation.
• To compile a record of software errors for use in error prevention (by
corrective and preventive actions)
Defect, Failure, Fault, Error, Bug Terminology
• Defect :A defect is an error or a bug, in the application which is
created. A programmer while designing and building the software can
make mistakes or error. These mistakes or errors mean that there are
flaws in the software. These are called defects.
• Failure : Deviation of the software from its expected result. It is an
event
• Fault : State of software caused by an error.
• 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.
What is Test Case?
• The test case is defined as a group of conditions under which a tester
determines whether a software application is working as per the
customer's requirements or not.
• A test case is a documentation which specifies input values, expected
output and the precondition for executing the test.
Test Case(Conti…)
• Objective behind writing and executing the test cases are:-
➢ Find the defect in software products.
➢Verify that the software meets the end user requirements.
➢Improve software quality.
➢Minimize the maintenance and software support costs.
➢Avoid post deployment risk.
➢Compliance with processes.
➢Help management to make software delivery decisions.
Test Case(Conti…)
• Test Case Specification Parameters are as Follows:-
➢Test Case ID
➢Test Scenario
➢Test Case Description
➢Test Steps
➢Preconditions
➢Test Data
➢Expected Result
➢Test Parameter
➢Actual Result
➢Environment Information
➢Comments
The process to write test cases
Format for test Cases in Excel Sheet
Difference Between Test Scenario and Test Case
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.

• When to Start and Stop Testing Of Software?


To Know when to start and when to stop the testing work, it is very
important to define the entry and the exit criteria for the success of any
project.
Entry Criteria
• Entry criteria are minimum eligibility or the minimum set of condition that
should be met in order to start the testing work.

1. Test Plan: A detailed test plan is available, outlining testing scope,


approach, and objectives.
2. Test Environment: The testing environment is set up, and all necessary
tools and equipment are ready.
3. Test Data: Relevant test data is available and accessible.
4. Software Build: A stable software build is available, meeting the testing
requirements.
5. Requirements: Clear and unambiguous software requirements are
provided.
Exit Criteria
• Exit criteria are minimum eligibility or the set of condition that should be
met in order to close a particular project phase.
1. Test Completion: All test cases have been executed, and testing is
complete.
2. Test Objectives: Testing objectives, as outlined in the test plan, have
been achieved.
3. Defect Resolution: All identified defects have been resolved, and
retesting is complete.
4. Test Results: Test results are documented, and test reports are available.
5. Acceptance: The software meets the acceptance criteria, and the
customer or stakeholders are satisfied.
Skills for Software Tester
• Communication Skills
• Domain Knowledge
• Desire to Learn
• Technical Skills
• Analytical Skills
• Planning
• Integrity
• Curiosity
• Think from Users Perspective
• Be a Good Judge of Your Product
Quality Assurance(QA) and Quality Control(QC)
• Quality Assurance(QA):-
• Software quality assurance is (also known as QA) a sequence of tasks
to prevent defects and ensure that the techniques, methods,
approaches, and processes are designed for a specific application
must be implemented correctly. This is an ongoing process within the
development of a software system.
• Quality assurance test ensures the development of high-quality
software because of its main focus on the high-quality processes,
good quality management system.
QA(Conti…)
QA aims to ensure that the development process is robust,
reliable, and repeatable, resulting in high-quality products.

1.Quality assurance prevents defects.


2.Quality assurance is process oriented.
3.Quality assurance is proactive in a process and preventive in nature.
4.Quality assurance is a managerial tool.
5.Each developer is responsible for quality assurance.
Quality Control(QC)
• Quality Control also known as QC is a sequence of tasks to ensure
the quality of software by identifying defects and correction of
defects in the developed software.
• The main purpose of this process is to correct all types of defects
before releasing the software.
• The responsibility of quality control is of a specific team which is
known as a testing team that tests the defects of software by
validation and corrective tools.
QC(Conti…)
1.Quality Control provides identification of defects.
2.Quality Control is product oriented.
3.Quality Control is a corrective tool.
4.Testing team is responsible for Quality control.
5.Quality Control is a reactive process.
Verification and Validation
• Verification:-
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.
Verification(Conti…)
Validation
• 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.
Validation(Conti…)
V-model/ V and V model /Verification and
Validation model
This model came up to overcome the drawback of the waterfall
model. And in this model, testing starts from the requirement stage
itself.
In this model, first, all the activities go on the downward direction,
and at one point in time, it starts moving in the upward direction to re-
use the test document for the testing process and forms a V shape.
Hence it is known as the V model.
▪ When we go for this model
• For the large and complex application, here, large means that the n
numbers of modules and complex specify lots of dependencies
between modules.
• And It is also used for the long term projects.
V Model(Conti…)
• Requirements:-
It is a document which is collected from the customer; here, we have two
different types of requirements documents, which are as follows:
1)CRS/BRS
2)SRS/FS

1)CRS/BRS
The CRS or BRS stands for Customer Requirement Specification or
Business Requirement Specification. For the CRS, the details will be written
in the simple business (English) language by the BA (business analyst), which
cannot be understood by the developers and the test engineers.
V model(Conti…)
2)SRS/ FS
It stands for Software Requirement Specifications or the Functional Specification; in this, all the details are
converted to the detail document, which can be understood by the developers and the test engineers.
V Model Process
V Model Process
• The entire V model executes in two-phase, the complete review process is
done in the verification phase, and the whole testing process is done
under the validation phase; that's why it is also known as verification and
validation model.
A)Stage 1
• It will start from collecting the CRS (customer requirement specification)
document, from the client by the Business Analyst where the test engineer
will check the following scenarios:
• Review the CRS based on
• Incorrect requirements
• Missing requirements
• Conflicts in the requirements
• Write Acceptance Test documents
Once the test engineer team reviews the CRS and found any bugs or
defects, they will send it to the development team for fixing the bugs.
After fixing the bugs, the development team updates the CRS and
concurrently developing the SRS document.
B)Stage 2
• After completing the CRS, the SRS is sent to the testing team for the
review process, and the developers start creating the HLD (high-level
design) for the application. And the testing team will test the SRS on
the following scenarios:
• Review the SRS against CRS
• Each CRS is transferred to SRS
• CRS is not transformed properly to SRS
• Write the system Test documents
• Once the testing team reviews every detail of the SRS and CRS has
been converted correctly to SRS, we will move to our next stage.
C)Stage 3
After the completion of HLD, the developers start creating the LLD
(Low-level design) for the application, and in the meantime, the tester
will check the following tests on the HLD:
• Review HLD
• Write integration test documents
D)Stage 4
Once the testing team has done reviewing the HLD, the developers
write the coding and develops the application, and the testing team
will do the following tasks:
• Review the LLD
• Write functional test documents
V Model Process(Conti…)
E)Stage 5
After the completion of the coding part, the developers will perform
one round of unit testing, which is also called white box testing, and
check every line of the code and make sure that the code is correct.
• After performing the unit testing, the application is sent to the testing
team, where they perform multiple testing such as functional testing,
integration testing, and system testing, and acceptance testing.
• And once the testing part is done, the application will finally deliver to
the customer.
Advantage and Disadvantage of V and V Model
Methods of Testing
• Static Testing:-
• Static testing is testing, which checks the application without
executing the code. It is a verification process. Some of the essential
activities are done under static testing such as business requirement
review, design review, code walkthroughs, and the test
documentation review.
• Static testing is performed in the white box testing phase, where the
programmer checks every line of the code before handling over to the
Test Engineer.
• Static testing can be done manually or with the help of tools to
improve the quality of the application by finding the error at the early
stage of development; that why it is also called the verification
process.
• Dynamic Testing
• Dynamic testing is testing, which is done when the code is executed
at the run time environment. It is a validation process where
functional testing [unit, integration, and system testing] and non-
functional testing [user acceptance testing] are performed.
• We will perform the dynamic testing to check whether the application
or software is working fine during and after the installation of the
application without any error.

• Static V/S Dynamic Testing


• Static testing is an approach to test project documents in the form of
Reviews, Walkthroughs and Inspections.
• Dynamic testing is an approach to test the actual software by giving
inputs and observing results.
Difference between Static testing and Dynamic
Testing
Types of Static testing
A) Inspections
B) Structured Walkthroughs
C)Technical Review
❑ Why Static testing
→ Early defect detection and correction
→ To get fewer defect at a later stage of testing
❑Objectives of Static testing
• Static testing will decrease the flaws in production.
• Static testing will identify, anticipate and fix the bugs at the earliest
possible time.
• It is used to save both time and cost.
• It is used to identify defects in the early stage of SDLC, where we can fix
them easily.
A)Inspections:
• Its a formal approach to the requirements schedule.
• At least 3- 8 people will sit in the meeting 1- reader 2-writer 3-
moderator plus concerned.
• Inspection will have a proper schedule which will be intimated via
email to the concerned developer/tester.
The Goals of Inspection:-
➢It help the author to improve the quality of the document.
➢It improves product quality
➢It removes defect efficiently as early as possible
➢It creates common understanding by exchanging information
B)Structured Walkthroughs
• It is a formal review and we can discuss/raise the issues at peer level.
• Also walkthrough does not have minutes of the meet. It can happen
at any time and conclude just like that no schedule as such.
• The main objective is to find defect in order to improve the quality of
the product
• its is informal, anytime, not planned, done whenever required.
• Author of the document will explain to their team
• Benefits of Structured walkthroughs:-
➢Save time and money
➢It creates awareness about different development or maintaenance
methodologies.
C) Technical Review:-
• Conducts on documents to ensure correctness and completeness.
• Review before development i.e. Simple document
• Read the document, correct or not
• Review testing can do anybody, manager, developer, tester, coworker etc.
• Example:
➢Requirement Reviews
➢Design Reviews
➢Code Reviews
➢Test plan reviews
➢Test cases reviews etc.
• Goals of the Technical Review:-
• To ensure that in the technical concept are used correctly, in a stage.
• To access the value of technical concept and alternatives in the
product.
• Advantages of Static Testing:-
• Improved Product quality
• Improved the efficiency of Dynamic testing
• Reduced SDLC cost
• Exact location of bug is traced
• Disadvantages of Static Testing:-
• Time consuming
• Limited trainee personnel to thoroughly conduct static code analysis.
Difference between Inspection and Walkthrough
White Box Testing
• White box testing which also known as glass box testing, structural
testing, clear box testing, open box testing and transparent box
testing.
• It tests internal coding and infrastructure of a software focus on
checking of predefined inputs against expected and desired outputs
• In this type of testing programming skills are required to design test
cases.
• The primary goal of white box testing is to focus on the flow of inputs
and outputs through the software and strengthening the security of
the software.
White Box (Conti…)
• The developers can perform white box testing.
• White Box Testing conducts on internal logic of the programs.
• Programming Skills are required.
• Ex: Unit Testing & Integration Testing
Techniques Used in White Box Testing
• Advantages of White box testing:-
➢White box testing optimizes code so hidden errors can be identified.
➢Test cases of white box testing can be easily automated.
➢This testing is more thorough than other testing approaches as it covers all
code paths.
➢It can be started in the SDLC phase even without GUI.

• Disadvantages of White box testing


➢White box testing is too much time consuming when it comes to large-
scale programming applications.
➢White box testing is much expensive and complex.
➢It can lead to production error because it is not detailed by the developers.
➢White box testing needs professional programmers who have a detailed
knowledge and understanding of programming language and
implementation.

You might also like