0% found this document useful (0 votes)
5 views60 pages

Software Engineering

The document outlines the Capability Maturity Model Integration (CMMI), which is designed to improve processes across various disciplines, offering both staged and continuous representations for organizations to enhance their processes. It details the five maturity levels in the staged representation and the six capability levels in the continuous representation, emphasizing the importance of systematic process improvement. Additionally, the document covers software requirements specifications, risk management processes, and the significance of identifying, assessing, and mitigating risks in software projects.

Uploaded by

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

Software Engineering

The document outlines the Capability Maturity Model Integration (CMMI), which is designed to improve processes across various disciplines, offering both staged and continuous representations for organizations to enhance their processes. It details the five maturity levels in the staged representation and the six capability levels in the continuous representation, emphasizing the importance of systematic process improvement. Additionally, the document covers software requirements specifications, risk management processes, and the significance of identifying, assessing, and mitigating risks in software projects.

Uploaded by

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

Software Engineering

CMMI Representation – Staged and Continuous


A representation allows an organization to pursue a
Capability Maturity Model Integration (CMMI) different set of improvement objectives. There are two
representations for CMMI :
  Staged Representation :
 o uses a pre-defined set of process areas to
 define improvement path.
o provides a sequence of improvements, where
The Capability Maturity Model Integration (CMMI) is an each part in the sequence serves as a
advanced framework designed to improve and integrate foundation for the next.
processes across various disciplines such as software o an improved path is defined by maturity
engineering, systems engineering, and people level.
management. It builds on the principles of the original o maturity level describes the maturity of
CMM, enabling organizations to enhance their processes processes in organization.
systematically. CMMI helps organizations fulfill o Staged CMMI representation allows comparison
customer needs, create value for investors, and improve between different organizations for multiple
product quality and market growth. It offers two maturity levels.
representations, staged and continuous, to guide  Continuous Representation :
organizations in their process improvement efforts. o allows selection of specific process areas.
o uses capability levels that measures
improvement of an individual process area.
What is Capability Maturity Model Integration (CMMI)? o Continuous CMMI representation allows
Capability Maturity Model Integration (CMMI) is a comparison between different organizations
successor of CMM and is a more evolved model that on a process-area-by-process-area basis.
incorporates best components of individual disciplines o allows organizations to select processes
of CMM like Software CMM, Systems Engineering CMM, which require more improvement.
People CMM, etc. Since CMM is a reference model of o In this representation, order of improvement
matured practices in a specific discipline, so it of various processes can be selected which
becomes difficult to integrate these disciplines as allows the organizations to meet their
per the requirements. This is why CMMI is used as it objectives and eliminate risks.
allows the integration of multiple disciplines as and
when needed.
CMMI Model – Maturity Levels
In CMMI with staged representation, there are five
Objectives of CMMI maturity levels described as follows :
1. Fulfilling customer needs and expectations. 1. Maturity level 1 : Initial
2. Value creation for investors/stockholders.  processes are poorly managed or controlled.
3. Market growth is increased.  unpredictable outcomes of processes involved.
4. Improved quality of products and services.  ad hoc and chaotic approach used.
5. Enhanced reputation in Industry.  No KPAs (Key Process Areas) defined.
 Lowest quality and highest risk. 1. Capability level 0 : Incomplete
2. Maturity level 2 : Managed  incomplete process – partially or not performed.
 requirements are managed.  one or more specific goals of process area are
 processes are planned and controlled. not met.
 projects are managed and implemented according to  No generic goals are specified for this level.
their documented plans.  this capability level is same as maturity level
 This risk involved is lower than Initial level, 1.
but still exists. 2. Capability level 1 : Performed
 Quality is better than Initial level.  process performance may not be stable.
3. Maturity level 3 : Defined  objectives of quality, cost and schedule may not
 processes are well characterized and described be met.
using standards, proper procedures, and methods,  a capability level 1 process is expected to
tools, etc. perform all specific and generic practices for
 Medium quality and medium risk involved. this level.
 Focus is process standardization.  only a start-step for process improvement.
4. Maturity level 4 : Quantitatively managed 3. Capability level 2 : Managed
 quantitative objectives for process performance  process is planned, monitored and controlled.
and quality are set.  managing the process by ensuring that objectives
 quantitative objectives are based on customer are achieved.
requirements, organization needs, etc.  objectives are both model and other including
 process performance measures are analyzed cost, quality, schedule.
quantitatively.  actively managing processing with the help of
 higher quality of processes is achieved. metrics.
 lower risk 4. Capability level 3 : Defined
5. Maturity level 5 : Optimizing  a defined process is managed and meets the
 continuous improvement in processes and their organization’s set of guidelines and standards.
performance.  focus is process standardization.
 improvement has to be both incremental and 5. Capability level 4 : Quantitatively Managed
innovative.  process is controlled using statistical and
 highest quality of processes. quantitative techniques.
 lowest risk in processes and their performance.  process performance and quality is understood in
statistical terms and metrics.
 quantitative objectives for process quality and
performance are established.
CMMI Model – Capability Levels 6. Capability level 5 : Optimizing
 focuses on continually improving process
A capability level includes relevant specific and
performance.
generic practices for a specific process area that can
 performance is improved in both ways –
improve the organization’s processes associated with
incremental and innovation.
that process area. For CMMI models with continuous
 emphasizes on studying the performance results
representation, there are six capability levels as
across the organization to ensure that common
described below :
causes or issues are identified and fixed.
1. What is the difference CMM and CMMI?
CMM (Capability Maturity Model) focuses on improving
processes within a single discipline, like software
development. CMMI (Capability Maturity Model
Integration) integrates multiple disciplines into one
cohesive framework, allowing for broader and more
flexible process improvement. CMMI is the evolved
version of CMM, incorporating best practices from
various CMM models.
What is the primary objective of the capability
maturity model integration CMMI )?
Building dependable environments with innovative,
efficient, and productive departments, services, and
products is one of CMMI’s main objectives.
3. What is level 5 in CMMI called?
Level 5 in CMMI called Optimizing.

Unit -2
Requirement analysis
(Security,storage, configuration,
Performance ,cost ,interoperability ,
Software requirements:- flexibility , disaster , recovery, accessibility.
It is the description of features and
functionalitites of the target system.
SRS(software requirements specification):-
It is the description of what the system should
do. SRS is a description of a software system to be
developed.
Requirements engineering refers to the process of
defining, documenting and maintaining requirements in It lays out functional and not functional requirements
the engineering design process. of the software to be developed.
It is a four step process ,which includes- It may include a set of use cases that describe user
interactions that the software must provide to the user
1. Feasibility Study for perfect interaction.
2. Requirement gathering/elicitation
3. Software requirement specification
4. Software requirement validation
SRS STRUCTURE:-
1. Introduction
Tools support for requirement engineering:-  Purpose
 Intended audience
 Observation reports(user observation)
 Scope
 Questionaries
 Definations
 Use cases
 References.
 User stories
2. Overall Description
 Requirement workshops
 User interfaces
 Mind mapping
 System Interfaces
 Role-playing
 Constraints,Assumptions and dependencies
 Prototyping
 User charcateristics
3. System features and requirements
 Functional Requirements
Functional vs Non-functional requirements:-  Use cases
 Requiremnets which are related to  External interface requirements
functional/working aspect of software fall into  Logical database requirement
this category  Non-functional requirements
 Non-functional requirements are expected 4. Deliver for approval
charcateristics of target software.
User requirememts:-
 Easy and simple to operate
 Quick response
 Effectivey handling operational errors
 Customer support

Unit -4
Risk management

What is Risk Management?


Risk Management is a systematic process of of possible events and maximize positive
recognizing, evaluating, and handling threats or risks results in order to reduce risk effectively.
that have an effect on the finances, capital, and
overall operations of an organization. These risks can Organizations can more effectively identify,
come from different areas, such as financial assess, and mitigate major risks by
instability, legal issues, errors in strategic implementing a consistent, systematic, and
planning, accidents, and natural disasters. integrated approach to risk management.
The main goal of risk management is to predict
possible risks and find solutions to deal with them
successfully.

The risk management process


Why is risk management important? Risk management is a sequence of steps that
Risk management is important because it help a software team to understand, analyze,
helps organizations to prepare for and manage uncertainty. Risk management
unexpected circumstances that can vary from process consists of
small issues to major crises. By actively  Risks Identification.
understanding, evaluating, and planning for  Risk Assessment.
potential risks, organizations can protect  Risks Planning.
their financial health, continued operation,  Risk Monitoring
and overall survival.
Let’s Understand why risk management
important with an example.
Suppose In a software development project,
one of the key developers unexpectedly falls
ill and is unable to contribute to the
product for an extended period.
One of the solution that organization may
have , The team uses collaborative tools and
procedures, such as shared work boards or
project management software, to make sure
that each member of the team is aware of all
tasks and responsibilities, including those
of their teammates.
An organization must focus on providing
resources to minimize the negative effects
as equipment failures and extreme weather
conditions.
Risk analysis
Risk analysis is the process of evaluating
and understanding the potential impact and
likelihood of identified risks on an
organization. It helps determine how serious
a risk is and how to best manage or mitigate
it. Risk Analysis involves evaluating each
risk’s probability and potential
consequences to prioritize and manage them
effectively.
Risk Planning
Risk planning involves developing strategies
and actions to manage and mitigate
identified risks effectively. It outlines
how to respond to potential risks, including
prevention, mitigation, and contingency
measures, to protect the organization’s
objectives and assets.
Risk Monitoring
Risk monitoring involves continuously
Risk Management Process tracking and overseeing identified risks to
assess their status, changes, and
Risk Identification effectiveness of mitigation strategies. It
Risk identification refers to the systematic ensures that risks are regularly reviewed
process of recognizing and evaluating and managed to maintain alignment with
potential threats or hazards that could organizational objectives and adapt to new
negatively impact an organization, its developments or challenges.
operations, or its workforce. This involves
identifying various types of risks, ranging
from IT security threats like viruses and
phishing attacks to unforeseen events such
Understanding Risks in Software Projects 2. Technical Risks:
A computer code project may be laid low with Technical risks concern potential style,
an outsized sort of risk. To be ready to implementation, interfacing, testing, and
consistently establish the necessary risks maintenance issues. Technical risks
that could affect a computer code project, conjointly embody ambiguous
it’s necessary to group risks into specifications, incomplete specifications,
completely different categories. The project dynamic specifications, technical
manager will then examine the risks from uncertainty, and technical degeneration.
every category square measure relevant to Most technical risks occur thanks to the
the project. event team’s lean information concerning
the project.
There are mainly 3 classes of risks that may
affect a computer code project: 3. Business Risks:
1. Project Risks: This type of risk embodies the risks of
Project risks concern various sorts of building a superb product that nobody
monetary funds, schedules, personnel, needs, losing monetary funds or personal
resources, and customer-related issues. A commitments, etc.
vital project risk is schedule slippage.
Since computer code is intangible, it’s
tough to observe and manage a computer
code project. It’s tough to manage one
thing that can not be seen. For any Risk management standards and frameworks
producing project, like producing cars,
the project manager will see the
merchandise taking form. Risk management standards and frameworks
For example, see that the engine is give organizations guidelines on how to
fitted, at the moment the area of the door find, evaluate, and handle risks
unit is fitted, the automotive is being effectively. They provide a structured way
painted, etc. so he will simply assess the to manage risks, making sure that everyone
progress of the work and manage it. The follows consistent and reliable practices.
physical property of the merchandise being Here are some well-known risk management
developed is a vital reason why several standards and frameworks:
computer codes come to suffer from the 1. COSO ERM Framework:
danger of schedule slippage.
COSO ERM Framework was introduce in 2004 and Benefits of risk management
updated in 2017. Its main purpose is to Here are some benefits of risk management:
addresses the growing complexity of  Helps protect against potential losses.
Enterprise Risk Management (ERM).  Improves decision-making by considering
 Key Features: risks.
o 20 principles grouped into five  Reduces unexpected expenses.
components: Governance and culture,  Ensures adherence to laws and regulations.
Strategy and objective-setting,  Builds resilience against unexpected
Performance, Review and revision, challenges.
Information, communication, and  Safeguards company reputation.
reporting. Limitation of Risk Management
o It promote integrating risk into Here are Some Limitation of Risk Management
business strategies and operations.  Too much focus on risk can lead to missed
2. ISO 31000: opportunities.
ISO 31000 was introduce in 2009, revised in  Implementing risk management can be
2018. It provides principles and a framework expensive.
for ERM.  Risk models can be overly complex and hard
 Key Features: to understand.
o It offers guidance on applying risk  Having risk controls might make people
management to operations. feel too safe.
o It focuses on identifying,  Relies on accurate human judgment and can
evaluating, and mitigating risks. be prone to mistakes.
o It promote senior management’s role  Some risks are hard to predict or
and integrating risk management quantify.
across the organization.  Managing risks can take a lot of time and
3. BS 31100: resources.
This framework is British Standard for Risk
Management and latest version issued in
2001. It offers a structured approach to
applying the principles outlined in ISO What are the Five Steps in the Risk Management
31000:2018, covering tasks like identifying, Process?
evaluating, and addressing risks, followed Step 1: Identify the Risks
by reporting and reviewing risk management This step involves the activities to
efforts. properly comprehend the Risks and their
impact on the various project tasks. It is planned according to the impact that the
important to recognize and document the risks create. The key factors of this step
risks in a proper record. It has various include:
aspects such as methods of identification,  Analyze Risks Scenario: The Project
communicating with the stakeholder, and experts understand What risks may arise
documentation of the risk factors. Let us under what conditions. Also, they evaluate
discuss each of these in detail. the scale of the scenario that may lead to
 Identify the Risks: The project experts a particular risk. Finally, the risk
implement methods such as SWOT (Strengths, assessment results are communicated to the
Weaknesses, Opportunities, Threats) stakeholders associated with the project.
Analysis to predict the Project risks.  Define the Scope of the Risks: After
Additionally, the Delphi Method is used to understanding the root cause of the risks,
know the risk information from the expert the stakeholders and project team analyze
opinions and consensus. the domains that may be impacted by the
 Involve the Stakeholders: Risks may affect risks. Thus, they define the boundaries
every part of the Project due to which the and limits for each risk.
entire business process has to suffer.  Develop the criteria for
Therefore, through this substep, Project prioritization: Since all the risks cannot
Experts involve the different Stakeholders be diagnosed and resolved at the same
through standup sessions and meetings to time, it is important to be aware of the
get thoughts on the Risks from the end- priority of the risk-response plans. So,
user perspectives. criteria for the risk priority are defined
 Document the risks: After the different in this substep.
risks have been identified, they are Step 3: Evaluate or Rank the Risks
organized in the form of a hierarchy and In this step, risks are evaluated or ranked
formally documented in the record. These by assessing their potential impact and
records are accessible to the key likelihood of occurrence. This
stakeholders and project team to prioritization helps focus attention on the
continuously review and update in each most critical risks that require mitigation
phase of the Project. or contingency planning.
Step 2: Analyze the Risks  Perform Qualitative and Qualitative
After we have identified all the possible Analysis: Some risks have a higher impact
risks in our project, we have to analyze and some have a lower. Also, some risks
them so that the mitigating actions can be may have a high frequency of occurrence
while some have a lower frequency of  Implement the Mitigation actions: Here,
occurrence. Hence, it is important to the action plans are executed as per the
analyze them in terms of quality as well actions, responsibilities, and timelines
as quantity so that they can be properly specified in the risk response strategy.
analyzed.  Monitor and update the Risk
 Visualize the Probability Impact Register: After the implementation of risk
Analysis: The evaluation and assessment of response is done, Project Managers monitor
the Project risks have to be understood the performance and update the status in
and interpreted accurately. So, project the risk register.
managers often use the Risk Matrix to Step 5: Monitor and Review the Risks
analyze the Probability versus Impact of Identifying the risks and executing the
the Risk to categorize them into low, mitigation action is alone not sufficient to
medium, and high risk. ensure risk-free project planning. It is
 Documenting the Updates: All the updates also important to consciously monitor the
of the Risk Management Process are status of the risks and keep a check on the
finalized and documented in the record. risk-mitigating actions. The key actions of
This information also helps in the future this step are:
project execution.  Monitor the risks: The stakeholders and
Step 4: Treat the Risks the project managers keep a check on the
After identifying and evaluating the risks, probability, impact, or overall
various mitigation actions and response significance of the risk.
strategies are developed to reduce the risk  Analyzing KPIs: System experts observe the
impact and eliminate it from the Project Key Performance Indicators that give
Lifecycle. This step generally has the information about the metrics related to
following activities: risk occurrence, severity, and the success
 Develop the Mitigation Plans: The project of mitigation efforts.
experts can deal with the risks in four  Develop Trigger System and Early
ways. They can Avoid, Mitigate, Transfer, Warnings: If the risk response strategy
or Accept the risks. The type of action fails in any scenario, the response
plan depends upon the intensity and scope triggers are defined so that immediate
of a risk that arises. Keeping this fact action can be planned for risk mitigation.
in mind, the experts formulate different
mitigating actions.
be reduced. This could be only possible by
making effective risk management planning.
Methods for Identifying Risks A project may contain large variety of risk.
Last Updated : 30 Nov, 2022 To know the specific amount of risk, there
may be chance of affecting a project. So,


this is necessary to make categories into
 different class of risk.

Identifying risk is one of most important or There are many different types of risks which
essential and initial steps in risk affects the software project:
management process. By chance, if failure 1. Technology risks
occurs in identifying any specific or 2. Tools risks
particular risk, then all other steps that 3. Estimation risks
are involved in risk management will not be 4. People risks
implemented for that particular risk. For 5. Requirement risks
identifying risk, project team should review 6. Organizational risks
scope of program, estimate cost, schedule,
technical maturity, parameters of key Methods for Identifying Risks : Earlier,
performance, etc. To manage risk, project there were no easy methods available that
team or organization are needed to know about will surely identify all risks. But nowadays,
what risks it faces, and then to evaluate there are some additional approaches
them. Generally, identification of risk is an available for identifying risks. Some of
iterative process. It basically includes approaches for risk identification are given
generating or creating comprehensive list of below:
threats and opportunities that are based on 1. Checklist Analysis – Checklist Analysis is
events that can enhance, prevent, degrade, type of technique generally used to identify
accelerate, or might delay successful or find risks and manage it. The checklist is
achievement of objectives. In simple words, basically developed by listing items, steps,
if you don’t find or identify risk, you won’t or even tasks and is then further analyzed
be able to manage it. against criteria to just identify and
The organizer of project needs to expect some determine if procedure is completed correctly
of the risk in the project as early as or not. It is list of risk that is just found
possible so that the performance of risk may to occur regularly in development of software
project. Below is the list of software
development risk by Barry Boehm- modified and unique technique to gather risks
version. spontaneously by team members. The team
members identify and determine risks in ‘no
Risk Risk Reduction Technique
wrong answer’ environment. This technique
also provides opportunity for team members to
Various techniques include always develop on each other’s ideas. This
training and career technique is also used to determine best
Personnel development, job-matching, possible solution to problems and issue that
Shortfalls teambuilding, etc. arises and emerge.
3. Casual Mapping – Causal mapping is method
that builds or develops on reflection and
Various techniques include review of failure factors in cause and effect
incremental development, of the diagrams. It is very useful for
Unrealistic standardization of methods, facilitating learning with an organization or
time and cost recording, and analysis of system simply as method of project-post
estimates the past project, etc. evaluation. It is also key tool for risk
assessment.
4. SWOT Analysis – Strengths-Weaknesses-
Development of Various techniques include Opportunities-Threat (SWOT) is very technique
wrong software formal specification and helpful for identifying risks within
functions methods, user surveys, etc. greater organization context. It is generally
used as planning tool for analyzing business,
its resources, and also its environment
Development of Various techniques include
simply by looking at internal strengths and
the wrong user user involvement,
weaknesses and opportunities and threats in
interface prototyping, etc. external environment. It is technique often
used in formulation of strategy. The
2. Brainstorming – This technique provides appropriate time and effort should be spent
and gives free and open approach that usually on thinking seriously about weaknesses and
encourages each and everyone on project team threats of organization for SWOT analysis to
to participate. It also results in greater more effective and successful in risk
sense of ownership of project risk, and team identification.
generally committed to managing risk for 5. Flowchart Method – This method allows for
given time period of project. It is creative dynamic process to be diagrammatically
represented in paper. This method is  Failure in function identification and
generally used to represent activities of its’ completion
process graphically and sequentially to 2. Budget Risk: Budget related risks refers
simply identify the risk. to the monetary risks mainly it occurs due
to budget overruns. Always the financial
aspect for the project should be managed
as per decided but if financial aspect of
Various Kinds of Risks in Software Development project mismanaged then there budget
The following are the types of risk concerns will arise by giving rise to
in software development : budget risks. So proper finance
distribution and management are required
Various kinds of risks in software development for the success of project otherwise it
may lead to project failure. Some reasons
1. Schedule Risk : Schedule related risks for Budget risks –
refers to time related risks or project  Wrong/Improper budget estimation
delivery related planning risks. The wrong  Unexpected Project Scope expansion
schedule affects the project development  Mismanagement in budget handling
and delivery. These risks are mainly  Cost overruns
indicates to running behind time as a  Improper tracking of Budget
result project development doesn’t 3. Operational Risks : Operational risk
progress timely and it directly impacts to refers to the procedural risks means these
delivery of project. Finally if schedule are the risks which happen in day-to-day
risks are not managed properly it gives operational activities during project
rise to project failure and at last it development due to improper process
affect to organization/company economy implementation or some external
very badly. Some reasons for Schedule operational risks. Some reasons for
risks – Operational risks –
 Time is not estimated perfectly  Insufficient resources
 Improper resource allocation  Conflict between tasks and employees
 Tracking of resources like system,  Improper management of tasks
skill, staff etc  No proper planning about project
 Frequent project scope expansion  Less number of skilled people
 Lack of communication and cooperation
 Lack of clarity in roles and 2. Security Risks: Vulnerabilities that might
responsibilities compromise the privacy, reliability or
 Insufficient training accessibility of the set are known as
4. Technical Risks : Technical risks refers security risks and they have become common
to the functional risk or performance risk in a time.
which means this technical risk mainly 3. Quality Risks: The risk associated with
associated with functionality of product quality is the potential for a product to
or performance part of the software be delivered that does not meet end user
product. Some reasons for Technical risks satisfaction or required criteria.
– 4. Risks associated with Law and
 Frequent changes in requirement Compliance: Rules and laws are often
 Less use of future technologies overlooked when it comes to project
 Less number of skilled employee development. Ignoring them may result in
 High complexity in implementation penalties, legal issues or just a lot of
 Improper integration of modules difficulties.
5. Programmatic Risks : Programmatic risks 5. Cost Risks: Unexpected costs, changes in
refers to the external risk or other the project scope or excess funds may
unavoidable risks. These are the external completely halt your financial plan.
risks which are unavoidable in nature. 6. Market Risks: The effectiveness of your
These risks come from outside and it is programme in the market may be compromised
out of control of programs. Some reasons by evolving technology trends, new
for Programmatic risks – competitors or shifting the customer
 Rapid development of market wants.
 Running out of fund / Limited fund for
project development
 Changes in Government rules/policy
 Loss of contracts due to any reason Risk Mitigation, Monitoring,
More risks associated with software
development and Management (RMMM) plan
1. Communication Risks: Misunderstandings, Last Updated : 22 Mar, 2021
mistakes and a general sense of confusion
can result from inadequate or absent 
communication. 

RMMM Plan : 1. To check if predicted risks occur or not.
A risk management technique is usually seen 2. To ensure proper application of risk
in the software Project plan. This can be aversion steps defined for risk.
divided into Risk Mitigation, Monitoring, and 3. To collect data for future risk analysis.
Management Plan (RMMM). In this plan, all 4. To allocate what problems are caused by
works are done as part of risk analysis. As which risks throughout the project.
part of the overall project plan project Risk Management and planning :
manager generally uses this RMMM plan. It assumes that the mitigation activity
In some software teams, risk is documented failed and the risk is a reality. This task
with the help of a Risk Information Sheet is done by Project manager when risk becomes
(RIS). This RIS is controlled by using a reality and causes severe problems. If the
database system for easier management of project manager effectively uses project
information i.e creation, priority ordering, mitigation to remove risks successfully then
searching, and other analysis. After it is easier to manage the risks. This shows
documentation of RMMM and start of a project, that the response that will be taken for each
risk mitigation and monitoring steps will risk by a manager. The main objective of the
start. risk management plan is the risk register.
This risk register describes and focuses on
Risk Mitigation :
the predicted threats to a software project.
It is an activity used to avoid problems
(Risk Avoidance).
Steps for mitigating the risks as follows.
1. Finding out the risk.
2. Removing causes that are the reason for
risk creation.
3. Controlling the corresponding documents
from time to time.
4. Conducting timely reviews to speed up the
work.
Risk Monitoring :
It is an activity used for project tracking.
It has the following primary objectives as
follows.
1. Portability: A software is claimed to be
transportable, if it may be simply created
to figure in several package environments,
in several machines, with alternative code
Unit -5 merchandise, etc.
2. Usability: A software has smart usability
Quality management
if completely different classes of users
(i.e. knowledgeable and novice users) will
What is Software Quality? simply invoke the functions of the
Software Quality shows how good and reliable merchandise.
a product is. To convey an associate degree 3. Reusability: A software has smart
example, think about functionally correct reusability if completely different
software. It performs all functions as laid modules of the merchandise will simply be
out in the SRS document. But, it has an reused to develop new merchandise.
associate degree virtually unusable program. 4. Correctness: Software is correct if
even though it should be functionally completely different needs as laid out in
correct, we tend not to think about it to be the SRS document are properly enforced.
a high-quality product. 5. Maintainability: A software is reparable,
Another example is also that of a product if errors may be simply corrected as and
that will have everything that the users once they show up, new functions may be
need but has an associate degree virtually simply added to the merchandise, and
incomprehensible and not maintainable code. therefore the functionalities of the
Therefore, the normal construct of quality merchandise may be simply changed, etc
as “fitness of purpose” for code merchandise 6. Reliability: Software is more reliable if
isn’t satisfactory. it has fewer failures. Since software
engineers do not deliberately plan for
their software to fail, reliability
depends on the number and type of mistakes
Factors of Software Quality they make. Designers can improve
The modern read of high-quality associates reliability by ensuring the software is
with software many quality factors like the easy to implement and change, by testing
following: it thoroughly, and also by ensuring that
if failures occur, the system can handle
them or can recover easily.
7. Efficiency. The more efficient software Umbrella activity that is applied throughout
is, the less it uses of CPU-time, memory, the software process.
disk space, network bandwidth, and other
resources. This is important to customers
in order to reduce their costs of running
the software, although with today’s Software Quality Assurance (SQA) encompasse s
powerful computers, CPU time, memory and SQA process Specific quality assurance and
disk usage are less of a concern than in quality control tasks (including technical
years gone by. reviews and a multitiered testing strategy)
Effective software engineering practice
(methods and tools) Control of all software
work products and the changes made to them a
procedure to ensure compliance with software
development standards (when applicable)
Software Quality Assurance – measurement and reporting mechanisms
Software Engineering
Last Updated : 02 Aug, 2024
Elements of Software Quality Assurance (SQA)
 1. Standards: The IEEE, ISO, and other

 standards organizations have produced a
broad array of software engineering
Software Quality Assurance (SQA) is simply a standards and related documents. The job
way to assure quality in the software. It is of SQA is to ensure that standards that
the set of activities that ensure processes, have been adopted are followed and that
procedures as well as standards are suitable all work products conform to them.
for the project and implemented correctly. 2. Reviews and audits: Technical reviews are
Software Quality Assurance is a process that a quality control activity performed by
works parallel to Software Development. It software engineers for software engineers.
focuses on improving the process of Their intent is to uncover errors. Audits
development of software so that problems can are a type of review performed by SQA
be prevented before they become major issues. personnel (people employed in an
Software Quality Assurance is a kind of organization) with the intent of ensuring
that quality guidelines are being followed 9. Risk management : The SQA organization
for software engineering work. ensures that risk management activities
3. Testing: Software testing is a quality are properly conducted and that risk-
control function that has one primary goal related contingency plans have been
—to find errors. The job of SQA is to established.
ensure that testing is properly planned
and efficiently conducted for primary goal
of software.
4. Error/defect collection and analysis : SQA Software Quality Assurance (SQA) Include
collects and analyzes error and defect 1. A quality management approach.
data to better understand how errors are 2. Formal technical reviews.
introduced and what software engineering 3. Multi testing strategy.
activities are best suited to eliminating 4. Effective software engineering technology.
them. 5. Measurement and reporting mechanism.
5. Change management: SQA ensures that
adequate change management practices have
been instituted.
6. Education: Every software organization Major Software Quality Assurance (SQA)
wants to improve its software engineering Activities
practices. A key contributor to 1. SQA Management Plan: Make a plan for how
improvement is education of software you will carry out the SQA throughout the
engineers, their managers, and other project. Think about which set of software
stakeholders. The SQA organization takes engineering activities are the best for
the lead in software process improvement project. check level of SQA team skills.
which is key proponent and sponsor of 2. Set The Check Points: SQA team should set
educational programs. checkpoints. Evaluate the performance of
7. Security management: SQA ensures that the project on the basis of collected data
appropriate process and technology are on different check points.
used to achieve software security. 3. Measure Change Impact: The changes for
8. Safety: SQA may be responsible for making the correction of an error
assessing the impact of software failure sometimes re introduces more errors keep
and for initiating those steps required to the measure of impact of change on
reduce risk. project. Reset the new change to check the
compatibility of this fix with whole Benefits of Software Quality Assurance (SQA)
project. 1. SQA produces high quality software.
4. Multi testing Strategy: Do not depend on a 2. High quality application saves time and
single testing approach. When you have a cost.
lot of testing approaches available use 3. SQA is beneficial for better reliability.
them. 4. SQA is beneficial in the condition of no
5. Manage Good Relations: In the working maintenance for a long time.
environment managing good relations with 5. High quality commercial software increase
other teams involved in the project market share of company.
development is mandatory. Bad relation of 6. Improving the process of creating
SQA team with programmers team will impact software.
directly and badly on project. Don’t play 7. Improves the quality of the software.
politics. 8. It cuts maintenance costs. Get the release
6. Maintaining records and right the first time, and your company can
reports: Comprehensively document and forget about it and move on to the next
share all QA records, including test big thing. Release a product with chronic
cases, defects, changes, and cycles, for issues, and your business bogs down in a
stakeholder awareness and future costly, time-consuming, never-ending cycle
reference. of repairs.
7. Reviews software engineering
activities: The SQA group identifies and
documents the processes. The group also Disadvantage of Software Quality Assurance
verifies the correctness of software (SQA)
product. There are a number of disadvantages of
8. Formalize deviation handling: Track and quality assurance.
document software deviations meticulously.  Cost: Some of them include adding more
Follow established procedures for handling resources, which cause the more budget its
variances. not, Addition of more resources For
betterment of the product.
 Time Consuming: Testing and Deployment of
the project taking more time which cause
delay in the project.
 Overhead : SQA processes can introduce
administrative overhead, requiring
documentation, reporting, and tracking of
quality metrics. This additional
administrative burden can sometimes Software Review – Software
outweigh the benefits, especially for
smaller projects.
Engineering
 Resource Intensive : SQA requires skilled Last Updated : 29 Jan, 2024
personnel with expertise in testing
methodologies, tools, and quality 

assurance practices. Acquiring and 
retaining such talent can be challenging
and expensive. Software Review is a systematic inspection of
 Resistance to Change : Some team members software by one or more individuals who work
may resist the implementation of SQA together to find and resolve errors and
processes, viewing them as bureaucratic or defects in the software during the early
unnecessary. This resistance can hinder stages of the Software Development Life Cycle
the adoption and effectiveness of quality (SDLC). A software review is an essential
assurance practices within an part of the Software Development Life Cycle
organization. (SDLC) that helps software engineers in
 Not Foolproof : Despite thorough testing validating the quality, functionality, and
and quality assurance efforts, software other vital features and components of the
can still contain defects or software. It is a whole process that includes
vulnerabilities. SQA cannot guarantee the testing the software product and it makes
elimination of all bugs or issues in sure that it meets the requirements stated by
software products. the client.
 Complexity : SQA processes can be complex, Usually performed manually, software review
especially in large-scale projects with is used to verify various documents like
multiple stakeholders, dependencies, and requirements, system designs, codes, test
integration points. Managing the plans, and test cases.
complexity of quality assurance activities Objectives of Software Review
requires careful planning and The objective of the software review is:
coordination. 1. To improve the productivity of the
development team.
2. To make the testing process time and cost-
effective.
3. To make the final software with fewer team preparation, you can determine the
defects. software’s availability.
4. To eliminate the inadequacies. 2. Management Preparation: To get ready for
Process of Software Review the review process, assign roles, gather
resources and provide brief management.
3. Review Planning: Establish the review’s
goals and scope, invite relevant
parties and set a time for the meeting.
4. Preparation: Distribute appropriate
resources, give reviewers time to get
familiar and promote issue identification
to help them prepare.
5. Examination and Exit Evaluation: Reviewers
should collaborate to examine the results,
record concerns, and encourage candid
communication in meetings. It assess the
results, make remedial plans based on flaws
that have been reported and assess the
process’s overall efficacy.
Types of Software Reviews
There are mainly 3 types of software
reviews:
1. Software Peer Review
Peer review is the process of assessing the
technical content and quality of the product
and it is usually conducted by the author of
the work product along with some other
developers.
Peer review is performed in order to examine
Software Review process
or resolve the defects in the software, whose
quality is also checked by other members of
1. Entry Evaluation: By confirming the team.
documentation, fulfilling entry Peer Review has following types:
requirements and assessing stakeholder and
1. Code Review: Computer source code is 2. Earlier inspection also reduces the
examined in a systematic way. maintenance cost of software.
2. Pair Programming: It is a code review where 3. It can be used to train technical authors.
two developers develop code together at the 4. It can be used to remove process
same platform. inadequacies that encourage defects.
3. Walkthrough: Members of the development
team is guided by author and other
interested parties and the participants ask
questions and make comments about defects.
4. Technical Review: A team of highly
qualified individuals examines the software
product for its client’s use and identifies
technical defects from specifications and
standards.
5. Inspection: In inspection the reviewers
follow a well-defined process to find
defects.
2. Software Management Review
Software Management Review evaluates the work
status. In this section decisions regarding
downstream activities are taken.
3. Software Audit Review
Software Audit Review is a type of external
review in which one or more critics, who are
not a part of the development team, organize
an independent inspection of the software
product and its processes to assess their
compliance with stated specifications and
standards. This is done by managerial level
people.
Advantages of Software Review
1. Defects can be identified earlier stage of
development (especially in formal review).
Objectives of Software Design
Unit-6 1. Correctness: A good design should be
correct i.e., it should correctly
Design engineering
implement all the functionalities of the
system.
2. Efficiency: A good software design should
Introduction of Software address the resources, time, and cost
optimization issues.
Design Process – 3. Flexibility: A good software design should
Last Updated : 25 Feb, 2024 have the ability to adapt and accommodate
changes easily. It includes designing the
 software in a way, that allows for

 modifications, enhancements, and
scalability without requiring significant
Software Design is the process of rework or causing major disruptions to the
transforming user requirements into a existing functionality.
suitable form, which helps the programmer in 4. Understandability: A good design should be
software coding and implementation. During easily understandable, it should be
the software design phase, the design modular, and all the modules are arranged
document is produced, based on the customer in layers.
requirements as documented in the SRS 5. Completeness: The design should have all
document. Hence, this phase aims to the components like data structures,
transform the SRS document into a design modules, external interfaces, etc.
document. 6. Maintainability: A good software design
The following items are designed and aims to create a system that is easy to
documented during the design phase: understand, modify, and maintain over
1. Different modules are required. time. This involves using modular and
2. Control relationships among modules. well-structured design principles e.g.,
3. Interface among different modules. (employing appropriate naming conventions
4. Data structure among the different and providing clear documentation).
modules. Maintainability in Software and design
5. Algorithms are required to be implemented also enables developers to fix bugs,
among the individual modules. enhance features, and adapt the software
to changing requirements without excessive
effort or introducing new issues.
Software Design Concepts
Concepts are defined as a principal idea or
invention that comes into our mind or in
thought to understand something.
The software design concept simply means the
idea or principle behind the design. It
describes how you plan to solve the problem
of designing software, and the logic, or
thinking behind how you will design
software. It allows the software engineer to
create the model of the system software or
product that is to be developed or built.
The software design concept provides a
supporting and essential structure or model
for developing the right software. There are
many concepts of software design and some of Software Design Concepts

them are given below:


Points to be Considered While Designing
Software
1. Abstraction (Hide Irrelevant
data): Abstraction simply means to hide
the details to reduce complexity and
increase efficiency or quality. Different
levels of Abstraction are necessary and
must be applied at each stage of the
design process so that any error that is
present can be removed to increase the
efficiency of the software solution and to
refine the software solution. The solution
should be described in broad ways that
cover a wide range of different things at
a higher level of abstraction and a more
detailed description of a solution of 4. Refinement (removes
software should be given at the lower impurities): Refinement simply means to
level of abstraction. refine something to remove any impurities
2. Modularity (subdivide the if present and increase the quality. The
system): Modularity simply means dividing refinement concept of software design is a
the system or project into smaller parts process of developing or presenting the
to reduce the complexity of the system or software or system in a detailed manner
project. In the same way, modularity in which means elaborating a system or
design means subdividing a system into software. Refinement is very necessary to
smaller parts so that these parts can be find out any error if present and then to
created independently and then use these reduce it.
parts in different systems to perform 5. Pattern (a Repeated form): A pattern
different functions. It is necessary to simply means a repeated form or design in
divide the software into components known which the same shape is repeated several
as modules because nowadays, there are times to form a pattern. The pattern in
different software available like the design process means the repetition of
Monolithic software that is hard to grasp a solution to a common recurring problem
for software engineers. So, modularity in within a certain context.
design has now become a trend and is also 6. Information Hiding (Hide the
important. If the system contains fewer Information): Information hiding simply
components then it would mean the system means to hide the information so that it
is complex which requires a lot of effort cannot be accessed by an unwanted party.
(cost) but if we can divide the system In software design, information hiding is
into components then the cost would be achieved by designing the modules in a
small. manner that the information gathered or
3. Architecture (design a structure of contained in one module is hidden and
something): Architecture simply means a can’t be accessed by any other modules.
technique to design a structure of 7. Refactoring (Reconstruct
something. Architecture in designing something): Refactoring simply means
software is a concept that focuses on reconstructing something in such a way
various elements and the data of the that it does not affect the behavior of
structure. These components interact with any other features. Refactoring in
each other and use the data of the software design means reconstructing the
structure in architecture. design to reduce complexity and simplify
it without impacting the behavior or its outcome is documented in the form of a
functions. Fowler has defined refactoring module specification document.
as “the process of changing a software
system in a way that it won’t impact the
behavior of the design and improves the
internal structure”.

Different levels of Software Design Architectural Design –


There are three different levels of software Software Engineering
design. They are:
1. Architectural Design: The architecture of Last Updated : 22 Apr, 2024
a system can be viewed as the overall 
structure of the system and the way in 
which structure provides conceptual 
integrity of the system. The architectural
design identifies the software as a system The software needs an architectural design to
with many components interacting with each represent the design of the software. IEEE
other. At this level, the designers get defines architectural design as “the process
the idea of the proposed solution of defining a collection of hardware and
domain. software components and their interfaces to
2. Preliminary or high-level design: Here the establish the framework for the development
problem is decomposed into a set of of a computer system.” The software that is
modules, the control relationship among built for computer-based systems can exhibit
various modules identified, and also the one of these many architectural styles.
interfaces among various modules are System Category Consists of
 A set of components(eg: a database,
identified. The outcome of this stage is
called the program architecture. Design computational modules) that will perform a
representation techniques used in this function required by the system.
 The set of connectors will help in
stage are structure chart and UML.
3. Detailed design: Once the high-level coordination, communication, and
design is complete, a detailed design is cooperation between the components.
 Conditions that how components can be
undertaken. In detailed design, each
module is examined carefully to design the integrated to form the system.
data structure and algorithms. The stage
 Semantic models that help the designer to  Modification can be very easy
understand the overall properties of the
system.
The use of architectural styles is to
establish a structure for all the components
of the system.
Taxonomy of Architectural Styles
1] Data centered architectures:
 A data store will reside at the center of
this architecture and is accessed Data centered architecture
frequently by the other components that
update, add, delete, or modify the data 2] Data flow architectures:
present within the store.  This kind of architecture is used when
 The figure illustrates a typical data- input data is transformed into output data
centered style. The client software through a series of computational
accesses a central repository. Variations manipulative components.
of this approach are used to transform the  The figure represents pipe-and-filter
repository into a blackboard when data architecture since it uses both pipe and
related to the client or data of interest filter and it has a set of components
for the client change the notifications to called filters connected by lines.
client software.  Pipes are used to transmitting data from
 This data-centered architecture will one component to the next.
promote integrability. This means that the  Each filter will work independently and is
existing components can be changed and new designed to take data input of a certain
client components can be added to the form and produces data output to the next
architecture without the permission or filter of a specified form. The filters
concern of other clients. don’t require any knowledge of the working
 Data can be passed among clients using the of neighboring filters.
blackboard mechanism.  If the data flow degenerates into a single
Advantages of Data centered architecture: line of transforms, then it is termed as
 Repository of data is independent of batch sequential. This structure accepts
clients the batch of data and then applies a series
 Client work independent of each other of sequential components to transform it.
 It may be simple to add additional clients.
Advantages of Data Flow architecture: distributed among multiple computers on a
 It encourages upkeep, repurposing, and network.
modification.  Main program or Subprogram
 With this design, concurrent execution is architectures: The main program structure
supported. decomposes into number of subprograms or
Disadvantage of Data Flow architecture: function into a control hierarchy. Main
 It frequently degenerates to batch program contains number of subprograms that
sequential system can invoke other components.
 Data flow architecture does not allow
applications that require greater user
engagement.
 It is not easy to coordinate two different
but related streams

Data Flow architecture


4] Object Oriented architecture
The components of a system encapsulate data
3] Call and Return architectures and the operations that must be applied to
It is used to create a program that is easy manipulate the data. The coordination and
to scale and modify. Many sub-styles exist communication between the components are
within this category. Two of them are established via the message passing.
explained below. Characteristics of Object Oriented
 Remote procedure call architecture: This architecture:
components is used to present in a main  Object protect the system’s integrity.
program or sub program architecture
 An object is unaware of the depiction of
other items.
Advantage of Object Oriented architecture:
 It enables the designer to separate a
challenge into a collection of autonomous
objects.
 Other objects are aware of the
implementation details of the object,
allowing changes to be made without having
an impact on other objects.
5] Layered architecture
 A number of different layers are defined
with each layer performing a well-defined
set of operations. Each layer will do some
operations that becomes closer to machine
instruction set progressively. Layered architecture
 At the outer layer, components will receive
the user interface operations and at the
inner layers, components will perform the
operating system interfacing(communication
and coordination with OS)
 Intermediate layers to utility services and
application software functions.
 One common example of this architectural
style is OSI-ISO (Open Systems
Interconnection-International Organisation
for Standardisation) communication system.
Software testing is an important process in
the software development lifecycle . It
involves verifying and validating that
a software application is free of bugs, meets
the technical requirements set by
its design and development , and satisfies
user requirements efficiently and
effectively.
This process ensures that the application can
handle all exceptional and boundary cases,
providing a robust and reliable user
experience. By systematically identifying and
fixing issues, software testing helps deliver
high-quality software that performs as
expected in various scenarios.
Table of Content
 What is Software Testing?
 Different Types Of Software Testing
 Different Types of Software Testing
Techniques
 Different Levels of Software Testing
 Best Practices for Software Testing
Unit-7  Benefits of Software Testing
Testing  Conclusion
 Frequently Asked Questions on Software
Testing
The process of software testing aims not only
What is Software Testing? at finding faults in the existing software
Last Updated : 25 Jul, 2024 but also at finding measures to improve the
software in terms of efficiency, accuracy,
 and usability. The article focuses on

 discussing Software Testing in detail.
It is important to learn the basics whether implements a specific function. It means
it is software testing or anything else you “Are we building the product right?”.
always need to start from the basics and make 2. Validation: It refers to a different set of
your foundation strong and then proceed to tasks that ensure that the software that
the advance level. If you want to learn has been built is traceable to customer
software testing in a structure approach then requirements. It means “Are we building the
right product?”.
you can enroll in our manual to automation
Importance of Software Testing
testing course.
 Defects can be identified early: Software
What is Software Testing? testing is important because if there are
Software Testing is a method to assess the any bugs they can be identified early and
functionality of the software program. The can be fixed before the delivery of the
process checks whether the actual software software.
matches the expected requirements and ensures  Improves quality of software: Software
the software is bug-free. The purpose of Testing uncovers the defects in the
software testing is to identify the errors, software, and fixing them improves the
faults, or missing requirements in contrast quality of the software.
to actual requirements. It mainly aims at  Increased customer satisfaction: Software
measuring the specification, functionality, testing ensures reliability, security, and
and performance of a software program or high performance which results in saving
application. time, costs, and customer satisfaction.
Perform end-to-end test automation, including  Helps with scalability: Software testing
AI-powered codeless testing, mobile app, type non-functional testing helps to
cross-browser, visual UI testing, and more identify the scalability issues and the
with TestGrid . It is a highly secure and point where an application might stop
scalable software testing tool that offers working.
extensive integration with CI/CD  Saves time and money: After the application
pipelines for continuous testing. is launched it will be very difficult to
Software testing can be divided into two trace and resolve the issues, as performing
steps this activity will incur more costs and
1. Verification: It refers to the set of tasks time. Thus, it is better to conduct
that ensure that the software correctly software testing at regular intervals
during software development.
1. Functional testing : It is a type of
Different Types Of Software Testing software testing that validates the
Explore diverse software testing methods software systems against the functional
including manual and automated testing for requirements. It is performed to check
improved quality assurance . Enhance whether the application is working as per
software reliability and performance through the software’s functional requirements or
functional and non-functional testing, not. Various types of functional testing
ensuring user satisfaction. Learn about the are Unit testing, Integration testing,
significance of various testing approaches System testing, Smoke testing, and so on.
for robust software development. 2. Non-functional testing : It is a type of
software testing that checks the
application for non-functional
requirements like performance,
scalability, portability, stress, etc.
Various types of non-functional testing
are Performance testing, Stress testing,
Usability Testing, and so on.
3. Maintenance testing : It is the process of
changing, modifying, and updating the
software to keep up with the customer’s
needs. It involves regression testing that
verifies that recent changes to the code
have not adversely affected other
previously working parts of the software.
Apart from the above classification software
testing can be further divided into 2 more
ways of testing:
1. Manual testing : It includes testing
software manually, i.e., without using any
Types Of Software Testing
automation tool or script. In this type,
the tester takes over the role of an end-
user and tests the software to identify
Software Testing can be broadly classified
any unexpected behavior or bug. There are
into 3 types:
different stages for manual testing such
as unit testing, integration testing, code, and is conducted by making sure that
system testing, and user acceptance all internal operations are performed
testing. Testers use test plans, test according to the specifications is known
cases, or test scenarios to test software as white box testing.
to ensure the completeness of testing. 3. Grey Box Testing : Testing in which the
Manual testing also includes exploratory testers should have knowledge of
testing, as testers explore the software implementation, however, they need not be
to identify errors in it. experts.
2. Automation testing : It is also known as
Black Box White Box
Test Automation, is when the tester writes
scripts and uses another software to test S No. Testing Testing
the product. This process involves the
automation of a manual process. Automation Internal
Testing is used to re-run the test Knowledge of the
workings of an
scenarios quickly and repeatedly, that 1 internal workings
application are
were performed manually in manual testing. is a must.
not required.
Apart from Regression testing , Automation
testing is also used to test the application
from a load, performance, and stress point Also known as Also known as
of view. It increases the test coverage, closed clear
improves accuracy, and saves time and money 2
box/data-driven box/structural
when compared to manual testing. testing. testing.
Different Types of Software Testing Techniques
Software testing techniques can be majorly
classified into two categories: End users, Normally done by
1. Black box Testing : Testing in which the 3 testers, and testers and
tester doesn’t have access to the source developers. developers.
code of the software and is conducted at
the software interface without any concern
with the internal logical structure of the
software known as black-box testing.
2. White box Testing : Testing in which the
tester is aware of the internal workings
of the product, has access to its source
this test is to evaluate the system’s
Black Box White Box
compliance with the business requirements
S No. Testing Testing and assess whether it is acceptable for
delivery.
This can only Data domains and
Best Practices for Software Testing
be done by a internal Below are some of the best practices for
4 software testing:
trial and error boundaries can be
 Continuous testing : Project teams test
method. better tested.
each build as it becomes available thus it
enables software to be validated in real
Different Levels of Software Testing environments earlier in the development
Software level testing can be majorly cycle, reducing risks and improving the
classified into 4 levels: functionality and design.
1. Unit testing : It a level of the software  Involve users: It is very important for
testing process where individual the developers to involve users in the
units/components of a software/system are process and open-ended questions about the
tested. The purpose is to validate that functionality required in the application.
each unit of the software performs as This will help to develop and test the
designed. software from the customer’s perspective.
2. Integration testing : It is a level of the  Divide tests into smaller parts: Dividing
software testing process where individual tests into smaller fractions save time and
units are combined and tested as a group. other resources in environments where
The purpose of this level of testing is to frequent testing needs to be conducted.
expose faults in the interaction between This also helps teams to make better
integrated units. analyses of the tests and the test
3. System testing : It is a level of the results.
software testing process where a complete,  Metrics and Reporting: Reporting enables
integrated system/software is tested. The the team members to share goals and test
purpose of this test is to evaluate the results. Advanced tools integrate the
system’s compliance with the specified project metrics and present an integrated
requirements. report in the dashboard that can be easily
4. Acceptance testing : It is a level of the reviewed by the team members to see the
software testing process where a system is overall health of the project.
tested for acceptability. The purpose of
 Don’t skip regression testing: Regression application for how easily usable it is
testing is one of the most important steps for the users to use the application.
as it encourages the validation of the  Cost-effective: Testing any project on
application. Thus, it should not be time helps to save money and time for the
skipped. long term. If the bugs are caught in the
 Programmers should avoid writing tests: early phases of software testing, it costs
Test cases are usually written before the less to fix those errors.
start of the coding phase so it is  Security: Security testing is a type of
considered a best practice for programmers software testing that is focused on
to avoid writing test cases as they can be testing the application for security
biased towards their code and the vulnerabilities from internal or external
application. sources.
 Service virtualization: Service
virtualization simulates the systems and
services that are not yet developed or are
missing. Thus, enabling teams to reduce
dependency and start the testing process
sooner. They can modify, and reuse the
configuration to test different scenarios Software Testing Strategies
without having to alter the original
environment. Last Updated : 06 Feb, 2023
Benefits of Software Testing 
 Product quality: Testing ensures the 
delivery of a high-quality product as the 
errors are discovered and fixed early in
Software testing is the process of evaluating
the development cycle.
a software application to identify if it
 Customer satisfaction: Software testing
meets specified requirements and to identify
aims to detect the errors or
any defects. The following are common testing
vulnerabilities in the software early in
strategies:
the development phase so that the detected
bugs can be fixed before the delivery of 1. Black box testing – Tests the functionality
the product. Usability testing is a type of the software without looking at the
of software testing that checks the internal code structure.
2. White box testing – Tests the internal code According to Glen Myers, software testing has
structure and logic of the software. the following objectives:
3. Unit testing – Tests individual units or  The process of investigating and checking a
components of the software to ensure they program to find whether there is an error
are functioning as intended. or not and does it fulfill the requirements
4. Integration testing – Tests the integration or not is called testing.
of different components of the software to  When the number of errors found during the
ensure they work together as a system. testing is high, it indicates that the
5. Functional testing – Tests the functional testing was good and is a sign of good test
requirements of the software to ensure they case.
are met.  Finding an unknown error that wasn’t
6. System testing – Tests the complete discovered yet is a sign of a successful
software system to ensure it meets the and a good test case.
specified requirements. The main objective of software testing is to
7. Acceptance testing – Tests the software to design the tests in such a way that it
ensure it meets the customer’s or end- systematically finds different types of
user’s expectations. errors without taking much time and effort so
8. Regression testing – Tests the software that less time is required for the
after changes or modifications have been development of the software. The overall
made to ensure the changes have not strategy for testing software includes:
introduced new defects.
9. Performance testing – Tests the software to
determine its performance characteristics
such as speed, scalability, and stability.
10. Security testing – Tests the software to
identify vulnerabilities and ensure it
meets security requirements.
Software Testing is a type of investigation
to find out if there is any default or error
present in the software so that the errors
can be reduced or removed to increase the
quality of the software and to check whether
it fulfills the specifies requirements or
not.
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.
2. 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.
3. 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.
4. Developing a test plan to give value and
focus on rapid-cycle testing. Rapid Cycle
1. Before testing starts, it’s necessary to Testing is a type of test that improves
identify and specify the requirements of quality by identifying and measuring the
the product in a quantifiable any changes that need to be required for
manner. Different characteristics quality improving the process of software.
of the software is there such as Therefore, a test plan is an important and
maintainability that means the ability to
effective document that helps the tester to measured should be used for software
perform rapid cycle testing. testing to measure and control the quality
5. Robust software is developed that is during the development of software.
designed to test itself. The software
should be capable of detecting or Advantages or Disadvantages:
identifying different classes of errors.
Moreover, software design should allow
Advantages of software testing:
automated and regression testing which
tests the software to find out if there is
any adverse or side effect on the features 1. Improves software quality and reliability –
of software due to any change in code or Testing helps to identify and fix defects
program. early in the development process, reducing
6. Before testing, using effective formal the risk of failure or unexpected behavior
reviews as a filter. Formal technical in the final product.
reviews is technique to identify the errors 2. Enhances user experience – Testing helps to
that are not discovered yet. The effective identify usability issues and improve the
technical reviews conducted before testing overall user experience.
reduces a significant amount of testing 3. Increases confidence – By testing the
efforts and time duration required for software, developers and stakeholders can
testing software so that the overall have confidence that the software meets the
development time of software is reduced. requirements and works as intended.
7. Conduct formal technical reviews to 4. Facilitates maintenance – By identifying
evaluate the nature, quality or ability of and fixing defects early, testing makes it
the test strategy and test cases. The easier to maintain and update the software.
formal technical review helps in detecting 5. Reduces costs – Finding and fixing defects
any unfilled gap in the testing approach. early in the development process is less
Hence, it is necessary to evaluate the expensive than fixing them later in the
ability and quality of the test strategy life cycle.
and test cases by technical reviewers to
improve the quality of software.
8. 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
Disadvantages of software testing: involves a series of activities that aim to
identify the defects in the software and
1. Time-consuming – Testing can take a ensures that the software meets the
significant amount of time, particularly if specified requirements. The article focuses
thorough testing is performed. on discussing Conventional testing in
2. Resource-intensive – Testing requires detail.
specialized skills and resources, which can What is Conventional Testing?
be expensive. Conventional testing is defined as
3. Limited coverage – Testing can only reveal traditional testing where the main aim is to
defects that are present in the test cases, check whether all the requirements stated by
and it is possible for defects to be the user are achieved.
missed.  The difference between conventional
4. Unpredictable results – The outcome of testing and other testing approach is that
testing is not always predictable, and it concentrates on checking all the
defects can be hard to replicate and fix. requirements given by the user rather than
5. Delays in delivery – Testing can delay the following a software development life
delivery of the software if testing takes cycle.
longer than expected or if significant  Conventional testing mainly focuses on
defects are identified. functional testing.
 This testing is being performed by a
dedicated team of software testers.

What is Conventional Testing?


Last Updated : 07 Aug, 2023



Conventional testing also known as the


Traditional approach of software testing
Stages of Conventional Testing 3. Design
In this stage, test cases are designed. If
the test cases are successful it means that
test cases are achieved. If not test cases
are failed to achieve.
4. Execution
Execution is the process where test cases
are executed. The errors encountered during
execution are documented.
5. Reporting
In reporting phase, all the documented
errors are sent to the development team for
fixing.
6. Retesting
Retesting is the stage where all the test
cases are performed again. It checks whether
Conventional testing follows a sequential all the failed test cases meet. All the
approach. It consists of various stages. requirements specified by the user are
Such as achieved.
1. Planning 7. Release
Planning is the first stage of conventional In the last stage, the software is released
testing. This stage consists of planning for the users. It is verified that all the
regarding the objective of testing requirements stated by the user or client
developing a complete test plan and are successfully working before the release
resources that will be required for of the software product.
performing testing. Types of Conventional Testing
2. Requirement Analysis 1. Unit Testing
Software Requirements are being analyzed in Unit Testing is defined as a type of testing
this phase. These requirements help to where the various modules and units are
identify the scope of testing and risks and being tested individually. Unit testing
for the preparation of test cases. makes sure that each individual component of
the system works well and eventually checks
whether all the requirements stated by financial investment as compared to
clients are achieved successfully. automation testing.
2. Integration Testing 2. Flexible: Conventional testing has the
Integration Testing is defined as a type of advantage of flexibility. Manual testing
testing where multiple modules or components has the ability to adopt the changes that
are tested together in order to check that take place while testing the product.
they work accordingly once integrated with 3. Testing of Non-functional Requirements
each other. It makes sure that interaction also: Manual testing can test functional
and communication between different modules as well as non-functional requirements
work well. such as accessibility, and usability which
3. Performance Testing is different from automation testing.
Performance Testing is defined as a type of 4. Understanding User Experience more
testing that checks for performance-related effectively: Conventional Testing makes
parameters for a software product. use of manual testing which helps to
Performance testing helps to find out the understand the user experience more
loopholes in the system and improve effectively as the manual tester can test
performance. the requirements with multiple scenarios.
4. Acceptance Testing 5. Provides better communication between
Acceptance Testing is defined as a type of testers and developers: Manual testing
testing that is used to check the allows better communication between
requirements according to the user’s point testers, developers, and other clients
of view. It makes sure that all requirements regarding issues and wrong outputs.
specified by the user are achieved. Limitations of Conventional Testing
5. Regression Testing 1. Time-consuming: Conventional Testing can
Regression Testing is defined as a type of be time-consuming as with manual testing
testing in which test cases are executed it can take more time for large
again in order to check that the changes applications and accordingly delay further
made are being fixed and the system is deployment process of the project.
working accordingly. 2. Subjective: The manual tester performing
Benefits of Conventional Testing the testing can have their own views and
opinions which can in turn result in the
1. Cost Effective: Conventional Testing is
quality of testing that is being
cost-effective as manual testing is being
performed.
used. Manual testing requires less
3. Repetitive: Manual testing can lead to Validation: Are we building the right
repetition by performing the testing for product?
the same test cases. It can consume more Table of Content
time than it is required.
 Verification
4. Limited Coverage: Manual testing can miss
 Validation
some of the test cases and it will be not
 Questions For Practice
notified by the tester. This can result in
 Conclusion
delivering the software product with
 Frequently Asked Questions
errors or untasted test cases.
Verification
Verification is the process of checking that
software achieves its goal without any bugs.
It is the process to ensure whether the
product that is developed is right or not. It
verifies whether the developed product
fulfills the requirements that we have.
Verification is simply known as Static
verification and Validation Testing.
in Software Engineering Static Testing
Verification Testing is known as Static
Last Updated : 19 Jun, 2024 Testing and it can be simply termed as
checking whether we are developing the right


product or not and also whether our software
 is fulfilling the customer’s requirement or
not. Here are some of the activities that are
Verification and Validation is the process of involved in verification.
investigating whether a software system  Inspections
satisfies specifications and standards and  Reviews
fulfills the required purpose. Barry  Walkthroughs
Boehm described verification and validation  Desk-checking
as the following:
Verification: Are we building the product
right?
Dynamic Testing
Validation Testing is known as Dynamic
Testing in which we examine whether we have
developed the product right or not and also
about the business needs of the client. Here
are some of the activities that are involved
in Validation.
1. Black Box Testing
2. White Box Testing
3. Unit Testing
4. Integration Testing
Note: Verification is followed by Validation.

System Testing – Software


Engineering
Verification and Validation
Last Updated : 30 Jul, 2024

Validation 
Validation is the process of checking whether 

the software product is up to the mark or in
other words product has high-level System testing is a type of software testing
requirements. It is the process of checking that evaluates the overall functionality and
the validation of the product i.e. it checks performance of a complete and fully
what we are developing is the right product. integrated software solution. It tests if
it is a validation of actual and expected the system meets the specified requirements
products. Validation is simply known and if it is suitable for delivery to the
as Dynamic Testing. end-users. This type of testing is performed
after the integration testing and before the requirements specification (SRS) . System
acceptance testing. Testing is performed by a testing team
Table of Content that is independent of the development
team and helps to test the quality of the
 What is System Testing?
system impartial.
 System Testing Process
 It has both functional and non-functional
 Types of System Testing
testing. System Testing is a black-box
 Tools used for System Testing
testing . System Testing is performed
 Advantages of System Testing
after the integration testing and before
 Disadvantages of System Testing
the acceptance testing.
What is System Testing ?
System testing is evergreen role in software
System Testing is a type of software
engineering because every software is needed
testing that is performed on a completely
to test and very update is needed to test so
integrated system to evaluate the compliance
the demand of the software tester is always
of the system with the corresponding
needed. If you wish to learn software
requirements. In system testing, integration
testing from the scratch and want to grab a
testing passed components are taken as
good grip on testing tools and concept you
input.
can check our new software testing course
 The goal of integration testing is to
detect any irregularity between the units
that are integrated. System testing
detects defects within both the integrated
units and the whole system. The result of
system testing is the observed behavior of
a component or a system when it is tested.
 System Testing is carried out on the whole
system in the context of either system
requirement specifications or functional
requirement specifications or the context
of both. System testing tests the design
and behavior of the system and also the
expectations of the customer.
 It is performed to test the system beyond
the bounds mentioned in the software
 Defect Reporting: Defects in the system
are detected.
 Regression Testing: It is carried out to
test the side effects of the testing
process.
 Log Defects: Defects are fixed in this
step.
 Retest: If the test is not successful then
again test is performed.

System Testing Process


System Testing
Types of System Testing
System Testing Process  Performance Testing: Performance Testing
System Testing is performed in the following is a type of software testing that is
steps: carried out to test the speed,
 Test Environment Setup: Create testing scalability, stability and reliability of
environment for the better quality the software product or application.
testing.  Load Testing: Load Testing is a type of
 Create Test Case: Generate test case for software Testing which is carried out to
the testing process. determine the behavior of a system or
 Create Test Data: Generate the data that software product under extreme load.
is to be tested.  Stress Testing: Stress Testing is a type
 Execute Test Case: After the generation of of software testing performed to check the
the test case and the test data, test robustness of the system under the varying
cases are executed. loads.
 Scalability Testing: Scalability Testing  It checks the entire functionality of the
is a type of software testing which is system with different test scripts and
carried out to check the performance of a also it covers the technical and business
software application or system in terms of requirements of clients.
its capability to scale up or scale down  After this testing, the product will
the number of user request load. almost cover all the possible bugs or
Tools used for System Testing errors and hence the development team will
1. JMeter confidently go ahead with acceptance
2. Gallen Framework testing
3. HP Quality Center/ALM  Verifies the overall functionality of the
4. IBM Rational Quality Manager system.
5. Microsoft Test Manager  Detects and identifies system-level
6. Selenium problems early in the development cycle.
7. Appium  Helps to validate the requirements and
8. LoadRunner ensure the system meets the user needs.
9. Gatling  Improves system reliability and quality.
10. JMeter  Facilitates collaboration and
11. Apache JServ communication between development and
12. SoapUI testing teams.
Note: The choice of tool depends on various  Enhances the overall performance of the
factors like the technology used, the size system.
of the project, the budget, and the testing  Increases user confidence and reduces
requirements. risks.
Advantages of System Testing  Facilitates early detection and resolution
 The testers do not require more knowledge of bugs and defects.
of programming to carry out this testing.  Supports the identification of system-
 It will test the entire product or level dependencies and inter-module
software so that we will easily detect the interactions.
errors or defects which cannot be  Improves the system’s maintainability and
identified during the unit testing and scalability.
integration testing. Disadvantages of System Testing
 The testing environment is similar to that  This testing is time consuming process
of the real time production or business than another testing techniques since it
environment. checks the entire product or software.
 The cost for the testing will be high validating the functionality based on the
since it covers the testing of entire provided specifications or requirements.
software.
 It needs good debugging tool otherwise the
hidden errors will not be found.
 Can be time-consuming and expensive.
 Requires adequate resources and
infrastructure.
 Can be complex and challenging, especially
for large and complex systems.
 Dependent on the quality of requirements
and design documents.
 Limited visibility into the internal
workings of the system. Black Box Testing
 Can be impacted by external factors like
hardware and network configurations. Types Of Black Box Testing
 Requires proper planning, coordination, The following are the several categories of
and execution. black box testing:
 Can be impacted by changes made during 1. Functional Testing
development. 2. Regression Testing
 Requires specialized skills and expertise. 3. Nonfunctional Testing (NFT)
 May require multiple test cycles to Before we move in depth of the Black box
achieve desired results.
testing do you known that their are many
different type of testing used in industry
and some automation testing tools are there
which automate the most of testing so if you
wish to learn the latest industry level
tools then you check-out our manual to
What is Black Box Testing? automation testing course in which you will
Black-box testing is a type of software learn all these concept and tools
testing in which the tester is not concerned
with the software’s internal knowledge or
implementation details but rather focuses on
Functional Testing  In other words, a new software update has
 Functional testing is defined as a type of no impact on the functionality of the
testing that verifies that each function software. This is carried out after a
of the software application works in system maintenance operation and upgrades.
conformance with the requirement and Nonfunctional Testing
specification.  Non-functional testing is a software
 This testing is not concerned with the testing technique that checks the non-
source code of the application. Each functional attributes of the system.
functionality of the software application  Non-functional testing is defined as a
is tested by providing appropriate test type of software testing to check non-
input, expecting the output, and comparing functional aspects of a software
the actual output with the expected application.
output.  It is designed to test the readiness of a
 This testing focuses on checking the user system as per nonfunctional parameters
interface, APIs, database, security, which are never addressed by functional
client or server application, and testing.
functionality of the Application Under  Non-functional testing is as important as
Test. Functional testing can be manual or functional testing.
automated. It determines the system’s  Non-functional testing is also known as
software functional requirements. NFT. This testing is not functional
Regression Testing testing of software. It focuses on the
 Regression Testing is the process of software’s performance, usability, and
testing the modified parts of the code and scalability.
the parts that might get affected due to Advantages of Black Box Testing
the modifications to ensure that no new  The tester does not need to have more
errors have been introduced in the functional knowledge or programming skills
software after the modifications have been to implement the Black Box Testing.
made.  It is efficient for implementing the tests
 Regression means the return of something in the larger system.
and in the software field, it refers to  Tests are executed from the user’s or
the return of a bug. It ensures that the client’s point of view.
newly added code is compatible with the  Test cases are easily reproducible.
existing code.
 It is used to find the ambiguity and
contradictions in the functional
specifications. What is White Box
Disadvantages of Black Box Testing
 There is a possibility of repeating the Testing?
same tests while implementing the testing White box testing is a software testing
process. technique that involves testing the internal
 Without clear functional specifications, structure and workings of a software
test cases are difficult to implement. application . The tester has access to the
 It is difficult to execute the test cases source code and uses this knowledge to
because of complex inputs at different design test cases that can verify the
stages of testing. correctness of the software at the code
 Sometimes, the reason for the test failure level.
cannot be detected.
 Some programs in the application are not
White box testing is also known
tested. as structural testing or code-based
 It does not reveal the errors in the
testing, and it is used to test the
control structure. software’s internal logic, flow, and
 Working with a large sample space of
structure. The tester creates test cases to
inputs can be exhaustive and consumes a examine the code paths and logic flows to
lot of time. ensure they meet the specified requirements.
Before we move in depth of the white box
testing do you known that their are many
different type of testing used in industry
and some automation testing tools are there
which automate the most of testing so if you
Tools Used for Black Box Testing: wish to learn the latest industry level
1. Appium tools then you check-out our manual to
2. Selenium automation testing course in which you will
3. Microsoft Coded UI learn all these concept and tools
4. Applitools
5. HP QTP .
What Does White Box Testing Focus On? Unit Testing
White box testing uses detailed knowledge of  Checks if each part or function of the
a software’s inner workings to create very application works correctly.
specific test cases.  Ensures the application meets design
 Path Checking: Examines the different requirements during development.
routes the program can take when it runs. Integration Testing
Ensures that all decisions made by the  Examines how different parts of the
program are correct, necessary, and application work together.
efficient.  Done after unit testing to make sure
 Output Validation: Tests different inputs components work well both alone and
to see if the function gives the right together.
output each time. Regression Testing
 Security Testing: Uses techniques like  Verifies that changes or updates don’t
static code analysis to find and fix break existing functionality.
potential security issues in the software.  Ensures the application still passes all
Ensures the software is developed using existing tests after updates.
secure practices. White Box Testing Techniques
 Loop Testing: Checks the loops in the
program to make sure they work correctly
and efficiently. Ensures that loops handle
variables properly within their scope. White Box Testing Techniques
 Data Flow Testing: Follows the path of One of the main benefits of white box
variables through the program to ensure testing is that it allows for testing every
they are declared, initialized, used, and part of an application. To achieve complete
manipulated correctly. code coverage, white box testing uses the
Types Of White Box Testing following techniques:
White box testing can be done for different 1. Statement Coverage
purposes. The three main types are: In this technique, the aim is to traverse
1. Unit Testing all statements at least once. Hence, each
2. Integration Testing line of code is tested. In the case of a
3. Regression Testing flowchart, every node must be traversed at
least once. Since all lines of code are
Types Of White Box Testing
covered, it helps in pointing out faulty
code.

Statement Coverage Example

2. Branch Coverage
In this technique, test cases are designed
so that each branch from all decision points 4 test cases are required such that all branches of all decisions
is traversed at least once. In a flowchart, are covered, i.e, all edges of the flowchart are covered
all edges must be traversed at least once.
3. Condition Coverage  V(G) = P + 1, where P is the number of
In this technique, all individual conditions predicate nodes in the flow graph
must be covered as shown in the following  V(G) = E – N + 2, where E is the number of
example: edges and N is the total number of nodes
 READ X, Y  V(G) = Number of non-overlapping regions
 IF(X == 0 || Y == 0) in the graph
 PRINT ‘0’  #P1: 1 – 2 – 4 – 7 – 8
 #TC1 – X = 0, Y = 55  #P2: 1 – 2 – 3 – 5 – 7 – 8
 #TC2 – X = 5, Y = 0  #P3: 1 – 2 – 3 – 6 – 7 – 8
4. Multiple Condition Coverage  #P4: 1 – 2 – 4 – 7 – 1 – . . . – 7 – 8
In this technique, all the possible 6. Loop Testing
combinations of the possible outcomes of Loops are widely used and these are
conditions are tested at least once. Let’s fundamental to many algorithms hence, their
consider the following example: testing is very important. Errors often
 READ X, Y occur at the beginnings and ends of loops.
 IF(X == 0 || Y == 0)  Simple loops: For simple loops of size n,
 PRINT ‘0’ test cases are designed that:
 #TC1: X = 0, Y = 0 1. Skip the loop entirely
 #TC2: X = 0, Y = 5 2. Only one pass through the loop
 #TC3: X = 55, Y = 0 3. 2 passes
 #TC4: X = 55, Y = 5 4. m passes, where m < n
5. Basis Path Testing 5. n-1 ans n+1 passes
In this technique, control flow graphs are  Nested loops: For nested loops, all the
made from code or flowchart and then loops are set to their minimum count, and
Cyclomatic complexity is calculated which we start from the innermost loop. Simple
defines the number of independent paths so loop tests are conducted for the innermost
that the minimal number of test cases can be loop and this is worked outwards till all
designed for each independent path. Steps: the loops have been tested.
 Make the corresponding control flow graph  Concatenated loops: Independent loops, one
 Calculate the cyclomatic complexity after another. Simple loop tests are
 Find the independent paths applied for each. If they’re not
 Design test cases corresponding to each independent, treat them like nesting.
independent path
White
Black Box Box Gray Box
Black Box vs White Box vs Gray Box Testing Aspect Testing Testing Testing
Here is a simple comparison of Black Box,
White Box, and Gray Box testing, Smaller
Smaller
highlighting key aspects: than both
Test Case compared
Largest Black Box
White Input to Black
and White
Box
Black Box Box Gray Box Size Box
Aspect Testing Testing Testing
Easier due
Challengin
Knowledge to
Finding g, may be
of Not Partially Difficult internal
found at
Required Hidden
Internal required required code
user level
Code Errors access

Structural Well-
Functional testing, Not suited and Not
testing, clear box Algorithm suitable recommende suitable
data-driven testing, Translucen Testing d
testing, code-based t testing
closed box testing, Depends on High due Moderate,
Other testing transparen Time functional to complex faster
Names t testing Consumpti specificati code than White
on ons analysis Box
Verificati
Trial and on of Combinatio
error, internal n of both
based on coding, black box
external system and white Process of White Box Testing
functionali boundaries box 1. Input: Requirements, Functional
ty , and data approaches specifications, design documents, source
Approach domains code.
2. Processing: Performing risk analysis to 2. Access to the source code: White box
guide through the entire process. testing requires access to the
3. Proper test planning: Designing test cases application’s source code, which makes it
to cover the entire code. Execute rinse- possible to test individual functions,
repeat until error-free software is methods, and modules.
reached. Also, the results are 3. Knowledge of programming
communicated. languages: Testers performing white box
4. Output: Preparing the final report of the testing must have knowledge of programming
entire testing process. languages like Java, C++, Python, and PHP
White Testing is performed in 2 Steps to understand the code structure and write
1. Tester should understand the code well tests.
2. Tester should write some code for test 4. Identifying logical errors: White box
cases and execute them testing helps to identify logical errors
Tools required for White box testing: in the code, such as infinite loops or
 PyUnit incorrect conditional statements.
 Sqlmap 5. Integration testing: White box testing is
 Nmap useful for integration testing, as it
 Parasoft Jtest allows testers to verify that the
 Nunit different components of an application are
 VeraUnit working together as expected.
 CppUnit 6. Unit testing: White box testing is also
 Bugzilla used for unit testing, which involves
 Fiddler testing individual units of code to ensure
 JSUnit.net that they are working correctly.
 OpenGrok 7. Optimization of code: White box testing
 Wireshark can help to optimize the code by
 HP Fortify identifying any performance issues,
 CSUnit redundant code, or other areas that can be
Features of White box Testing improved.
1. Code coverage analysis: White box testing 8. Security testing: White box testing can
helps to analyze the code coverage of an also be used for security testing, as it
application, which helps to identify the allows testers to identify any
areas of the code that are not being vulnerabilities in the application’s code.
tested.
9. Verification of Design: It verifies that 4. Integration with SDLC: White box testing
the software’s internal design is can be easily started in Software
implemented in accordance with the Development Life Cycle.
designated design documents. 5. Detection of Complex Defects: Testers can
10. Check for Accurate Code: It identify defects that cannot be detected
verifies that the code operates in through other testing techniques.
accordance with the guidelines and 6. Comprehensive Test Cases: Testers can
specifications. create more comprehensive and effective
11. Identifying Coding Mistakes: It finds test cases that cover all code paths.
and fix programming flaws in your code, 7. Testers can ensure that the code meets
including syntactic and logical errors. coding standards and is optimized for
12. Path Examination: It ensures that each performance.
possible path of code execution is Disadvantages of White Box Testing
explored and test various iterations of 1. Programming Knowledge and Source Code
the code. Access: Testers need to have programming
13. Determining the Dead Code: It finds and knowledge and access to the source code to
remove any code that isn’t used when the perform tests.
programme is running normally (dead code). 2. Overemphasis on Internal Workings: Testers
may focus too much on the internal
Advantages of White Box Testing workings of the software and may miss
external issues.
3. Bias in Testing: Testers may have a biased
1. Thorough Testing : White box testing is
view of the software since they are
thorough as the entire code and structures
familiar with its internal workings.
are tested.
4. Test Case Overhead: Redesigning code and
2. Code Optimization: It results in the
rewriting code needs test cases to be
optimization of code removing errors and
written again.
helps in removing extra lines of code.
5. Dependency on Tester Expertise: Testers
3. Early Detection of Defects: It can start
are required to have in-depth knowledge of
at an earlier stage as it doesn’t require
the code and programming language as
any interface as in the case of black box
opposed to black-box testing.
testing.
6. Inability to Detect Missing
Functionalities: Missing functionalities
cannot be detected as the code that exists 2. Compute the Cyclomatic Complexity of the
is tested. Graph
7. Increased Production Errors: High chances 3. Identify the Independent Paths
of errors in production. 4. Design Test cases from Independent Paths
Let’s understand each step one by one. 1.
Control Flow Graph – A control flow graph (or
simply, flow graph) is a directed graph which
represents the control structure of a program
or module. A control flow graph (V, E) has V
Basis Path Testing in number of nodes/vertices and E number of
Software Testing edges in it. A control graph can also have :
 Junction Node – a node with more than one
Last Updated : 15 Dec, 2022 arrow entering it.
 Decision Node – a node with more than one

 arrow leaving it.
  Region – area bounded by edges and nodes
(area outside the graph is also counted as
Prerequisite – Path Testing Basis Path a region.).
Testing is a white-box testing technique
based on the control structure of a program
or a module. Using this structure, a control
flow graph is prepared and the various
possible paths present in the graph are
executed as a part of testing. Therefore, by
definition, Basis path testing is a technique
of selecting the paths in the control flow
graph, that provide a basis set of execution
paths through the program or module. Since
this testing is based on the control
structure of the program, it requires
complete knowledge of the program’s
structure. To design test cases using this
technique, four steps are followed :
1. Construct the Control Flow Graph
 Sequential Statements –

 If – Then – Else –

Below are the notations used while


constructing a flow graph :
 Do – While –  While – Do –
 Switch – Case –

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy