Gouda
Gouda
Supervised By
ASS. Prof. Atef Galwash
Information Systems Department Faculty Of Computing and
Artificial Intelligence Helwan University
Submittied By
Amany Mohammed Gouda Osman
2025
pg. 1
Table Of Contants
Abstract ……………………………………………………...3
Introduction …………………………………………………4
Discussion …………………………………………………..16
Conclusion ………………………………………………….18
References ………………………………………………….19
Appendix …………………………………………………...19
pg. 2
Abstract
Before we proceed to study the components of the SQA system, the
basic concepts and objectives of software quality assurance should
be discussed. Later, it will be possible to examine how and to what
extent various methodologies and tools conform to these concepts
and objectives.
pg. 3
Introduction
In our increasingly digitally reliant world, software has become an
integral part of our daily lives, ranging from smartphone
applications we use for communication and entertainment to the
complex systems that manage vital industries. With this widespread
adoption, the importance of software quality emerges as a crucial
element for ensuring its effectiveness, reliability, and ability to
meet user needs and achieve desired goals.
pg. 4
Report Objective
This research aims to achieve the following objectives:
pg. 5
1.What is Software?
1.1 Definition:
Software is not simply a collection of code; it's a multi-faceted entity.
It comprises:
1.2 Importance:
Software is now deeply ingrained in almost every aspect of our lives.
It powers communication, industry, healthcare, and countless other
sectors. Therefore , ensuring its quality is of paramount importance.
pg. 6
2. Software Errors, Faults, and Failures
pg. 7
2.1 Software Error:
2.1.1 Definition: An error is a human action that results in an
incorrect software artifact. This incorrect action can occur at
any stage of the software development lifecycle (SDLC), from
requirements gathering and design to coding, testing,
documentation, and maintenance.
2.1.2 Causes: Errors typically stem from human factors such as:
Misunderstanding: Incorrect comprehension of client
requirements or system specifications.
Negligence: Lack of attention or haste during coding or design.
Lack of Knowledge or Experience: Insufficient familiarity
with a specific technology or the problem domain.
Communication Breakdown: Unclear instructions or
misinterpretations among development team members.
Time Pressure: Attempting to complete work quickly,
increasing the likelihood of mistakes.
2.1.3 Examples:
Writing an incorrect mathematical formula in the code.
Using a variable name inconsistently.
Misinterpreting user requirements.
Entering incorrect data during testing.
pg. 8
Documentation: Inaccurate or misleading information in user
manuals or technical specifications.
Data: Incorrect or inconsistent initial data.
2.2.2 Examples:
An infinite loop that never terminates.
Attempting to access an array index that is out of bounds.
An incorrect logical condition that leads to the execution of the
wrong code section.
A database design that doesn't support the required relationships
between tables.
2.3 Failures:
2.3.1 Definition: A failure is the deviation of the software system
from its expected or specified behavior during execution. A
failure occurs when a fault present in the software is activated by
a specific set of inputs or environmental conditions.
2.3.2 Relationship to Faults:
Not every fault necessarily leads to a failure. A fault can remain
dormant in the software for an extended period without being
triggered. A failure only manifests when the part of the code
containing the fault is executed with inputs or in an environment
that exposes the problem.
2.3.3 Examples:
The program crashing unexpectedly.
Displaying incorrect information to the user.
The system becoming unresponsive to user commands.
Significant slowdown in system performance.
Loss or corruption of data.
A security breach allowing unauthorized access.
pg. 9
The relationship between these concepts can be visualized as a chain of
events:
pg. 10
3.1 Human Error:
The primary source of software errors is human fallibility.
Developers, analysts, and other stakeholders can make mistakes.
This refers to unintentional mistakes or omissions made by individuals
involved in the software development process or in quality assurance
activities. These errors can occur at any stage of the software
development life cycle, starting from requirements definition and
design, through programming and testing, and up to documentation
and maintenance.
pg. 11
Inaccuracies or omissions in software documentation can lead to
confusion and errors in use.
If the documentation doesn't accurately reflect how the software
works, users may make mistakes.
4. Software Quality
pg. 12
The Institute of Electrical and Electronics Engineers (IEEE) defines
software quality as the degree to which software meets specified
requirements.
It also considers the degree to which software meets user needs or
expectations.
pg. 13
Project schedules
Budget constraints
pg. 14
Improve Efficiency: Optimize the software development and
maintenance processes.
Promote Quality: Foster a culture of quality throughout the
development lifecycle.
pg. 15
engineering approach to developing high-quality software
efficiently and in an organized manner. Software engineering
encompasses a range of processes, methods, and tools used in all
phases of the software development lifecycle.
Software Quality Assurance (SQA): As we discussed previously,
this is the set of systematic activities and processes aimed at
ensuring that software development and maintenance processes
meet established requirements and standards.
The Relationship Between Them:
The relationship between software engineering and
software quality assurance can be understood through the
following points:
SQA is an integral part of Software Engineering: Quality
assurance is not a separate or additional activity, but rather
a fundamental and integrated component of the software
engineering process. SQA activities must be planned and
executed throughout all stages of the software development
lifecycle.
Software Engineering provides the tools and techniques for
SQA: Software engineering methods, tools, and techniques
provide the foundation upon which quality assurance can be
effectively applied. For example, organized software development
methodologies (such as Agile or Waterfall) help in integrating
regular review and testing activities, which are essential parts of
quality assurance.
Applying SQA throughout the Software Development
Lifecycle: Quality assurance activities should be applied in all
phases of software development, starting from requirements
gathering and system design, through programming and testing, to
deployment and maintenance. This ensures that quality is built into
the product from the beginning and not just verified at the end.
pg. 16
Discussion
Impact of Software Quality:
o Discuss how software quality affects user satisfaction,
customer loyalty, and the costs associated with software
maintenance and support.
Challenges of SQA Implementation:
o Explore the difficulties in implementing effective SQA
processes, especially in large and complex software projects.
Automation in SQA:
o Analyze the role of automated tools and techniques in
software testing, code analysis, and other SQA activities.
Continuous Improvement:
o Emphasize the importance of constantly evaluating and
refining software quality processes to adapt to new
technologies and development practices.
pg. 17
Conclusion
Software is a complex entity that includes not only code but also
procedures, documentation, and data.
Software quality is the degree to which software meets specified
requirements and user expectations.
Software quality assurance (SQA) is a systematic approach to
ensuring software quality throughout the software lifecycle.
Software errors are mistakes made by developers, faults are defects
in the code, and failures are instances where the software
malfunctions.
SQA focuses on preventing defects and improving development
processes, while software quality control focuses on identifying
existing defects.
Software engineering provides the foundation for SQA activities,
and SQA is an essential part of software engineering practice.
pg. 18
References
1) Galin, Daniel. Software Quality Assurance: From Theory to
Implementation. Addison-Wesley, 2004.
2) ScienceDirect. Elsevier, www.sciencedirect.com/. Accessed [Date
you accessed it]
Appendix
Supporting Materials for Software Quality Report
pg. 19
5.2 Expanded Classification of Software Error Causes
pg. 20
5.2.6 Interface Errors:
pg. 21